Ekönyvgyár parancssorban

Laugh at perfection. It’s boring and keeps you from being done.

Van egy félkész megoldásom egy szerintem érdekes problémára, megmutatom, nektek, mert együtt úgyis okosabbak vagyunk. Az alapszituáció az, hogy a scifi.com 2000 elejétől közölt remek science fiction novellákat, amiket aztán a csatorna Syfy-ra történő átnevezésekor töröltek a honlapról. A 222 megjelent írásnak természetesen van mirrorja, innen szeretnénk letölteni mindent, lehetőleg Kindle-kompatibilis .mobi fájlként.

A megoldás eleje szerintem így néz ki:

wget http://lexal.net/scifi/scifiction/archive.html
find "originals_archive" archive.html >> teszt.txt
wget -F -B http://lexal.net/scifi/scifiction/originals -i teszt.txt -O sokscifi.html

Letöltjük az archívum oldalt, kilistázzuk belőle az originals_archive kifejezést tartalmazó sorokat, mert ezek a novellákra mutató linkek, majd ezeket a linkeket úgy töltjük le, hogy az összeset egymás után is írjuk egy jó nagy HTML fájlba. (Méret 5,6 mega, meg az apró.)

Itt jönne az a rész, ahol az ember egy jól irányzott seddel kiölné a felesleges formázást a fájlból, és ráküldené a konverterre, de nem jártam szerencsével a sedeléssel. A többi parancssoros, windowsos szövegtisztító pedig ostobának bizonyult, úgyhogy itt ki kell lépni egyelőre a parancssorból.

Csalók figyelmébe: a remek Notepad++ rendelkezik remek strip HTML opcióval, a TextFX-ben van elrejtve. A program elnyamog egy ideig a szövegen, de a végén visszaköp egy körülbelül feleakkora, tiszta anyagot, amiből már csak a felesleges üres sorokat kell törölni. Ide még kell a html-body-head hármas, mert anélkül nem eszi meg a kindlegen, majd..

Ha elmentettük a felesleges formázásformázástól megtisztított fájlt, akkor már csak a .mobi-vá alakítás van hátra, a megint nagyon egyszerű:

kindlegen sokscifi_tiszta.html -c2 -o sokscifi.mobi

Az eljáráson számtalan helyen lehet javítani, kezdetnek például jól festene, ha az egész egy .bat fájlba kerülne, ha már a más honlapjáról összeollózott novellákat nem illendő megosztani az elkészült mobival. Aztán persze lehet csinosítani a könyv belsején, megkeresni a címet azonosító kódokat, és azt meghagyni. Falura mindenesetre jó ez is, városon meg úgyse nézik.

Felhasznált szakirodalom szoftverek:

Applescript és XML-RPC

AppleScripttel igenis lehet blogba postolni, csak kicsit időigényes rájönni hogyan. (az első sikeres tesztszöveg)

A lelkes rss-ben olvasók ma már több marhasággal találkozhattak itt. Volt már kint Five Days in July by Blue Rodeo, Array és egyszer egy olyan is, hog {myPost}. Most meg is magyarázom.

Olvastam a napokban, hogy az AppleScript viszonylag régen támogatja az XML-RPC-t, így elvben akár szövegszerkesztőből is küldhetek bejegyzést a worldshotsra. A Scriptbuilders-en voltak is kidolgozott megoldások ezer évvel ezelőttről Manila és Blogger blogokhoz. A WordPressem viszont Metaweblog API-t használ, így a meglévők toldozgatása helyett érdemesebbnek tűnt összelegózni valami teljesen újat. Ami abból kiindulva, hogy se az AppleScripthez se az XML-RPC-hez nem értek túlzottan, legalábbis merészség volt.

Egy AS tutorial és egy állítólag hibás, gyakorlatban remekül működő szkriptdarab segítségével a bloggal már tudtam kommunikálni, a TextEditből való szöveg kiemelést pedig nem volt nehéz megírni.

Egyébként az AS halál pontosan olyan, mintha az ember a szerecsen szolgáját instruálni pidzsin angolul.

Az eredmény a fent látható nagyon igaz tesztmondat, és a most következő szkript: tell application “TextEdit” set myPost to text of document 1 set myTitle to text returned of (display dialog “Mi legyen a post címe?” default answer “teszt”) end tell

tell application “http://www.worldshots.hu/xmlrpc.php” set returnValue to call xmlrpc {method name:”metaWeblog.newPost”, parameters:{“default”, “felhasznalonev”, “jelszo”, {description:myPost, title:myTitle}, “true”}} end tell

A mostani primitív állapotában csak új postot lehet vele létrehozni, és csak MetaWeblog API-t használó blogon. Kis drótozással, Blogger API-ra is átírható, amit például a régi Freeblog használt (az újról nem tudok semmit). És hogy minden kredit kiosztassék: az AS-HTML konverziót Jonathan Nathan appjával végeztem el.