Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04-1.3. Současně oznámila, že nadcházející větší vydání 24.04-2.0 bude mít modernější webový prohlížeč.
Ploopy po DIY trackballech či sluchátkách představuje nový externí DIY trackpoint se čtyřmi tlačítky Bean. Obsahuje snímač Texas Instruments TMAG5273, spínače Omron D2LS-21 a řadič RP2040, používá firmware QMK. Schémata jsou na GitHubu; sadu lze předobjednat za 69 kanadských dolarů (bez dopravy a DPH).
Mozilla před dvěma týdny na svém blogu oznámila, že díky Claude Mythos Preview bylo ve Firefoxu nalezeno a opraveno 271 bezpečnostních chyb. Včera vyšel na Mozilla Hacks článek s podrobnějšími informacemi. Z 271 bezpečnostních chyb mělo 180 chyb vysokou závažnost, 80 chyb střední závažnost a 11 chyb nízkou závažnost. Celkově bylo v dubnu ve Firefoxu opraveno 423 bezpečnostních chyb. Čísla CVE nemusí být přiřazována jednotlivým chybám. CVE-2026-6784 například představuje 154 bezpečnostních chyb.
Před týdnem zranitelnost Copy Fail. Dnes zranitelnost Dirty Frag. Běžný uživatel může na Linuxu získat práva roota (lokální eskalaci práv). Na většině linuxových distribucí vydaných od roku 2017. Aktuálně bez oficiální záplaty a CVE čísla [oss-security mailing list].
Ačkoli je papež Lev XIV. hlavou katolické církve a stojí v čele více než miliardy věřících po celém světě, také on někdy řeší všední potíže. A kdo v životě neměl problémy se zákaznickou linkou? Krátce poté, co nastoupil do úřadu, musel papež se svou bankou řešit změnu údajů. Operátorka ale nechtěla uvěřit, s kým mluví, a Svatému otci zavěsila.
Incus, komunitní fork nástroje pro správu kontejnerů LXD, byl vydán ve verzi 7.0 LTS (YouTube). Stejně tak související LXC a LXCFS.
Google Chrome 148 byl prohlášen za stabilní. Nejnovější stabilní verze 148.0.7778.96 přináší řadu novinek z hlediska uživatelů i vývojářů. Vypíchnout lze Prompt API (demo) pro přímý přístup k AI v zařízení. Podrobný přehled v poznámkách k vydání. Opraveno bylo 127 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Richard Hughes oznámil, že po společnostech Red Hat a Framework a organizacích OSFF a Linux Foundation, službu Linux Vendor Firmware Service (LVFS) umožňující aktualizovat firmware zařízení na počítačích s Linuxem, nově sponzorují také společnosti Dell a Lenovo. Do dnešního dne bylo díky LVFS provedeno více než 145 milionů aktualizací firmwarů od více než 100 různých výrobců na milionech linuxových zařízení.
Americké technologické společnosti Microsoft, Google a xAI souhlasily, že vládě Spojených států poskytnou přístup k novým modelům umělé inteligence (AI) před jejich uvedením na trh. Oznámila to americká vláda, která tak bude moci prověřit, zda modely nepředstavují hrozbu pro národní bezpečnost. Oznámení podtrhuje rostoucí obavy Washingtonu z rizik spojených s výkonnými AI systémy. Americké úřady chtějí v rámci předběžného přístupu
… více »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 ...