Nedalo mi to a o víkendu jsem se věnoval beta-testování programu dsgui. Výtku, kterou jsem měl, tzn. nedostatečnou podporu pro zálohování datových zpráv, jsem se rozhodl opravit svépomocí.S lehkým překvapením jsem zjistil, že jsem několik měsíců žil v bludu, domnívaje se, že soubory s příponou ZFO, které ukládám do archivu datových zpráv, jsou zazipované soubory ve standardním formátu XML-FO. Omyl: je to proprietární formát ISDS.
Překonav svůj omyl, zbytek byl víceméně hračkou:
#! /bin/bash
sql='sqlite3'
home='/home/tompecina'
dbf="$home/.dsgui/$(cat $home/.dsuserid)___0.db"
if [ ! -d "$1" ]; then
echo 'Existing target directory must be specified'
exit 1
fi
dir="${1%/}"
for mid in $(echo "select message_id from raw_message_data;" | $sql $dbf); do
[ -e $dir/[OD]DZ_$mid.zfo ] && continue
[ $(echo "select read_locally from supplementary_message_data where message_id='$mid';" |\
$sql $dbf) -ne 1 ] && continue
mtype=$(echo "select message_type from supplementary_message_data where message_id='$mid';" |\
$sql $dbf)
if [ $mtype -eq 1 ]; then
pref='D'
elif [ $mtype -eq 2 ]; then
pref='O'
else
continue
fi
echo "select data from raw_message_data where message_id='$mid';" | $sql $dbf |\
openssl base64 -d -out "$dir/${pref}DZ_$mid.zfo"
doneSkript projde databasi zpráv a uloží všechny, které dosud nemám staženy, do adresáře zadaného jako parametr. dsgui zatím neumí ukládat zprávy odeslané přes webové rozhraní, nicméně jakmile to zvládne, měl by skript automaticky archivovat i tyto soubory.Program
dsgui je pro mě zajímavý jednak tím, že se zdá být dobře a přehledně naprogramován, a jednak očekávanou podporou pro mobilní zařízení: na mé Nokii N900 v nejnovější versi momentálně nefunguje jen proto, že zatím nejsou portovány všechny potřebné pythonové moduly, což je vada, která bude jistě časem překonána.
6 komentářů:
Kursiva: <i>text</i>
Tučně (když už to musí být…): <b>text</b>
Odkaz: <a href = "http://adresa">název odkazu</a>, tedy <a href = ""></a>