VirtualBox, tj. multiplatformní virtualizační software, byl vydán v nové verzi 7.2. Přehled novinek v Changelogu. Vypíchnou lze vylepšené GUI.
Eric Migicovsky, zakladatel společnosti Pebble, v lednu oznámil, že má v plánu spustit výrobu nových hodinek Pebble s již open source PebbleOS. V březnu spustil předprodej hodinek Pebble Time 2 (tenkrát ještě pod názvem Core Time 2) za 225 dolarů s dodáním v prosinci. Včera představil jejich konečný vzhled (YouTube).
Byla oznámena nativní podpora protokolu ACME (Automated Certificate Management Environment) ve webovém serveru a reverzní proxy NGINX. Modul nginx-acme je zatím v preview verzi.
Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 25.08. Přehled novinek i s náhledy a videi v oficiálním oznámení.
Společnost Perplexity AI působící v oblasti umělé inteligence (AI) podala nevyžádanou nabídku na převzetí webového prohlížeče Chrome internetové firmy Google za 34,5 miliardy dolarů (zhruba 723 miliard Kč). Informovala o tom včera agentura Reuters. Upozornila, že výše nabídky výrazně převyšuje hodnotu firmy Perplexity. Společnost Google se podle ní k nabídce zatím nevyjádřila.
Intel vydal 34 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20250812 mikrokódů pro své procesory řešící 6 bezpečnostních chyb.
Byla vydána nová verze 1.25 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání.
Byla vydána beta verze Linux Mintu 22.2 s kódovým jménem Zara. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze novou XApp aplikaci Fingwit pro autentizaci pomocí otisků prstů nebo vlastní fork knihovny libAdwaita s názvem libAdapta podporující grafická témata. Linux Mint 22.2 bude podporován do roku 2029.
Provozovatel internetové encyklopedie Wikipedie prohrál v Británii soudní spor týkající se některých částí nového zákona o on-line bezpečnosti. Soud ale varoval britského regulátora Ofcom i odpovědné ministerstvo před zaváděním přílišných omezení. Legislativa zpřísňuje požadavky na on-line platformy, ale zároveň čelí kritice za možné omezování svobody slova. Společnost Wikimedia Foundation, která je zodpovědná za fungování
… více »Byla vydána verze 2.0.0 nástroje pro synchronizaci dat mezi vícero počítači bez centrálního serveru Syncthing (Wikipedie). Přehled novinek na GitHubu.
Tak jsem splodil další stahovací skripty, tentokrát to jsou iskladka.cz, ulozisko.sk a subory.sk.
Protože je to převážně výsledek copy&paste z předchozích skriptů a protože už se mi chce spát, tak se k tomu nebudu rozepisovat. Jenom poznámka, ulozisko.sk funguje jenom z ČR nebo SR.
#!/bin/bash if [ $# -eq 0 ];then cat <<EndHelp Usage: $0 URL ... EndHelp else tmpdir="$( mktemp -d )" while [ $# -gt 0 ];do url1="$1" shift output1="$( wget -O - -q --keep-session-cookies --save-cookies="$tmpdir/cookies" "$url1" )" url2="$( dirname "$url1" )/$( echo "$output1" | perl -e ' undef $/; $a=<STDIN>; if ((($url)=($a=~m,<iframe[^>]+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); }; ' )" output2="$( wget -O - -q --keep-session-cookies --save-cookies="$tmpdir/cookies" --load-cookies="$tmpdir/cookies" --referer "$url1" "$url2" )" data3="$( echo "$output2" | perl -e ' undef $/; $a=<STDIN>; ($link)=($a=~m,var\s+downloadCounterLink\s*=\s*[\x27"]([^\x27"]+)[\x27"]\s*;,is); ($counter)=($a=~m,var\s+downloadCounter\s*=\s*(\d+)\s*;,is); if (($url)=($a=~m,^\s+document\.getelementbyid\("downloadstatus"\)\.innerhtml\s*=\s*"\s*<iframe[^>]+src=\x27(http.*/icopy/downloadbalancer[^\x27]+)\x27,im)) { $url=~s,"\+downloadCounterLink\+",$link,is; } $link=~tr/+/ /; $link=~s/%(..)/chr(hex($1))/ge; print sprintf("%s\\%s\\%s",$counter,$link,$url); ' )" url3="${data3##*\\}" delay="${data3%%\\*}" file="${data3%\\*}" file="${file#*\\}" echo "URL: $url3" echo "FILE: $file" if [ -e "$file" ];then echo "SKIP: the file $file exists" else if [ -n "$delay" ];then for i in `seq $delay -1 1`;do echo -en "waiting $delay seconds [ $i ] \r";sleep 1;done;echo;fi if [ -n "$url3" ];then wget -O "$file" -c --load-cookies="$tmpdir/cookies" --referer="$url2" "$url3" else echo "ERROR: no url to download" exit 1 fi fi done rm -rf "$tmpdir" fi
#!/bin/bash console=0 if [ $# -eq 0 ];then cat <<EndHelp Usage: $0 URL ... EndHelp else tmpdir="$( mktemp -d )" while [ $# -gt 0 ];do case "$1" in "-c") console=1 ;; "-x") console=0 ;; * ) url1="$1" shift output1="$( wget -O - -q --keep-session-cookies --save-cookies="$tmpdir/cookies" "$url1" )" data="$( echo "$output1" | perl -e ' undef $/; $a=<STDIN>; ($delay)=($a=~m,^\bcislo\s*=\s*(\d+)\s*;,im); ($form)=($a=~m,(<form[^>]+name=captchaform[^>]*>.*?</form>),is); ($img)=($form=~m,<img[^>]+src="(/captcha3/captcha\.php\?id=[^"]+)"[^>]*>,is); ($url)=($form=~m,<form[^>]+action="([^"]+)",is); print sprintf("%s\\%s\\%s",$delay,$img,$url); ' )" echo "$data" baseurl="${url1%/download/*}" url2="$baseurl${data##*\\}" captchaimg="${data#*\\}" captchaimg="$baseurl${captchaimg%\\*}" wait="${data%%\\*}" echo "URL: $url2" echo "captcha: $captchaimg" echo "wait: $wait" waitstart="$( date +"%s" )" if [ -n "$url2" ] && [ -n "$captchaimg" ];then wget $rate -U "$agent" -nv -O "$tmpdir"/cap.jpg --load-cookies="$tmpdir"/cookies --save-cookies="$tmpdir"/cookies --keep-session-cookies "$captchaimg" if [ -n "$DISPLAY" ];then gqview "$tmpdir"/cap.jpg >/dev/null 2>&1 & pid="$!" ; fi code="" if [ -n "$DISPLAY" ] && [ $console -eq 0 ];then while [ -z "$code" ];do code="$( Xdialog --no-cancel --title 'Megaupload downloader' --screen-center --stdout --inputbox 'Enter the CAPTCHA code' 10 40 )" ; if [ $? -eq 1 ];then code="-";fi;done else while [ -z "$code" ];do read -p 'Code ["-" for stop]: ' code;done fi if [ -n "$DISPLAY" ];then kill "$pid" ; fi if [ "$code" != "-" ];then if [ -n "$wait" ]; then realwait="$(( $( date +"%s" ) - ( $waitstart + $wait ) ))" if [ $( date +"%s" ) -le $(( $waitstart + $wait )) ] ; then while [ $( date +"%s" ) -le $(( $waitstart + $wait )) ];do echo -en "waiting $wait seconds [ $(( $waitstart + $wait - $( date +"%s" ) )) ] \r";sleep 1; done ; echo ; fi fi postdata="submitted=1&str=$code" wget --load-cookies="$tmpdir/cookies" --post-data="$postdata" --referer="$url1" "$url2" fi fi ;; esac done rm -rf "$tmpdir" fi
#!/bin/bash proxiesfile="$HOME/.download-proxies" if ! [ -e "$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' ' ' )" console=0 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 "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 "value please" exit fi ;; -r) if [ $# -gt 1 ];then rate="--limit-rate=$2" i=$[$i-1] shift 2 else echo "value please" exit fi ;; -p) if [ $# -gt 1 ];then proxylist="$2" shift 2 i=$[$i-1] else echo "value please" exit fi ;; -c) console=1 shift ;; -x) console=0 shift ;; *) v="$1" shift 1 set "$@" "$v" ;; esac i=$[$i-1] done if [ -z "$proxylist" ] ;then proxylist="$allproxylist";fi tmpdir="$( mktemp -d )" echo "TMPDIR: $tmpdir" while [ $# -gt 0 ];do echo "Downloading URL $1" for proxy in $proxylist ;do if [ "$proxy" = "NONE" ];then unset http_proxy else export http_proxy="$proxy" fi echo "HTTP PROXY: $http_proxy" url1="$1" output1="$( wget -O - -q --keep-session-cookies --save-cookies="$tmpdir/cookies" "$url1" )" data="$( echo "$output1" | perl -e ' undef $/; $a=<STDIN>; ($form)=($a=~m,(<form[^>]+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[^>]+src="(/obrazky/obrazky\.php\?[^"]+)"[^>]*>,is); ($url)=($form=~m,<form[^>]+action\s*=\s*"([^"]+)",is); while (($hidden)=($form=~m,(<input[^>]+type\s*=\s*"hidden"[^>]*>),is)) { $form=~s,(<input[^>]+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); ' )" baseurl="http://www.ulozisko.sk" wait="$( echo "$data" | sed -n -e '1p;' )" captchaimg="$( echo "$data" | sed -n -e '2p;' )" url2="$( echo "$data" | sed -n -e '3p;' )" postdata="$( echo "$data" | sed -n -e '4p;' )" filename="$( echo "$data" | sed -n -e '5p;' )" echo "URL: $baseurl$url2" echo "captcha: $baseurl$captchaimg" echo "wait: $wait" waitstart="$( date +"%s" )" if [ -n "$url2" ] && [ -n "$captchaimg" ];then url2="$baseurl$url2" captchaimg="$baseurl$captchaimg" wget $rate -U "$agent" -nv -O "$tmpdir"/cap.png --load-cookies="$tmpdir"/cookies --save-cookies="$tmpdir"/cookies --keep-session-cookies "$captchaimg" if [ -n "$DISPLAY" ];then gqview "$tmpdir"/cap.png >/dev/null 2>&1 & pid="$!" ; fi code="" if [ -n "$DISPLAY" ] && [ $console -eq 0 ];then while [ -z "$code" ];do code="$( Xdialog --no-cancel --title 'Ulozisko.Sk downloader' --screen-center --stdout --inputbox 'Enter the CAPTCHA code' 10 40 )" ; if [ $? -eq 1 ];then code="-";fi;done else while [ -z "$code" ];do read -p 'Code ["-" for stop]: ' code;done fi if [ -n "$DISPLAY" ];then kill "$pid" ; fi if [ "$code" != "-" ];then if [ -n "$wait" ]; then realwait="$(( $( date +"%s" ) - ( $waitstart + $wait ) ))" if [ $( date +"%s" ) -le $(( $waitstart + $wait )) ] ; then while [ $( date +"%s" ) -le $(( $waitstart + $wait )) ];do echo -en "waiting $wait seconds [ $(( $waitstart + $wait - $( date +"%s" ) )) ] \r";sleep 1; done ; echo ; fi fi postdata="$postdata&antispam=$code" wget -c --load-cookies="$tmpdir/cookies" --post-data="$postdata" --referer="$url1" "$url2" fi fi done shift done rm -rf "$tmpdir" 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 } ] 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) URL URL to download EndOfInfo fi
Tiskni
Sdílej:
dobra prace, jen bych z toho udelal jeden skript, kterej by to detekoval podle URL
jojo, uz jsme o tom u jednoho blogu premyslel, ze bych to trosku sjednotil do jednoho skriptu, udelal funkce a detekoval URL. Ale nevim, jestli by to nebylo zbytecne prace. Uz i takhle by se to dalo hodne optimalizovat. Ale nechci u toho travit vsechen cas, uz takhle to sezere nejakej ten cas zjistovani, ze ktery stranky na kterou stranku, ktery udaje vytahnout a pak pripadny upravy, kdyz neco zmeni. Takze nevim, mozna kdyz se budu nudit, ze z toho jeden skript udelam (je zase pravda, ze by se pak neopakoval kod na zobrazeni capcha a zadani hesla a pod). No, uvidime ...