Organizace Open Container Initiative (OCI) (Wikipedie), projekt nadace Linux Foundation, vydala Runtime Specification 1.3 (pdf), tj. novou verzi specifikace kontejnerového běhového prostředí. Hlavní novinkou je podpora FreeBSD.
Nový open source router Turris Omnia NG je v prodeji. Aktuálně na Allegro, Alternetivo, Discomp, i4wifi a WiFiShop.
Na YouTube a nově také na VHSky byly zveřejněny sestříhané videozáznamy přednášek z letošního OpenAltu.
Jednou za rok otevírá společnost SUSE dveře svých kanceláří široké veřejnosti. Letos je pro vás otevře 26. listopadu v 16 hodin v pražském Karlíně. Vítáni jsou všichni, kdo se chtějí dozvědět více o práci vývojářů, prostředí ve kterém pracují a o místní firemní kultuře. Můžete se těšit na krátké prezentace, které vám přiblíží, na čem inženýři v Praze pracují, jak spolupracují se zákazníky, partnery i studenty, proč mají rádi open source a co
… více »Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za říjen (YouTube).
Jeff Quast otestoval současné emulátory terminálu. Zaměřil se na podporu Unicode a výkon. Vítězným emulátorem terminálu je Ghostty.
Amazon bude poskytovat cloudové služby OpenAI. Cloudová divize Amazon Web Services (AWS) uzavřela s OpenAI víceletou smlouvu za 38 miliard USD (803,1 miliardy Kč), která poskytne majiteli chatovacího robota s umělou inteligencí (AI) ChatGPT přístup ke stovkám tisíc grafických procesů Nvidia. Ty bude moci využívat k trénování a provozování svých modelů AI. Firmy to oznámily v dnešní tiskové zprávě. Společnost OpenAI také nedávno
… více »Konference Prague PostgreSQL Developer Day 2026 (P2D2) se koná 27. a 28. ledna 2026. Konference je zaměřena na témata zajímavá pro uživatele a vývojáře. Příjem přednášek a workshopů je otevřen do 14. listopadu. Vítáme témata související s PostgreSQL či s databázemi obecně, a mohou být v češtině či angličtině.
Byl vydán Devuan 6 Excalibur. Přehled novinek v poznámkách k vydání. Kódové jméno Excalibur bylo vybráno podle planetky 9499 Excalibur. Devuan (Wikipedie) je fork Debianu bez systemd. Devuan 6 Excalibur vychází z Debianu 13 Trixie. Devuan 7 ponese kódové jméno Freia.
Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu poprvé překročil 3 %, aktuálně 3,05 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 27,18 %. Procesor AMD používá 67,10 % hráčů na Linuxu.
Tak je to tady. Nefungoval megauploads, chtěl jsem přidělat/opravit pár dalších stahovacích skriptů, nebavilo mě stále kopírovat kód na výběr proxy, zobrazení captcha a čtení kódu. Takže jsem se dokopal a spojil všechny stahovače do jednoho skritpu a společný kód nacpal do funkcí.
Většinu kódu jsem využil (zkopíroval a mírně vyladil) z předchozích skriptů, takže pokud chce někdo popis, tak ať se podívá do těch předchozích. Takže zmínim jen to nejdůležitější.
Mám tam funkci na stažení captcha obrázku a přečtení kódu. K zobrazení se používá gqview, k přečtení kódu se použije buď Xdialog (X) nebo read (konzole). Použití X je podmíněné proměnnou DISPLAY, konzoli jde vynutit použitím přepínače.
Dál jsem přidal funkci delaytime. Někdy se totiž zobrazí
odpočítávání zároveň s captcha obrázkem, takže je možné začít odpočítávat už
během zobrazení captcha a čtení kódu z klávesnice. Pokud tohle stahovací
systém umožňuje, zjistí se aktuální čas před čtením captcha a po načtení kódu
od uživatele se odpočítává už jenom doba, která zbývá z původní doby
čekání.
Místo opakovaného psaní wget příkazu jsem definoval funkci, je
to tak taky jednodušší. Díky tomu používají všechny stahovače cookies.
Pro každý stahovač je definovaná vlastní funkce, která se pak volá podle rozpoznané URL.
Pro každé stahování se nastavuje http_proxy. V souboru je
seznam všech možných proxy serverů, lze vytvořit nový seznam zadáním indexů
původního seznamu, nebo z původního seznamu některé proxy odstranit, případně
lze nastavit vlastní jinou proxy.
Pozor u stahovače netload.in. Tohle je trošku zvláštní stahovač. Někdy zobrazí pouze nějakou dobu k čekání a pak rovnou odkaz pro stažení. Jindy ale zobrazí rovnou odkaz, který ale vede na stránku, kde je captcha a beží jiné zpoždění. Nepochopil jsem, jak se server rozhoduje, kdy bude stahování bez captcha a kdy s captcha. Bez captcha je stahování fungující, s captcha zatím nefunguje. Pokud budu mít někdy čas, dostatek odkazů na testování a bude to zrovna zobrazovat captcha, tak to dodělám. Zatím jsem byl vždy v situaci, že jsem to stáhnul bez captcha nebo jsem měl odkaz na jinej server.
Pokud máte připomínky, budu sledovat diskuzi, tak můžete psát.
UPDATE 2009/05/25: Ověřuje se, že soubor se seznam proxy serverů je skutečně soubor nebo link na soubor.
UPDATE 2009/05/28: Pár nových úprav:
moje
úspěšnost byla tak 50%TODO
#!/bin/bash
################################################################################
################################################################################
export LANG="C"
function exitcode() {
trap '' 1 2 3 6 9 15
if [ $# -gt 0 ];then local ec="$1" ; else local ec=0 ; fi
rm -rf "$tmpdir"
trap - 1 2 3 6 9 15
exit $ec
}
function readcaptcha() {
if [ $# -eq 0 ];then code="-";return;fi
local img="$1"
shift
if [ $# -gt 0 ];then local codetitle="\\n($2)" ; fi
if [ -n "$img" ];then
wgetcmd -nv -O "$captmp" "$img"
echo "+++ CAPTCHA local: $captmp [ $( file --mime-type -b "$captmp" ) ]"
case "$showcaptcha" in
"x" )
if [ -n "$DISPLAY" ];then
if [ -n "$gqview" ];then
gqview "$captmp" >/dev/null 2>&1 & local pid="$!"
elif [ -n "$cacaview" ];then
echo "+++ gqview not found, but cacaview found - using cacaview to show captcha"
else
echo "+++ neither gqview nor cacaview found - not showing captcha"
fi
else
if [ -n "$cacaview" ];then
echo "+++ XDISPLAY not found, using cacaview to show captcha"
DISPLAY="" cacaview "$captmp"
else
echo "+++ cacaview not found - not showing captcha"
fi
fi ;;
"c" ) if [ -n "$cacaview" ];then DISPLAY="" cacaview "$captmp" ; else echo "+++ cacaview not found - not showing captcha" ; fi ;;
"0" ) echo "+++ not showing captcha as requested" ;;
esac
code=""
while [ -z "$code" ];do
if [ -n "$DISPLAY" ] && [ $console -eq 0 ];then
code="$( Xdialog --no-cancel --title "$captmp" --screen-center --stdout --inputbox "Enter the CAPTCHA code${codetitle}" 14 40 )"
if [ $? -eq 1 ];then code="-";fi
else
read -p "Code ($codetitle) ['-' for stop]: " code
fi
done
if [ "$showcaptcha" = "x" ] && [ -n "$DISPLAY" ];then kill "$pid" ; fi
rm -f "$captmp"
else
code="*"
fi
}
function delaytime() {
if [ $# -eq 0 ];then return 0 ; fi
local delay="$1"
shift
if [ $# -gt 0 ];then
local delaystart="$1"
else
local delaystart="$( date +"%s" )"
fi
if [ -n "$delay" ]; then
realdelay="$(( $( date +"%s" ) - ( $delaystart + $delay ) ))"
if [ $( date +"%s" ) -le $(( $delaystart + $delay )) ] ; then
while [ $( date +"%s" ) -le $(( $delaystart + $delay )) ];do
echo -en "+++ delaying $delay seconds [ $(( $delaystart + $delay - $( date +"%s" ) )) ] \r"
sleep 1
done
echo
fi
fi
}
function wgetcmd() {
LANG="C" wget $rate -U "$agent" --save-cookies "$cookies" --keep-session-cookies --load-cookies "$cookies" "$@"
}
################################################################################
function downrapid() {
local id="rapidshare.com"
if [ $# -eq 0 ];then return 1;fi
local url="$1"
echo "*** $id URL: $url"
local output1="$( wgetcmd -nv -O - "$url" )"
local url1="$( echo "$output1" | perl -e ' undef $/;$a=<STDIN>;print sprintf("%s",$url) if ((($tag)=($a=~m,(<form\s+[^>]*id="ff"[^>]*>),is)) and (($url)=($tag=~m,action="([^"]+)",is))); ')"
echo "*** $id URL1: $url1"
local output2="$( wgetcmd -nv -O - --post-data="dl.start=Free" "$url1" )"
local data="$( echo "$output2" | perl -e '
undef $/; $a=<STDIN>;
($delay)=($a=~m,var\s+c\s*=\s*(\d+)\s*;,is);
($wait)=($a=~m,(?:wait|try\s+again\s+in\s+(?:about)?)\s+(\d+\s+minutes?),is);
(($img)=($a=~m,<img\s+src="([^"]+/access[^"]+)",is)) and ($img=~s/\x27\s*\+\s*\x27//g);
($codetitle)=($a=~m,(security\s+question[^\x27]+)\x27,is);
($file)=($a=~m,<form\s+name="dlf?"\s+action="[^"]+/([^"/]+)",is);
print "$delay\n$wait\n$img\n$codetitle\n$file\n";
' )"
local delay="$( echo "$data" | sed -n -e '1p;' )"
local wait="$( echo "$data" | sed -n -e '2p;' )"
local img="$( echo "$data" | sed -n -e '3p;' )"
local codetitle="$( echo "$data" | sed -n -e '4p;' )"
local file="$( echo "$data" | sed -n -e '5p;' )"
if [ -e "$file" ] ; then file="$file.$( date +"%Y%m%d-%H%M%S" ).$$" ; fi
local url3
if echo "$codetitle" | grep -qE 'Have[[:space:]]+Fun';then local happyhour=1;else local happyhour=0;fi
local url2="$(
echo "$output2" \
| perl -e '
undef $/;
$a=<STDIN>;
while (($u)=($a=~m,document\.dlf\.action=\\\x27([^\x27]+)\\\x27;,is)) {
$a=~s,document\.dlf\.action=\\\x27([^\x27]+)\\\x27;,,is;
print "$u\n" unless $u=~m,http://rs\d+tl\d*\.,i;
};
'
)"
echo "*** $id URL2: $url2"
echo "*** $id DELAY: $delay"
echo "*** $id WAIT: $wait"
echo "*** $id CAPTCHA: $img"
echo "*** $id CODETITLE: $codetitle"
echo "*** $id HAPPYHOUR: $happyhour"
echo "*** $id FILE: $file"
if [ -n "$file" ] && [ -n "$url2" ];then
if [ $happyhour -eq 0 ];then
local delaystart="$( date +"%s" )"
readcaptcha "$img" "$codetitle"
if [ "$code" = "-" ];then
return 3
else
delaytime "$delay" "$delaystart"
fi
fi
echo "$url2" | while read url3;do
if [ "$code" = "*" ] || [ $happyhour -eq 1 ];then
codetxt=""
else
codetxt="&accesscode=$code"
fi
actionstring="actionstring=1"
if wgetcmd -c -O "$file" --post-data="${actionstring}${codetxt}" "$url3"; then break;fi
done
if [ -e "$file" ] && [ $( stat -c '%s' "$file" ) -gt 1000 ];then return 0;fi
elif [ -n "$wait" ];then
echo "--- $id Wait $wait"
return 2
else
echo "--- $id Unable to download"
return 3
fi
}
##############################
function downsuborysk() {
local id="subory.sk"
if [ $# -eq 0 ];then return 1;fi
local url="$1"
echo "*** $id URL: $url"
local output1="$( wgetcmd -O - -q "$url" )"
local data="$( echo "$output1" | perl -e '
undef $/;
$a=<STDIN>;
($delay)=($a=~m,^\bcislo\s*=\s*(\d+)\s*;,im);
(($form)=($a=~m,(<form\s+[^>]*name=captchaform[^>]*>.*?</form>),is)) and ((($img)=($form=~m,<img\s+[^>]*src="(/captcha3/captcha\.php\?id=[^"]+)"[^>]*>,is)) or 1) and (($url)=($form=~m,<form\s+[^>]*action="([^"]+)",is));
print "$delay\n$img\n$url\n";
'
)"
echo "*** $id DATA: $data"
local baseurl="${url%/download/*}"
local delay="$( echo "$data" | sed -n -e '1p;' )"
local captchaimgpath="$( echo "$data" | sed -n -e '2p;' )"
local path="$( echo "$data" | sed -n -e '3p;' )"
captchaimg="$baseurl$captchaimgpath"
local url1="$baseurl$path"
echo "*** $id URL1: $url1"
echo "*** $id CAPTCHA: $captchaimg"
echo "*** $id DELAY: $delay"
if [ -n "$path" ] && [ -n "$captchaimgpath" ];then
local delaystart="$( date +"%s" )"
readcaptcha "$captchaimg"
if [ "$code" = "-" ];then
return 3
else
delaytime "$delay" "$delaystart"
postdata="submitted=1&str=$code"
wgetcmd -c --post-data="$postdata" --referer="$url" "$url1"
fi
else
echo "--- $id Unable to download"
return 3
fi
}
##############################
function downuloziskosk() {
local id="ulozisko.sk"
if [ $# -eq 0 ];then return 1;fi
local url="$1"
echo "*** $id URL: $url"
local output1="$( wget -O - -q --keep-session-cookies --save-cookies="$tmpdir/cookies" "$url" )"
local data="$( echo "$output1" | perl -e '
undef $/;
$a=<STDIN>;
($form)=($a=~m,(<form\s+[^>]*name\s*=\s*"formular"[^>]*>.*?</form>),is);
($delay)=($form=~m,function\s+set\s*\(\s*\)\s*\{\s*cas_\d+\s*=\s*(\d+)\s*;\s*\},is);
($img)=($form=~m,<img\s+[^>]*src="(/obrazky/obrazky\.php\?[^"]+)"[^>]*>,is);
($url)=($form=~m,<form\s+[^>]*action\s*=\s*"([^"]+)",is);
while (($hidden)=($form=~m,(<input\s+[^>]*type\s*=\s*"hidden"[^>]*>),is)) {
$form=~s,(<input\s+[^>]*type\s*=\s*"hidden"[^>]*>),,is;
($name)=($hidden=~m,name\s*=\s*"([^"]+)",is);
($val)=($hidden=~m,value\s*=\s*"([^"]+)",is);
$file=$val if ($name eq "name");
$val=unpack("H*",$val);
$val=~s/(..)/%$1/g;
push @hidden,sprintf("%s=%s",$name,$val);
}
print sprintf("%s\n%s\n%s\n%s\n%s",$delay,$img,$url,join("&",@hidden),$file);
'
)"
local baseurl="http://www.ulozisko.sk"
local delay="$( echo "$data" | sed -n -e '1p;' )"
local captchaimgpath="$( echo "$data" | sed -n -e '2p;' )"
local captchaimg="$baseurl$captchaimgpath"
local url1path="$( echo "$data" | sed -n -e '3p;' )"
local url1="$baseurl$url1path"
local postdata="$( echo "$data" | sed -n -e '4p;' )"
local filename="$( echo "$data" | sed -n -e '5p;' )"
echo "*** $id URL1: $url1"
echo "*** $id CAPTCHA: $captchaimg"
echo "*** $id DELAY: $delay"
echo "*** $id FILE: $filename"
if [ -n "$url1path" ] && [ -n "$captchaimgpath" ];then
local delaystart="$( date +"%s" )"
readcaptcha "$captchaimg"
if [ "$code" = "-" ];then
return 3
else
delaytime "$delay" "$delaystart"
postdata="$postdata&antispam=$code"
wgetcmd -c --post-data="$postdata" --referer="$url" "$url1"
fi
else
echo "--- $id Unable to download"
return 3
fi
}
##############################
function downmegaupload() {
local id="megaupload.com"
if [ $# -eq 0 ];then return 1;fi
local url="$1"
echo "*** $id URL: $url"
local output1="$( wgetcmd -nv -O - "$url" )"
local data="$( echo "$output1" | perl -e '
undef $/;
$a=<STDIN>;
($captcha)=($a=~m#<img\s+[^>]*src=["\x27]([^"\x27]+/gencap\.php[^"\x27]+)["\x27]#i);
@fields=();
while (($t1)=($a=~m/(<input\s+[^>]*type=["\x27]hidden["\x27][^>]*>)/i)) {
if ((($field)=($a=~m/name=["\x27](captchacode|megavar)["\x27]/i)) and (($val)=($a=~m/value=["\x27]([^"\x27]*)["\x27]/i))) {
$val=~s/(.)/"%".unpack("H2",$1)/ge;
push @fields,sprintf("%s=%s",$field,$val);
}
$a=~s/<input\s+[^>]*type=["\x27]hidden["\x27][^>]*>//i
}
print "$captcha\n";
print join("&",@fields)."\n";
'
)"
local url1="$url"
local captchaimg="$( echo "$data" | sed -n -e '1p;' )"
local postdata="$( echo "$data" | sed -n -e '2p;' )"
echo "*** $id URL: $url1"
echo "*** $id CAPTCHA: $captchaimg"
if [ -n "$captchaimg" ] && [ -n "$url1" ];then
readcaptcha "$captchaimg"
if [ "$code" = "-" ];then
return 3
else
local output2="$( wgetcmd --post-data="$postdata&captcha=$code" --referer="$url" -O - -nv "$url1" )"
local data="$( echo "$output2" | perl -e '
undef $/;
$a=<STDIN>;
($delay)=($a=~/count\s*=\s*(\d+)\s*;/);
($t1)=($a=~m#<div\s+[^>]*id="downloadlink"[^>]*>(.*?)</div>#) and ($url)=($t1=~m#<a\s+[^>]*href=[\x27"]([^\x27"]+)[\x27"]#);
print "$delay\n$url\n";
'
)"
local delay="$( echo "$data" | sed -n -e '1p;' )"
local url2="$( echo "$data" | sed -n -e '2p;' )"
echo "*** $id URL2: $url2"
echo "*** $id DELAY: $delay"
if [ -n "$url2" ];then
delaytime "$delay"
wgetcmd -c "$url2"
else
echo "--- $id Unable to download"
return 3
fi
fi
else
echo "--- $id Unable to download"
return 3
fi
}
##############################
function downbagruj() {
local id="bagruj.cz"
if [ $# -eq 0 ];then return 1;fi
local url="$1"
echo "*** $id URL: $url"
local output1="$( wgetcmd -nv -O - "$url" )"
local data="$( echo "$output1" | perl -e '
undef $/;
$a=<STDIN>;
if (($b)=($a=~m,<form\s+[^>]*name="f1"[^>]*>(.+?)</form>,is)) {
@inputs=();
while ((($input)=($b=~m,(<input\s+[^>]*type="hidden"[^>]*>),is)) and (($name)=($input=~/name="([^"]+)"/is)) and (($value)=($input=~/value="([^"]*)"/is))) {
$value=unpack("H*",$value);
$value=~s/(..)/%$1/g;
push @inputs,sprintf("%s=%s",$name,$value);
$b=~s,(<input\s+[^>]*type="hidden"[^>]*>),,is;
}
$postdata=join("&",@inputs);
$captcha=$t1 if (($t1)=($b=~m,<img\s+[^>]*src="(http://bagruj.cz/captchas/[^.]+.jpg)"[^>]*>,is));
$delay=$t1 if (($t1)=($b=~m,<span\s+[^>]*id="countdown"[^>]*>(\d+)</span[^>]*>,is));
print "$captcha\n$delay\n$postdata\n";
};
'
)"
local captchaimg="$( echo "$data" | sed -n -e '1p;' )"
local delay="$( echo "$data" | sed -n -e '2p;' )"
local postdata="$( echo "$data" | sed -n -e '3p;' )"
echo "*** $id CAPTCHA: $captchaimg"
echo "*** $id DELAY: $delay"
if [ -n "$captchaimg" ] ;then
local delaystart="$( date +"%s" )"
readcaptcha "$captchaimg"
if [ "$code" = "-" ];then
return 3
else
delaytime "$delay" "$delaystart"
local url1="$( wgetcmd -O - -q --post-data="$postdata&code=$code" "$url" | perl -e 'undef $/;$a=<STDIN>;print "$b" if (($b)=($a=~m,<a\s+href="([^"]+)">\1</a>,is));' )"
echo "*** $id URL1: $url1"
if [ -z "$url1" ]; then return 1 ; fi
wgetcmd -c "$url1"
fi
else
echo "--- $id Unable to download"
return 3
fi
}
function downiskladka() {
local id="iskladka.cz"
if [ $# -eq 0 ];then return 1;fi
local url="$1"
echo "*** $id URL: $url"
local output1="$( wgetcmd -nv -O - "$url" )"
local url1="$( dirname "$url" )/$( echo "$output1" | perl -e '
undef $/;
$a=<STDIN>;
if ((($url)=($a=~m,<iframe\s+[^>]*src="(iCopy/index.php[^"]+)",is)) and (($path,$param)=($url=~m,^(.*)\?file=(.*)$,i))) {
$param=unpack("H*",$param);
$param=~s/(..)/%$1/g;
print sprintf("%s?file=%s",$path,$param);
};
'
)"
echo "*** $id URL1: $url1"
local output2="$( wgetcmd -O - -q --referer "$url" "$url1" )"
local data="$( echo "$output2" | perl -e '
undef $/;
$a=<STDIN>;
($file)=($a=~m,var\s+downloadCounterLink\s*=\s*[\x27"]([^\x27"]+)[\x27"]\s*;,is);
($delay)=($a=~m,var\s+downloadCounter\s*=\s*(\d+)\s*;,is);
if (($url)=($a=~m,^\s*document\.getelementbyid\("downloadstatus"\)\.innerhtml\s*=\s*"\s*<iframe\s+[^>]*src=\x27(http.*/icopy/downloadbalancer[^\x27]+)\x27,im)) {
$url=~s,"\+downloadCounterLink\+",$file,is;
}
$file=~tr/+/ /;
$file=~s/%(..)/chr(hex($1))/ge;
print sprintf("%s\n%s\n%s\n",$url,$file,$delay);
'
)"
local url2="$( echo "$data" | sed -n -e '1p;' )"
local file="$( echo "$data" | sed -n -e '2p;' )"
local delay="$( echo "$data" | sed -n -e '3p;' )"
if [ -e "$file" ] ; then file="$file.$( date +"%Y%m%d-%H%M%S" ).$$" ; fi
echo "*** $id URL2: $url2"
echo "*** $id FILE: $file"
echo "*** $id DELAY: $delay"
if [ -n "$url2" ] && [ -n "$file" ];then
if [ -n "$delay" ];then delaytime "$delay" ; fi
wgetcmd -O "$file" --referer="$url1" "$url2"
else
echo "--- $id Unable to download"
return 3
fi
}
function downleteckaposta() {
local id="leteckaposta.cz"
if [ $# -eq 0 ];then return 1;fi
local url="$1"
echo "*** $id URL: $url"
local output1="$( wgetcmd -nv -O - "$url" )"
local data="$( echo -e "<<$url>>\n$output1" | perl -e '
undef $/; $a=<STDIN>;
($burl)=($a=~m,<<(https?://[^/]+)/.*?>>,i);
(($t,$file)=($a=~m,(<a\s+[^>]*class=["\x27]download-link["\x27][^>]*>)([^<]+)</a>,is)) and (($path)=($t=~m,href=["\x27](/file/[^"\x27]+)["\x27],is));
print "$burl\n$path\n$file\n";
'
)"
local baseurl="$( echo "$data" | sed -n -e '1p;' )"
local urlpath="$( echo "$data" | sed -n -e '2p;' )"
local file="$( echo "$data" | sed -n -e '3p;' )"
local url1="$baseurl$urlpath"
if [ -e "$file" ] ; then file="$file.$( date +"%Y%m%d-%H%M%S" ).$$" ; fi
echo "*** $id URL1: $url1"
echo "*** $id FILE: $file"
if [ -n "$file" ] && [ -n "$urlpath" ];then
wgetcmd -O "$file" --referer="$url1" "$url1"
else
echo "--- $id Unable to download"
return 3
fi
}
function downulozto() {
## http://uloz.to/1617316/Heroes.S03E23.HDTV.XviD-LOL.avi
local id="uloz.to"
if [ $# -eq 0 ];then return 1;fi
local url="$1"
echo "*** $id URL: $url"
local output1="$( wgetcmd -nv -O - "$url" | perl -e 'undef $/;$_=<STDIN>;print $1 if m;(<form\s+[^>]*name="dwn".*?</form>);is;' )"
local data="$( echo "$output1" | perl -e '
undef $/;$_=<STDIN>;
(($f)=(m/(<form\s+[^>]*name="dwn"[^>]*>)/is)) and (($url)=($f=~m/action="([^"]+)"/is));
(($f)=(m;(<img\s+[^>]*id="captcha"[^>]*>);is)) and (($captcha)=($f=~m;src="([^"]+)";is));
(($f)=(m;(<input\s+[^>]*id="captcha_nb"[^>]*>);is)) and (($capctrl)=($f=~m;value="([^"]+)";is));
(($f)=(m;(<input\s+[^>]*id="download_button"[^>]*>);is)) and (($downbut)=($f=~m;value="([^"]+)";is)) and ($downbut=~s/(.)/sprintf("%%%s",unpack("H",$1))/ge or 1);
print "$url\n$captcha\n$capctrl\n$downbut\n";
'
)"
local file="$( basename "$url" )"
if [ -e "$file" ] ; then file="$file.$( date +"%Y%m%d-%H%M%S" ).$$" ; fi
local url1="$( echo "$data" | sed -n -e '1p;' )"
local captchaimg="$( echo "$data" | sed -n -e '2p;' )"
local captchanb="$( echo "$data" | sed -n -e '3p;' )"
local downbut="$( echo "$data" | sed -n -e '4p;' )"
echo "*** $id URL1: $url1"
echo "*** $id CAPTCHA: $captchaimg"
echo "*** $id FILE: $file"
if [ -n "$captchaimg" ] && [ -n "$file" ];then
readcaptcha "$captchaimg"
if [ "$code" = "-" ];then
return 3
else
postdata="captcha_nb=$captchanb&captcha_user=$code&download=$downbut"
wgetcmd -O "$file" --post-data="$postdata" --referer "$url" "$url1"
if [ "$( file -b --mime-type "$file" )" = "text/html" ] && iconv -c -f utf-8 -t ascii//translit "$file" | grep -qEi 'Prekrocen[[:space:]]+pocet[[:space:]]+FREE[[:space:]]+slotu';then
rm "$file"
echo "--- $id No free slots"
return 1
fi
fi
else
echo "--- $id Unable to download"
return 3
fi
}
function downulozcz() {
local id="uloz.cz"
if [ $# -eq 0 ];then return 1;fi
local url="$1"
echo "*** $id URL: $url"
local output1="$( wgetcmd -nv -O - "$url" )"
local url1="$( echo "$output1" | perl -e '
undef $/;
$a=<STDIN>;
($url)=($a=~m,href=["\x27](http://[^/]*uloz\.cz/auth/[a-f0-9]+/file/[^"\x27]+)["\x27],is);
print "$url";
'
)"
echo "*** $id URL1: $url1"
if [ -n "$url1" ];then
wgetcmd -c --referer="$url" "$url1"
else
echo "--- $id Unable to download"
return 3
fi
}
function downfilefactory() {
local id="filefactory.com"
if [ $# -eq 0 ];then return 1;fi
local url="$1"
echo "*** $id URL: $url"
local output1="$( wgetcmd -nv -O - "$url" )"
if echo "$output" | grep -Eqi 'no free download slots.*try again later' ;then
echo "--- $id No free slots"
return 1
fi
local baseurl="$( echo "$url" | sed -e 's,\([^/]\+://[^/]\+\)/.*$,\1,' )"
local path1="$( echo "$output1" | perl -e 'undef $/;$a=<STDIN>; print "$url" if (($t)=($a=~m,(<a\s+[^>]*class="download"[^>]*>),is)) and (($url)=($t=~m,href="([^"]+)",is));' )"
local url1="$baseurl$path1"
echo "*** $id URL1: $url1"
local output2="$( wgetcmd -nv -O - --referer="$url" "$url1" )"
local data1="$( echo "$output2" | perl -e '
undef $/;$a=<STDIN>;
(($capid)=($a=~m,(<input\s+[^>]*id="captchaID"[^>]*>),is)) and (($v)=($t=~m,value="([^"]+)",is));
(($capim)=($a=~m,(<img\s+[^>]*class="captchaImage"[^>]*>),is)) and (($v)=($t=~m,src="([^"]+)",is));
print "$capid\n$capim\n";
' )"
local postdata="captchaID=$( echo "$data1" | sed -n -e '1p;' )"
local captchaimgpath="$( echo "$data1" | sed -n -e '2p;' )"
local captchaimg="$baseurl$captchaimgpath"
echo "*** $id CAPTCHA: $captchaimgpath"
if [ -n "$captchaimgpath" ];then
readcaptcha "$captchaimg"
if [ "$code" = "-" ];then
return 3
else
postdata="$postdata&captchaText=$code"
local output3="$( wgetcmd -nv -O - --post-data="$postdata" --referer="$url" "$url1" )"
local url2="$( echo "$output3" | perl -e ' undef $/;$a=<STDIN>; (($t)=($a=~m,(<a\s+[^>]*class="download"[^>]*>),is)) and (($url)=($t=~m,href="([^"]+)",is)); print "$url";' )"
echo "*** $id URL2: $url2"
wgetcmd -c --referer="$url1" "$url2"
fi
else
echo "--- $id Unable to download"
return 3
fi
return 0
}
################################################################################
################################################################################
function downnetloadin() {
local id="netload.in"
## http://netload.in/dateil4GMY6euLa/heroes.323.hdtv-lol.part4.rar.htm
if [ $# -eq 0 ];then return 1;fi
local url="$1"
echo "*** $id URL: $url"
local baseurl="$( echo "$url" | sed -e 's,\([^/]\+://[^/]\+\)/.*$,\1,' )"
local output1="$( wgetcmd -nv -O - "$url" )"
echo "$output1" > output1
local data1="$( echo "$output1" | perl -e '
undef $/;
$a=<STDIN>;
(($delay)=($a=~m,var\s+sss\s*=\s*-?\s*(\d+)\s*;,is));
(($curl)=($a=~m,<div\s+[^>]*class="dl_first_link2"[^>]*>\s*<div\s+[^>]*class="Free_dl"[^>]*>\s*<a\s+[^>]*href="([^"]+)"[^>]*>,is)) and ($curl=~s/&/\&/g or 1);
(($t)=($a=~m,(<a\s+[^>]*class="download_fast_link"[^>]*>),is)) and (($furl)=($t=~m,href="([^"]+)",is)) and ($furl=~s/&/\&/g or 1);
(($fn)=($a=~m,<div\s+[^>]*class="dl_first_filename"[^>]*>\s*([^<]+)<,is));
print "$delay\n$curl\n$fn\n$furl\n";
' )"
local delay="$( echo "$data1" | sed -n -e '1p;' )"
local cpath="$( echo "$data1" | sed -n -e '2p;' )"
local file="$( echo "$data1" | sed -n -e '3p;' )"
local fpath="$( echo "$data1" | sed -n -e '4p;' )"
if [ -e "$file" ] ; then file="$file.$( date +"%Y%m%d-%H%M%S" ).$$" ; fi
if [ -z "$cpath" ];then
local url1="$baseurl/$fpath"
else
local url1="$baseurl/$cpath"
fi
echo "*** $id URL1: $url1"
echo "*** $id FILE: $file"
echo "*** $id DELAY: $delay"
if ( [ -n "$cpath" ] || [ -n "$fpath" ] ) && [ -n "$file" ];then
if echo "$url1" | grep -qi 'captcha=1' ; then
local output2="$( wgetcmd -O - --referer="$url" "$url1" )"
echo "$output2" > output2
echo "captcha"
else
delaytime "$delay"
wgetcmd -O "$file" -c --referer="$url" "$url1"
if [ "$( file -b --mime-type "$file" )" = "text/html" ] ; then
local wait="$( perl -e 'undef $/;$a=<STDIN>;print $wait/1000 if ($wait)=($a=~/(?:We\s+had\s+a\s+reqeust\s+with\s+the\s+IP.*?)?You\s+could\s+download\s+your\s+next\s+file\s+in.*?countdown\((\d+)/is);' < "$file" )"
echo "--- $id WAIT: $wait secs"
rm -f "$file"
return 1
fi
fi
else
echo "--- $id Unable to download"
return 3
fi
return 0
}
function downuploadedto() {
local id="uploaded.to"
## http://uploaded.to/file/4z1nkb/heroes.323.hdtv-lol.part1.rar
if [ $# -eq 0 ];then return 1;fi
local url="$1"
echo "*** $id URL: $url"
local baseurl="$( echo "$url" | sed -e 's,\([^/]\+://[^/]\+\)/.*$,\1,' )"
local output1="$( wgetcmd -nv -O - "$url" )"
local data1="$( echo "$output1" | perl -e '
undef $/;
$a=<STDIN>;
($delay)=($a=~m,var\s+secs\s*=\s*?\s*(\d+)\s*;\s*//\s*Wartezeit,is);
(($frm)=($a=~m,(<form\s+[^>]*name="download_form"[^>]*>),is)) and (($url)=($frm=~m,action="([^"]+)",is));
(($fn)=($a=~m,<tr>[^<]*<td\s+[^>]*>\s*Filename:[^<]*</td[^>]*>[^<]*<td[^>]*>(.+?)</td[^>]*>[^<]*</tr[^>]*>,is)) and ($fn=~s,<[^>]+>,,gs or 1) and ($fn=~s/^\s+//s or 1) and ($fn=~s/\s+$//s or 1);
($wait)=($a=~m,Your Free-Traffic is exceeded.*Or wait (\d+\s+(?:minute|second|hour)s?),is);
print "$delay\n$url\n$fn\n$wait\n";
' )"
local delay="$( echo "$data1" | sed -n -e '1p;' )"
local url1="$( echo "$data1" | sed -n -e '2p;' )"
local file="$( echo "$data1" | sed -n -e '3p;' )"
local wait="$( echo "$data1" | sed -n -e '4p;' )"
if [ -e "$file" ] ; then file="$file.$( date +"%Y%m%d-%H%M%S" ).$$" ; fi
echo "*** $id URL1: $url1"
echo "*** $id DELAY: $delay"
echo "*** $id FILE: $file"
echo "*** $id WAIT: $wait"
if [ -n "$wait" ];then
echo "--- $id Wait $wait"
return 2
elif [ -n "$url1" ] && [ -n "$file" ];then
delaytime "$delay"
wgetcmd -O "$file" -c --referer="$url" "$url1"
else
echo "--- $id Unable to download"
return 3
fi
return 0
}
################################################################################
################################################################################
proxiesfile="$HOME/.download-proxies"
if ! [ -f "$proxiesfile" ] || ( [ -L "$proxiesfile" ] && ! [ -f "$( readlink -f "$proxiesfile" )" ] );then
echo "Please, create file $proxiesfile"
exit
fi
allproxylist="$( awk -F '|' '{print $2;}' "$proxiesfile" | tr '\n' ' ' )"
sshtunnels="$( awk -F '|' '$1~/^.+$/{print " " $1,$2;}' "$proxiesfile" )"
sshtunservers="$( awk -F '|' '$1~/^.+$/{print $1;}' "$proxiesfile" | tr '\n' ' ' )"
agent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7"
console=0
showcaptcha="x"
if [ $# -gt 0 ];then
i=$#
while [ $i -gt 0 ];do
case "$1" in
-a)
if [ $# -gt 1 ];then
id="$[$2+1]"
proxylist="$proxylist $( echo "$allproxylist" | tr -s '[[:space:]]' '\n' | sed -n "${id}p" )"
i=$[$i-1]
shift 2
else
echo "add proxy: value please"
exit
fi
;;
-d)
if [ $# -gt 1 ];then
id="$[$2+1]"
if [ -z "$proxylist" ] ;then proxylist="$allproxylist";fi
proxylist="$( echo "$proxylist" | tr -s '[[:space:]]' '\n' | sed "${id}d" )"
i=$[$i-1]
shift 2
else
echo "remove proxy: value please"
exit
fi
;;
-r)
if [ $# -gt 1 ];then
rate="--limit-rate=$2"
i=$[$i-1]
shift 2
else
echo "rate limit: value please"
exit
fi
;;
-p)
if [ $# -gt 1 ];then
proxylist="$proxylist $2"
shift 2
i=$[$i-1]
else
echo "use proxy: value please"
exit
fi
;;
-c)
console=1
shift
;;
-x)
console=0
shift
;;
-S )
showcaptcha="0"
shift
;;
-C )
showcaptcha="c"
shift
;;
-X )
showcaptcha="x"
shift
;;
*)
v="$1"
shift 1
set -- "$@" "$v"
;;
esac
i=$[$i-1]
done
gqview="$( type -t gqview )"
cacaview="$( type -t cacaview )"
if [ -z "$proxylist" ] ;then proxylist="$allproxylist";fi
tmpdir="$( mktemp -d )"
trap exitcode 1 2 3 6 9 15
echo "=== TMPDIR: $tmpdir"
cookies="$tmpdir"/cookies
captmp="$tmpdir"/captcha
while [ $# -gt 0 ];do
url="$1"
shift
echo "=== Downloading URL: $url"
rm -f "$cookies"
touch "$cookies"
for proxy in $proxylist ;do
if [ "$proxy" = "NONE" ];then
unset http_proxy
else
export http_proxy="$proxy"
fi
echo "=== HTTP PROXY: $http_proxy"
if echo "$url" | grep -qEi 'rapidshare\.com/';then
downrapid "$url"
e=$?
case "$e" in
0 ) break ;;
3 ) exitcode 3 ;;
5 ) exit ;;
esac
elif echo "$url" | grep -qEi 'subory\.sk/';then
downsuborysk "$url"
e=$?
case "$e" in
0 ) break ;;
3 ) exitcode 3 ;;
5 ) exit ;;
esac
elif echo "$url" | grep -qEi 'ulozisko\.sk/';then
downuloziskosk "$url"
e=$?
case "$e" in
0 ) break ;;
3 ) exitcode 3 ;;
5 ) exit ;;
esac
elif echo "$url" | grep -qEi 'megaupload\.com/';then
downmegaupload "$url"
e=$?
case "$e" in
0 ) break ;;
3 ) exitcode 3 ;;
5 ) exit ;;
esac
elif echo "$url" | grep -qEi 'bagruj\.cz/';then
downbagruj "$url"
e=$?
case "$e" in
0 ) break ;;
3 ) exitcode 3 ;;
5 ) exit ;;
esac
elif echo "$url" | grep -qEi 'filefactory\.com/';then
downfilefactory "$url"
e=$?
case "$e" in
0 ) break ;;
3 ) exitcode 3 ;;
5 ) exit ;;
esac
elif echo "$url" | grep -qEi 'iskladka\.cz/';then
downiskladka "$url"
e=$?
case "$e" in
0 ) break ;;
3 ) exitcode 3 ;;
5 ) exit ;;
esac
elif echo "$url" | grep -qEi 'leteckaposta\.cz/';then
downleteckaposta "$url"
e=$?
case "$e" in
0 ) break ;;
3 ) exitcode 3 ;;
5 ) exit ;;
esac
elif echo "$url" | grep -qEi 'uloz\.to/';then
downulozto "$url"
e=$?
case "$e" in
0 ) break ;;
3 ) exitcode 3 ;;
5 ) exit ;;
esac
elif echo "$url" | grep -qEi 'uloz\.cz/';then
downulozcz "$url"
e=$?
case "$e" in
0 ) break ;;
3 ) exitcode 3 ;;
5 ) exit ;;
esac
elif echo "$url" | grep -qEi 'netload\.in/';then
downnetloadin "$url"
e=$?
case "$e" in
0 ) break ;;
3 ) exitcode 3 ;;
5 ) exit ;;
esac
elif echo "$url" | grep -qEi 'uploaded\.to/';then
downuploadedto "$url"
e=$?
case "$e" in
0 ) break ;;
3 ) exitcode 3 ;;
5 ) exit ;;
esac
else
echo "Unknown URL $url"
break
fi
done
done
exitcode
else
cat <<EndOfInfo
ssh tunnels:
$sshtunnels
proxy list:
$( echo "$allproxylist" | tr -s '[[:space:]]' '\n' | nl -v0 -w4 -s' -- ' )
$sshtunservers
Usage: $0 [ -a proxynum ] [ -d proxynum ] [ -r rate-limit ] [ -p proxyurl ] [ { -c | -x } ] [ -S | -C | -X ] URL ...
-a proxynum
add proxy at line proxynum
-d proxynum
delete proxy at line proxynum in ACTUAL proxy list
-r rate-limit
limit wget download rate
-p proxyurl
insert proxy specified by proxyurl
-c
use console to enter captcha code
-x
use X dialog to enter captcha code (this is default)
-C
use console cacaview to show captcha image
-X
use gqview in X to show captcha image (this is default)
-S
disable captcha showing (only ask for code)
URL
URL to download
EndOfInfo
fi
Tiskni
Sdílej:
Jenom počkej, až ty weby začnou předělávat.. Za chvilku tě to přestane bavit 
Oni uz je predelavaji:) Ale samozrejme, zalezi na tom, co na tom webu maji a jak slozity to maji. Dokud to bude jenom jednoduchej JS s nejakou hodnotou na odpocitavani a bude tam hodne veci ke stazeni, tak se to vyplati. Kdyz tam nebude nic, nebo stejny veci pujdou najit i jinde, nebo to bude pomaly a pritom slozitej JS kod na rozlousknuti, tak to samozrejme budu ignorovat.
Zatim nejtezsi byl jeden JS, kde pouzivali nejaky metody na stringy a nejaky vypocty, ale vzdycky to bylo to stejny, jenom se menily hodnoty, takze na to stacil trosku slozitejsi (oproti ostatnim) regexp a pak jednoduchej JS interpret. Ono se jim taky moc nevyplati delat tam nejaky slozity zabezpecovani:) Dokonce rapidshare zrusil captcha.
Takze jen tak me to bavit neprestane:) Jak muzes videt, prvni zapisek ve stahovacich skriptech je uz rok starej, a to jsem ty skripty mel jeste driv, nez jsem je dal do blogu.
awk: read error (Is a directory)
awk: read error (Is a directory)
awk: read error (Is a directory)
|
+----> pokus z rapidshare
Ha, divny, posli mi URL (pres email, nebo sem do dizkuze, pokud to neni nejakej copyright), ktery stahujes. Ted zkousim jeden soubor a jede dobre, overil jsem i zkopirovat skript z blogu a porovnat s originalem a je to naprosto stejny (krome jednoho smazlyho komentare).
Mea culpa - teraz som checkoval ten link browserom a na serveri sa uz nenachadzal - moze to byt ono?
Nemalo by zahlasit nieco ako link deleted a tak? :-)
Posli mi do mailu ten link. Me rapid pri neexistujicim odkazu hlasi neco jako host not found, ale mam dojem, ze by to melo takovej link preskocit, kdyz uz neexistuje, ale mozna jsem tam vynechal podminku.
Hej, to neni chyba rapidu. Ten awk pouzivam pro cteni proxyn. Ale na zacatku mam test, jestli ten soubor existuje a kdyz ne, tak vypise chybu, takze by to nemelo takhle selhat. Aha, ty jsi to udelal jako adresar misto souboru?
He, zkousel jsem to udelat jako adresar a awk mi hlasil uplne jinou chybu nez tobe. Divny. Ale ted jsem to upravil, tak by to melo psat normalni chybu.
No, udrzovat ... budu to udrzovat tak, ze kdyz zjistim, ze nejakej link nejde, tak to opravim - pripadne, kdyz nekdo posle, ze neco nejde ... jinak nemam v planu, ze bych to kazdej den kontroloval, jestli se nekde neco nezmenilo. na to fakt neni cas.
Jedine co sere su tie CAPTCHA kody - preco je take tazke napisat nieco na ich citanie (sledovanie zmeny farieb na obrazku, citanie ciar podla odtiena - transformacia do textu)?
no, tezky je to proto, ze mezi ty pismena davaji i ruzny cary na mateni OCR, navic tyhle ruzny cary maji obvykle i stejnou barvu. No a clovek ma hodne dobrej mechanizmus na rozpoznani tvaru, nebo aspon k prirazeni nejakyho tvaru k podobnymu, takze to precist dokaze. Ikdyz teda ja osobne mam obcas dost problem.
Jednou taky rapid daval tusim pod pismenka obrazek kocicky nebo pejska a pak napsal, ze musis opsat jenom ty pismena, pod kteryma je kocicka:) Fakt zabavny, ale aby pocitac mohl tohle sam vyhodnotit, tak uz potrebujes opravdu umelou inteligenci, ktera dokaze pochopit, co je obrazek kocicky a co pejsek. Jinak asi by se dalo pripadne udelat neco jednoduchyho, kde bys pouzival masku kocicky a pejska, to nasel v captcha, pak vzal to pismeno pod tim, nejak odfiltroval ten obrazek a pak z toho dostal znak. Ale staci nepatrny deformace a klasicky OCR si s tim neporadi. Porad je ale jenodussi predhodit ten obrazek cloveku, kterej to zvladne behem par vterin:)
Presne
Bylo to docela zajimavy sledovat ten vyvoj. Nejdriv jenom klasicka captcha, pak v tom obrazku pribyla ta zviratka, ale porad se opisoval cely kod. A pak jednou udelali captcha delsi a zadavat se mela jenom pismena s kocickou. Tak jsem asi desetkrat blbe zadal kod, nez me napadlo se podivat na stranku web prohlizecem a zjistil jsem, ze se maji zadavat jenom znaky s kocickama
Za nejakou dobu zrusili zviratka a zmenili font. A pred nejakou dobou zrusili captcha uplne.
Vzhledem k nedávným událostem je to docela odvaha. Věděl si, že obdoba DMCA byla přijata v EU? Jmenuje se to EU Copyright Directive a znění české implementace je třeba dostupné zde. Zatím jsem teda nenašel nic o nástrojích dovolujících či usnadňujích, ale bůh ví co v tom vlastně všechno je a co na nás platí.
Uch , trosku jsi me vydesil. Ale klid. Muj skriptik nedela nic, co by porusovalo zakony - to by pak museli zrusit vsechny web browsery:) Jediny, co ten skriptik dela je:
Stejne jako to dela web browser, akorat v mym pripade se na to pouziva wget a pokud neni pozadovanej kod overeni, tak to umoznuje beh automaticky bez interakce v prohlizeci.
No, §43 nebo §44 pro tento případ asi platit nebudou, ale u §40 už si nejsem tak jistý (snažil jsem se asi půl hodiny přesně vyznačit, kterou část myslím, ale přes ten editor co tady funguje se mi to nepodařilo). U Adobe na to šli podobně.
Stejne jako to dela web browser, akorat v mym pripade se na to pouziva wget a pokud neni pozadovanej kod overeni, tak to umoznuje beh automaticky bez interakce v prohlizeci.
Proto to také zmiňuji.
Uch ,ne, opravdu netusim, jakou cast par.40 bych mohl porusovat. Vsechno, co v tom skriptu pouzivam, je sirene pod GPL (bash, wget, Xdialog, gqview).
Ne, do autorskeho prava opravdu nicim nezasahuju. Jedine, jak by se ten skript dal popsat je "usnadneni ziskavani verejne dostupneho weboveho obsahu". A pokud bys chtel "logicky" namitat, ze prave diky mojemu skriptu je mozny stahovat dila chranena autorskym zakonem, ktery nekdo jiny neopravnene siri, tak potom by ten zalobce musel zacit u vsech prohlizecu, vcetne IE, FF a jeste prede mnou i s wgetem.
Ano, muj skript umoznuje jednodussi stahovani, ale to neni autorskym zakonem omezovane. A ochrana stahovani pomoci captcha neni ochrana autorskeho dila. Bud jsi spatne pochopil ten zakon, nebo jsi nepochopil, jak vlastne ty sdileci servery fungujou.
Aha, ted jsem si precet tu zpravicku o rtmpdump. No, to jsou teda fakt paka:) Nicmene ten muj skript sam o sobe nic nestahuje, pouze pouziva externi utility. Takze pokud by chtel nekdo neco nahodou zakazovat, tak by musel zakazat wget, curl, lynx, links a mozna by se mi podarilo donutit i firefox, aby stranku stahnul a ulozil:) A to asi tezko.
Problem je, ze rtmpdump pouzival opravdu nejakou cizi technologii, pravdepodobne i nejak chranenou. Jestli provadeli reverse-engineering netusim, nicmene bych rekl, ze to bylo podobne jako u pripadu TomTom versus Microsoft ohledne FAT. Adobe to zrejme nahral radsi na DMCA, ikdyz by mozna mohl hrat na reverse-engineering jejich protokolu (a urcite nekde v licenci maji, ze pri pouzivani flashe se nesmi komunikace zkoumat).
Muj skript nic takovyho nedela, proste spusti program, precte a zpracuje data a spusti dalsi program. Pokud by neco takovyho chteli zakazat, tak muzou zrusit kompletne vsechno.
Já jen reagoval na to co bylo psáno v tom předchozím příspěvku o rtmpdump.
Hej, clovece, myslim, ze budes stastnej:) To je presne to, co to umi. Zadas na radku URL adresy, pokud mas i vic proxy serveru, tak skript vezme prvni URL. Nastavi prvni proxy a zkusi stahnout. Bud se to stahne a jde se na dalsi URL od prvni proxy opet, nebo je tam nejaky cekani X minut (obvykle 10 a vice), pak to vezmu druhou proxy a zase zkusi. Kdyz ted rapid nevyzaduje captcha, tak to samozrejme zadny kod nepozaduje, takze to bezi plne automaticky. Da se tak cucat z rapidu na vzdalenym serveru. A samozrejme to je pro anonymous usera.
skoda, ze Ti tam chyba upnito.sk. obcas by sa hodil. jose
hele, neni problem. Posli mi pres emailovej formular nejakej link, na kterym to budu moct zjistit a otestovat a pripisu to, pokud to nebude nejake extra slozity. Mozna jsem par odkazu na upnito.sk videl, ale zrejme jsme k nim mel jiny alternativy (rapid, megaupload ...), takze jsme nemel potrebu to psat (navic tam mam dva jiny slovensky (ulozisko.sk a subory.sk). Ale posli nejakej link a ja mrknu, jestli by to slo pridat.
1) ma este happyhour zmysel? imho captchu uz rapid zrusil uplne
2) ak nenajde graficky displej nemohol by sa obrazok otvorit v cacaview? ked uz sa inak neda (server bez Xov) tak sa s pomocou +/- a pri troche stastia da CAPTCHA precitat
zkusim dneska vecer