eBooks y PyQt: una linda pareja
Pero entonces pensé... será difícil leer ePub? Bueno, es re fácil!
Acá hay una explicación en stackoverflow.com <http://stackoverflow.com/questions/1388467/reading-epub-format>`_ pero la versión corta es... es un zip con XML adentro.
Uno de esos XML te dice adonde está cada cosa, otro es el índice, el resto es una colección de HTML/CSS/imágenes.
Entonces: estos son los ingredientes para cocinarte un lector casero de ePub en 150 líneas:
Usá el módulo zipfile para no expandir el zip (eso es berreta)
Usá Element Tree para parsear el XML.
Usá QtWebkit de PyQt para mostrar esa colección de XML/CSS/Images
Usá esta receta para que QtWebkit te avise que quiere algo del zip.
Enchufá una cosa con otra, sacudí, y terminás con esto:
Acá está el código (hasta ahora) <http://code.google.com/p/aranduka/source/browse/src/epubviewer.py?r=1d5df32bf717651e5ed5d1d22012666ee06d63a2>`_ y el archivo UI file que necesitás.
Que le falta:
No muestra la tapa.
Sólo muestra el primer nivel del índice.
Sólo lo probé en dos libros ;-)
Necesita refactorizar a morir.
Ninguna de esas cosas es terriblemente difícil de hacer!
_MUY_ Bueno !!!
Impressive!!!