Fel szoktam tölteni a Bibliaolvasó Kalauzt az SDG oldalára. Ennek eddig a következő volt a menete:
- Következő évi kalauz megvásárol a templomban (lehetőleg még karácsony előtt, hogy maradjon idő foglalkozni is vele).
- Valamilyen módszerrel (digi fényképezővel, vagy még jobb: céges scannerrel) gépre vinni a tartalmát.
- Valamiféle OCR programmal felismertetni, végigmenni rajta az OCR javítójával.
- Átemelni az egészet OOo.Writerbe, és újra végigmenni rajta (legalább a helyesírás-ellenőrző által jelzett hibákat javítandó, de még jobb, ha van idő végigolvasni az egészet).
- Az írókat, heteket kézzel felvinni az SDG-honlapra, majd szépen egyesével a napokat is, menet közben kijavítva a nyomdai idézőjeleket egyszerűekre, a kiemeléseket beállítani, stb.
Látható, hogy ez egy meglehetősen időigényes feladat, amiben különösen a 2-3-4. pont idegőrlő, tudván, hogy valahol valaki már biztosan gépre vitte az egészet (1). Nem hagyott tehát nyugodni a dolog, megnéztem közelebbről, mit lehet elérni, és erre jutottam:
#!/bin/bash
# vim ft:sh
egynap() {
echo "Hónap: $1, nap: $2";
curl -d "honap=$1&nap=$2" (egyhonlap) >k$1-$2.net 2>>/dev/null
cp k$1-$2.net k$1-$2.got
dos2unix k$1-$2.got
dos2unix k$1-$2.got
dos2unix k$1-$2.got
tr "\n| " " " k$1-$2.get
sed 's/.*HREF.\+=\(.*\)">.*/\1/' k$1-$2.napiige
sed 's/.* <p>\(.\+\) <.>k$1-$2.magyarazat
sed 's/.*<p>\(RÉ.\+\) .*/\1/' \(RÉ.\+\).*/\1/' >k$1-$2.enekek
(
echo -en "$1\t$2\t"
cat k$1-$2.napiige
echo -en "\t"
cat k$1-$2.magyarazat
echo -en "\t"
cat k$1-$2.enekek
echo -en "\n"
) >k$1-$2.kesz
sed "s/ / /g" >egeszev.tsv
rm k$1-$2.{get,got,kesz,enekek,magyarazat,napiige}
}
rm -f egeszev.tsv
for i in 01 02 03 04 05 06 07 08 09 10 11 12
do
for j in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
do
egynap $i $j
done
doneValószínűleg itt-ott még lehetne gyorsítani a dolgon, de évente egyszer kibírja az ember.
(1) Folyamatban van az illetővel való kapcsolatfelvétel is, lévén ha normálisan meglenne az egész anyag, akkor lehet, hogy egyenesen az SQL INSERT-eket állítanám elő egy szkripttel.