Archivo de la etiqueta: ebook

Ver los últimos libros abiertos en la página principal del Sony Reader PRS-T1

[gadgets] [programación]

Por defecto, en la página principal del Sony Reader PRS-T1 aparece en grande el último libro abierto y los 3 últimos libros añadidos al dispositivo. Esto es increíblemente poco útil, teniendo en cuenta que lo más probable es que mucho de los libros que se meten en el dispositivo no los vas a leer inmediatamente. También es muy poco útil si como yo siempre estás alternando entre dos libros (en mi caso entre un libro y un manga). Como lo más probable es que los insertara hace tiempo, pues cada vez que quiero cambiar, tendría que irme a la página con todos los libros y buscarlos. Un rollo vamos.

Lo peor de todo es que esto es algo que los usuario llevan pidiendo mucho tiempo, y en ninguna actualización del firmware se les ha ocurrido añadirlo como una opción.

Por suerte, existe una forma de lograr esta funcionalidad mediante una pequeña modificación en la base de datos interna del dispositivo. Esta base de datos es accesible desde el explorador de ficheros cuando el lector está conectado al ordenador, y no hay que tener miedo a hacer algo mal, porque siempre podemos borrar el fichero de la base de datos y el dispositivo creará un nuevo automáticamente.

La solución original se encuentra en este foro, pero no acaba de estar bien detallada en el mensaje inicial. Los pasos a realizar serían estos:

  1. Descargar y descomprimir el programa SQLiteSpy.

  2. Conectar el Sony Reader PRS-T1 al ordenador y copiar el fichero [unidad:]\Sony_Reader\database\books.db a una carpeta local. Es conveniente hacer una copia adicional de este fichero por si lo queremos recuperar.

  3. Lanzamos SQLiteSpy y abrimos books.db mediante File -> Open Database.

  4. Copiamos este código en la consola:

    CREATE TRIGGER recently_opened_trigger AFTER UPDATE OF reading_time ON books
    BEGIN
       UPDATE books SET added_date = 0 WHERE _id = new._id;
       UPDATE books SET added_date = reading_time WHERE reading_time NOT NULL AND _id <> new._id;
    END
    

    Codigo en la consola del SQLiteSpy para books.db

  5. Ejecutamos el código con Execute -> Execute SQL.

  6. Comprobamos que el trigger se ha añadido correctamente expandiendo en la barra de la izquierda books y a continuación Triggers, donde veremos uno llamado recently_opened_trigger.

  7. Salimos del SQLiteSpy. Cuando pregunte si queremos guardar los cambios, decimos que no, pues la base de datos ya está actualizada.

  8. Copiamos nuestro books.db al Sony Reader PRS-T1, sobreescribiendo el original.

  9. Desconectamos el dispositivo del ordenador.

Existe un problema con este método y consiste en que es incompatible con usar dos dispositivos de almacenamiento en el Sony Reader PRS-T1. Por ejemplo, en mi caso yo tengo el manga en la memoria SD mientras que los libros los tengo en la memoria interna. El problema consiste en que cuando se lee un libro, solo se lanzará el trigger de la base de datos donde está el libro, por lo que la otra base de datos se queda sin actualizar, causando un comportamiento errático de la página principal.

La solución consiste en utilizar un trigger distinto que mantenga un comportamiento consistente en la página principal. La contrapartida es que el libro que se está leyendo actualmente aparecerá dos veces, una en grande como libro actual, y otra en pequeño dentro del listado de los últimos leídos. Es un pequeño inconveniente pero no hay manera de evitarlo. La única solución sería usar únicamente uno de los dispositivos de almacenamiento.

El código es el siguiente:

CREATE TRIGGER recently_opened_trigger AFTER UPDATE OF reading_time ON books
BEGIN
   UPDATE books SET added_date = new.reading_time WHERE new.reading_time NOT NULL AND _id = old._id;
END

El procedimiento es el mismo explicado anteriormente, pero hay que acordarse de repetir el proceso con la base de datos de la tarjeta SD.

También es interesante decir que este método también funciona en el Sony Reader PRS-T2.

Adaptar manga para el Sony Reader PRS-T1

[gadgets] [software]

Hace ya un tiempo que llevaba queriendo comprarme un lector de libros electrónicos. Entre unas cosas y otras lo he ido postergando y por fin me decidí hace unas semanas. La duda estaba entre el Kindle y el Sony Reader PRS-T1. Si hubiese sido solo para leer libros, me habría comprado el Kindle, pero teniendo en cuenta que también lo quería para leer manga, el Kindle tiene un fallo vital, y es que sus 2 GB de almacenamiento dan para pocos mangas, mientras que el T1 tiene una ranura para micro-SD y con los 32 GB que le he metido ya se puede funcionar en condiciones.

