V pátek 6. a sobotu 7. března proběhl v pražském sídle Nejvyššího kontrolního úřadu (NKÚ) Hackathon veřejné správy 7.1. Publikovány byly vytvořené aplikace. V kategorii projektů rozvíjených z krajského kola zvítězil tým „Mackokládi“. Čtyři středoškoláci ze Dvora Králové uspěli s aplikací KompaZ. Jde o digitálního průvodce, který pomůže s rychlou a srozumitelnou orientací v životních i krizových situacích „krok za krokem“. Aplikace
… více »QGIS, svobodný desktopový GIS, byl vydán v nové hlavní verzi 4.0. Změny zahrnují několik nových analytických a editačních funkcí, rozšíření podpory 3D, více možností úprav uživatelského rozhraní či mnoho dalších zlepšení použitelnosti. Řada 3.44 má aktualizace plánovány do září.
Dan Blanchard vydal knihovnu pro Python chardet v nové verzi 7.0.0. S novou verzí byla knihovna přelicencována z LGPL na MIT. Souhlasili s tím všichni přispěvatelé? Dan Blanchard souhlasy vůbec neřešil. Zaúkoloval umělou inteligenci (Claude), aby knihovnu zcela přepsala a výslovně jí nařídil, aby nepoužila žádný LGPL kód. Dan Blanchard tvrdí, že se jedná o clean room design. Protistrana argumentuje, že umělá inteligence byla trénována
… více »Andy Nguyen si na svou herní konzoli PlayStation 5 (PS5) pomocí exploitu Byepervisor nainstaloval Linux (Ubuntu). V Linuxu si spustil Steam a PS5 tak proměnil v Steam Machine. Na PS5 může hrát hry, které jsou vydané pouze pro PC a jsou na Steamu [Tom's Hardware].
Správce sbírky fotografií digiKam byl vydán ve verzi 9.0.0. Jedná se o větší vydání provázené aktualizacemi knihoven. Mnoho dílčích změn se vedle oprav chyb týká uživatelského rozhraní, mj. editace metadat.
Byla vydána verze 2026 distribuce programu pro počítačovou sazbu TeX s názvem TeX Live (Wikipedie). Přehled novinek v oficiální dokumentaci.
Jihokorejská Národní daňová služba (NTS) zabavila kryptoměnu Pre-retogeum (PRTG) v hodnotě 5,6 milionu dolarů. Pochlubila se v tiskové zprávě, do které vložila fotografii zabavených USB flash disků s kryptoměnovými peněženkami spolu se souvisejícími ručně napsanými mnemotechnickými obnovovacími frázemi. Krátce na to byla kryptoměna v hodnotě 4,8 milionu dolarů odcizena. O několik hodin ale vrácena, jelikož PRTG je extrémně nelikvidní, s denním objemem obchodování kolem 332 dolarů a zalistováním na jediné burze, MEXC [Bitcoin.com].
Komunita kolem Linuxu From Scratch (LFS) vydala nové verze knih s návody na instalaci vlastního linuxového systému ze zdrojových kódů Linux From Scratch 13.0 a Beyond Linux From Scratch 13.0. Pouze se systemd.
Byla vydána nová stabilní major verze 25.12 linuxové distribuce primárně určené pro routery a vestavěné systémy OpenWrt (Wikipedie). Jedná se o nástupce předchozí major verze 24.10. Přehled novinek v poznámkách k vydání. Podporováno je více než 2200 zařízení.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za únor (YouTube). Odstraněn byl veškerý kód napsaný ve Swiftu. JavaScriptový engine LibJS byl reimplementován v Rustu.
Tak jsem dneska našel nějaké odkazy na stahování přes úložiště http://bagruj.cz. Je tam sice captcha, ale jinak to jede rychle, čekací dobu jsem měl vždy 15 sekund, takže jsem si udělal další stahovací skriptík.
Asi k tomu není co dodat, část kódu jsem zkopíroval z down-rapid, část z down-megaupload.
UPDATE 2009/01/10: Tak jsem udělal dvě úpravy. První úprava je ukončení skriptu, pokud skript z nějakého důvodu nedokáže získat URL ke stahování. Druhá úprava mění chování při zadávání captcha kódu a měření čekací doby. Po získání URL captcha se zjistí aktuální čas, dále se stáhne a zobrazí captcha. Na promptu pro čtení captcha kódu se zobrazí i cesta captcha obrázku-pokud by se zobrazily dva captcha obrázky a prompty, tak je těžké identifikovat, který prompt patří ke kterému obrázku, takže zobrazením cesty v promptu bude identifikace jednodušší (gqview, nebo jiný prohlížeč by měl cestu ke captcha obrázku také zobrazovat). Když se přečte captcha kód, tak se zjistí aktuální čas. Pokud již vypršela čekací doba, pokračuje se stažením souboru. Pokud by náhodou uživatel dokázal zadat captcha kód ještě před koncem čekací doby, skript počká zbytek doby a pak se spustí stahování. A měl jsem tam chybku s odpočítáváním-teď už by to mělo odpočítávat dobře.
UPDATE 2009/02/11: Jenom oprava textu v titulku Xdialogu.
#!/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"
url="$1"
o1="$( wget -O - -q "$url" )"
o2="$(
echo "$o1" \
| perl -e '
undef $/;
$a=<STDIN>;
if (($b)=($a=~m,<form[^>]+name="f1"[^>]+>(.+?)</form>,is)) {
@inputs=();
while ((($input)=($b=~m,(<input[^>]+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[^>]+type="hidden"[^>]+>),,is;
}
print sprintf("post-data:%s\n",join("&",@inputs));
if (($img)=($b=~m,<img[^>]+src="(http://bagruj.cz/captchas/[^.]+.jpg)"[^>]*>,is)) {
print "captcha:$img\n";
}
if (($wait)=($b=~m,<span[^>]+id="countdown"[^>]*>(\d+)</span[^>]*>,is)) {
print "wait:$wait\n";
}
};
'
)"
captcha="$( echo "$o2" | grep -E '^captcha:' | cut -f2- -d: )"
postdata="$( echo "$o2" | grep -E '^post-data:' | cut -f2- -d: )"
wait="$( echo "$o2" | grep -E '^wait:' | cut -f2- -d: )"
echo "wait: $wait seconds"
waitstart="$( date +"%s" )"
echo "captcha: $captcha"
if [ -n "$captcha" ] && [ -n "$url" ];then
wget $rate -q -O "$tmpdir"/cap "$captcha"
if [ -n "$DISPLAY" ];then gqview "$tmpdir"/cap >/dev/null 2>&1 & pid="$!" ; fi
code=""
if [ -n "$DISPLAY" ] && [ $console -eq 0 ];then
while [ -z "$code" ];do code="$( Xdialog --no-cancel --title 'Bagruj downloader' --screen-center --stdout --inputbox "Enter the CAPTCHA code\nfor $tmpdir/cap" 10 40 )" ; if [ $? -eq 1 ];then code="-";fi;done
else
while [ -z "$code" ];do read -p 'Code for $tmpdir/cap ["-" 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
file="$( wget $rate -O - -q --post-data="$postdata&code=$code" "$url" | perl -e 'undef $/;$a=<STDIN>;if (($b)=($a=~m,<a\s+href="([^"]+)">\1</a>,is)) { print "$b\n"; };' )"
if [ -z "$file" ]; then break 2 ; fi
echo "url: $file"
echo "wget $rate -c '$file'"
if wget $rate -c "$file" ; then break ; fi
fi
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:
A ja si myslel ze pisu nesrozumitelnej bash :D
A ja si myslel ze pisu nesrozumitelnej bash :D
Pokud tim chces rict, ze se ti ten skriptik zda nesrozumitelnej, tak rekni, co presne nechapes. Jak jsem psal, pokud to nebudou veci RTFM, tak to rad vysvetlim. A to jsi jeste nevidel down-rapid:)
Takhle to vypada jako by bash byla nejaka tezka magie. :D
Sice tam nachazim par veci ktery se me nelibi a ktery bych prepsal ale jinak je to podarena sranda :P
No uznavam ze to taky nejni nejsrozumitelnejsi :P ale furt je to citelnejsi :D
Pockej, pockej. Tady je prevazne na jednom radku jeden prikaz a nemyslim, ze by byly nejak hodne slozity. Nejsem bash-guru a proto pouzivam jenom jednoduchy zakladni veci, takze bych nerekl, ze je to nejak magie (btw, bash magie byla soutezi po drate se suse). Nejvetsi magie je tam ten perl skript, ale proste v perlu je jednodussi parsovat nejakej vetsi text.
Co bys tam treba prepsal? Ja se nebranim tomu ucit se novy veci. Co presne se ti zda, ze neni citelne (krome toho perlu, ale kdyz perl umis, tak i ten perl je jednoduchej)?