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 done
Való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.