Así que estas semanas he estado haciendo pruebas para ver cual es la mejor manera de meter los mangas. Estos son los pasos que estoy siguiendo ahora:

  1. Eliminar páginas innecesarias.
    En esta categoría entran muchas cosas, como por ejemplo las páginas de créditos de los equipos de traducción, páginas en blanco, páginas extra que no están traducidas, páginas a color que también tienen versión en blanco y negro, etc.
    Para ayudarme uso el programa VisiPics. De los programas de búsqueda de imágenes duplicadas, es el que mejores resultados me ha dado. Poniendo el filtro en “Loose” encuentra la gran mayoría de las páginas a eliminar.

  2. Dividimos el manga en grupos de tomos.
    Esto dependerá del manga. Por ejemplo, un manga que esté acabado y sean 7 tomos, los podemos meter todos en un único paquete. Pero para mangas más largos, o que aun se están publicando, yo he decidido dividirlos en 5 tomos por paquete. Esto lo hace mucho más manejable para los siguientes pasos, así como hacer que el lector lo abra más rápido. También es más fácil de actualizar si cada 5 nuevos volumenes creamos un nuevo paquete, que intentar actualizar un paquete que contenga todos los tomos. Por tanto, metemos el contenido de 5 tomos en una carpeta. Es importante que las imágenes queden ordenadas por nombre, para que después se puedan leer en orden correcto. Con la “Vista en miniatura” del explorador podemos dar un último vistazo por si se ha escapado alguna imagen que no queramos en el paquete.

  3. Cortamos las imágenes de doble página en dos páginas individuales.
    Hacemos esto porque más adelante estas imágenes pasarán a estar apaisadas. El problema es que si hay algo de texto en la imagen, pasará a ser diminuto y en ocasiones será ilegible. Para ello he hecho un pequeño programita en JAVA que buscará todas las imágenes de doble página y creará dos imágenes adicionales, con las dos mitades. Así podemos disfrutar de la vista panorámica, así como poder leer el texto en las nuevas imágenes creadas. Podéis descargar el programa de aquí.

  4. Usamos el mangle4reader para crear el paquete CBZ.
    Mangle es un programita increíble. Su uso original es el de convertir Manga para Kindle (de ahí su nombre), reduciendo el tamaño de las imágenes y convirtiendo la paleta de colores a la del Kindle. La alternativa sería hacer este paso con el Calibre, pero Mangle consigue una mejor calidad de imagen y con la mitad del tamaño que da Calibre. El inconveniente del Mangle es que saca las imágenes a una resolución de 600×800, pero para el Reader necesito una resolución de 584×754. Si no le damos este tamaño, Calibre después hará su propia conversión, con la consecuente pérdida de calidad y el doble del tamaño. Por ello he realizado unas modificaciones al Mangle, rebautizandolo como mangle4reader, para que nos de la resolución necesaria para el Reader. Te puedes bajar el código aquí. Por el momento no he conseguido hacer un ejecutable, por lo que hay que tener Python instalado para que funcione. Tenéis las instrucciones en la web del Mangle. En cuanto a las opciones del mangle4reader, yo las dejo como vienen por defecto.

  5. Añadir el libro a Calibre y convertirlo a epub.
    Una vez lo tenemos añadido, editamos sus metadatos. Al ser un grupo de volúmenes dentro de un manga mayor, el nombre que le suelo dar es “El manga que sea – Volúmenes del 01 al 05”. Añadimos también el autor, y por último en “serie” ponemos “El manga que sea” e indicamos que número es. Del 1-5 será el 1, del 6-10 será el 2, etc. Esto es muy útil porque después en el Reader podemos navegar por colecciones y accedemos muy rápidamente a un grupo de volumenes en concreto. También debemos indicar cual queremos que sea la portada. Yo suelo usar la del primer tomo dentro del grupo (1, 6, 11, …).

A la hora de convertir, estas son las opciones que debemos marcar:

Table of contents

  • Do not add detected chapters to the Table of Contents

Comic Input

  • Disable  comic processing (Ya se ha encargado el Mangle de esto)
  • Don’t add links to pages to the Table of Contents for CBC files

Epub output

  • Preserve cover aspect ratio

Le damos a OK y a esperar. Suele tardar unos 5-7 minutos. Por último enviamos el epub al Reader, ¡y a disfrutar del manga en cualquier parte!