#!/bin/sh
# sarku_LOdEon: skripto por forsarki la ordinarajn tiparojn
# DejaVu kaj PTF el la epubaj versioj de LOdE.
# Uzado:
# Iru en la dosierujon kie estas la sarkota revuo, ekz-e
# $ cd ~/Documents/Books/eo/Gazetoj/LOdE
# voku la skripton, ekz-e
# $ sarku_LOdEon Lo-270.epub
# Se la operacio sucesos, la skripto eligos tian mesagxon:
# "Lo-270.epub sukcese sarkita (je 42 %)"
# kaj sarkita dosiero (en la ekzemplo, "Lo-270.epub") anstatauxos
# la argumenton.
# Averagxe la sarko sxparas 47% el la originala amplekso:
#
# Lo-257.epub 	4.5M	2.6M	-42 % 
# Lo-267.epub 	4.2M	2.2M 	-46 %
# Lo-268.epub 	3.8M	1.8M 	-51 %
# Lo-269.epub 	4.0M	2.1M 	-48 %
# Lo-270.epub 	4.6M	2.6M 	-42 %
# -----------------------------------
# Sume 	       21.1M   11.2M	-47 %
#
# La forsarkotaj tiparoj okupas 3908 kbajt malpakite,
# kaj 2 Mbajt zipite.


set -e
case $# in 
        1);;
        *) echo "Mi atendas ekzakte unu argumenton."; exit 1;;
esac;
case $1 in 
        *.epub);;
        *) echo "Mi atendas epub-dosieron."; exit 2;;
esac;

if [ ! -s $1 ]; then
    echo "Dosiero $1 malplenas aux ne ekzistas"
    exit 3
fi

sz1=`du -b $1 | cut -f1`
rm -fr /tmp/lode
mkdir /tmp/lode
unzip -qd /tmp/lode $1
cd /tmp/lode/OEBPS/Styles/
perl -i -pe 'BEGIN{undef $/;} s/\bPT[0-9]*\b/DejaVu/g;
s/\@font-face\b[^{}]*\{[^}]*(DejaVu|PTF)[^}]*\}\n*//smg;
s/font-family: *"DejaVu (.*)";/font-family: "Droid \1", "DejaVu \1";/g;
s/^ *color: *[^;}]+;\n?//' Stiloj.css 
cd ..
sed -i '/Fonts\/\(DejaVu\|PTF[0-9]*F\)/d
' content.opf
rm -f Fonts/DejaVu*ttf Fonts/PTF*F.ttf
test "$(ls -A Fonts 2>/dev/null)" || rm -fr Fonts
cd /tmp/lode/OEBPS/Text
for i in *.xhtml; do
    sed -i 's:\(<img [^>]*\) height="[0-9]*":\1:g; s:\(<img [^>]*\) width="[0-9]*":\1:g' $i
done
cd /tmp/lode
rm -f META-INF/calibre_bookmarks.txt
zip -q -X0 lo.epub mimetype && zip -q -Xr lo.epub *
epubcheck lo.epub
sz2=`du -b lo.epub | cut -f1`
mv lo.epub /tmp/nova/$1
sz2=`expr $sz1 - $sz2`
echo "$1 sukcese sarkita (je `expr $sz2 \* 100 / $sz1` %)"
exit 0




