Byla vydána nová verze 6.18 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Nově se lze k síti Tor připojit pomocí mostu WebTunnel. Tor Browser byl povýšen na verzi 14.5.5. Thunderbird na verzi 128.12.0. Další změny v příslušném seznamu.
Meta představila prototyp náramku, který snímá elektrickou aktivity svalů (povrchová elektromyografie, EMG) a umožňuje jemnými gesty ruky a prstů ovládat počítač nebo různá zařízení. Získané datové sady emg2qwerty a emg2pose jsou open source.
Byla vydána (𝕏) nová verze 25.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 25.7 je Visionary Viper. Přehled novinek v příspěvku na fóru.
Před 40 lety, 23. července 1985, společnost Commodore představila první počítač Amiga. Jednalo se o počítač "Amiga od Commodore", jenž byl později pojmenován Amiga 1000. Mělo se jednat o přímou konkurenci počítače Apple Macintosh uvedeného na trh v lednu 1984.
T‑Mobile USA ve spolupráci se Starlinkem spustil službu T-Satellite. Uživatelé služby mohou v odlehlých oblastech bez mobilního signálu aktuálně využívat satelitní síť s více než 650 satelity pro posílání a příjem zpráv, sdílení polohy, posílání zpráv na 911 a příjem upozornění, posílání obrázků a krátkých hlasových zpráv pomocí aplikace Zprávy Google. V plánu jsou také satelitní data.
Společnost Proxmox Server Solutions stojící za virtualizační platformou Proxmox Virtual Environment věnovala 10 000 eur nadaci The Perl and Raku Foundation (TPRF).
Byla vydána nová verze 2.4.65 svobodného multiplatformního webového serveru Apache (httpd). Řešena je bezpečnostní chyba CVE-2025-54090.
Společnost Proton AG stojící za Proton Mailem a dalšími službami přidala do svého portfolia AI asistenta Lumo.
Amazon koupil společnost Bee zaměřenou na nositelnou osobní AI aktuálně nabízející náramek Pioneer (YouTube) s mikrofony zaznamenávající vše kolem [𝕏, LinkedIn].
Společnost Teufel nedávno představila svůj první open source Bluetooth reproduktor MYND.
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 ...