Cosas Interesantes

sábado, 2 de enero de 2010

Mi PAPYRE 6.1 reader NO GUARDA el ULTIMO LIBRO LEÍDO / My PAPYRE 6.1 reader DOES NOT SAVE RECENTLY READ BOOKS properly

image Algunos usuarios han reportado problemas a este respecto. Creo que lo mejor es revisar cómo se guarda esta información.

EL BOOKSHELF
El BOOKSHELF guarda en un fichero “RecentlyRead.sys” todos los archivos que se abren desde el mismo. Teneis información de detalle en RecentlyRead Editor. Pero no era de esto de lo que se quejaban los usuarios; sino específicamente del comportamiento de los lectores. Vamos a analizarlo un poco. Además, el BOOKSHELF almacena que tal libro o archivo fue abierto recientemente y nada más. No tiene la informacion de qué pagina fue leída.

CÓMO GUARDA COOLREADER LOS LIBROS RECIEN LEÍDOS
Como sabeis COOLREADER es el lector diseñado para y por el formato FB2.  Y el formato FB2 es un fichero XML. Por lo tanto, no es raro pensar que utilice este formato para guardar la información. Para toda unidad de disco dónde esté ubicado el archivo ebook que se abra COOLREADER generará un archivo “.cr3hist” donde almacena esta información. Si el e-book que abrimos está en la memoria interna, lo anotará en el fichero “.cr3hist” en la memoria interna. Si nuestro libro recién leído está en la tarjeta SD, la anotación correspondiente se hará en un fichero “SD:\.cr3hist”.
IMPORTANTE: la información se graba en este archivo después de salir (cerrar) desde el programa COOLREADER al BOOKSHELF. Esto significa que si no se hace un “cierre ordenado” de COOLREADER, no se grabará la información. Es decir, si apagamos el dispositivo antes de salir de COOLREADER, por ejemplo, no se grabará. O si COOLREADER se apaga o reinicia por error de software tampoco.

ANALIZANDO LA INFORMACIÓN EN “.cr3hist”
image

Como vemos en la imagen es un fichero XML con un SCHEMA propio “FictionBookMarks” con un párrafo por cada diferente ebook, donde almacena la información.


Como vemos en la imagen de abajo (que podeis pulsar para acceder al código) hay un primer párrafo <file-info> que contiene datos sobre el libro.
Primero son datos extraidos de los METADATOS del libro
<doc-title> El titulo del libro


<doc-author>
El autor del libro

<doc-series>
El nombre de la serie y su número

Click para CODIGO

A continuación incluye datos que extrae del FYLESYSTEM DEL SISTEMA OPERATIVO:
<doc-filename> Nombre de Archivo y extensión del libro (“Milibro.FB2”; p.ej.)

<doc-filepath> La ruta en la que se encuentra el archivo. De esta forma, vemos que la ruta de la tarjeta SD, “SD:\Colleen McCullough\Favoritos de la fortuna\” es en realidad para el WOLFLINUX subyacente /root/abook/Colleen McCullough/Favoritos de la fortuna/. La ruta en la memoria interna "HD:\directorio" es en realidad /home/directorio/.

<doc-filesize> El tamaño del archivo en bytes

LA LISTA DE MARCADORES (BOOKMARKS)
Y vemos que el siguiente párrafo entre las etiquetas <bookmark-list> no es sino eso; una lista de marcadores (bookmarks). Y para cada marcador entre las etiquetas <bookmark> tiene la siguiente información:

<bookmark type> El tipo de Marcador si es <bookmark type="lastpos"> ESTÁ GRABANDO LA ÚLTIMA POSICIÓN DE LECTURA. Si es <bookmark type="position"> es un marcador normal de ANOTACIÓN ELEGIDO POR EL LECTOR. Si es <bookmark type="comment"> es un marcador normal de ANOTACIÓN con SELECCIÓN DE TEXTO.

<percent> Es la posición (en tanto por ciento) en el libro con respecto al número de páginas. Es la forma inteligente de hacer una medición ABSOLUTA de una magnitud relativa como es el múmero de páginas del libro, que depende de la fuente escogida, márgenes, etc...Si con la configuración dada el libro está paginado en 500 paginas y estas en el 50% te llevará a la página 250. Si cambias la fuente y el libro pagina a 600 páginas totales, te llevará a la página 300, que será exactmente el mismo punto del libro que en el caso anterior.

<timestamp> La fecha/hora en formato serial desde el inicio del calendario. Para que sean consistentes no debeis olvidar poner el reloj en hora después de cada actualización de firmware.

<shortcut> La tecla (1 al 8) asociada al marcador. Cuando se trata de la ÚLTIMA POSICIÓN DE LECTURA o de una ANOTACIÓN con SELECCIÓN DE TEXTO siempre es shortcut="0"

<start-point> y <end-point> Punto inicial y final del marcador o anotación según los elementos de la estructura del texto.
Sólo tiene <end-point> lógicamente cuando se trata de una ANOTACIÓN con SELECCIÓN DE TEXTO. La ÚLTIMA POSICIÓN DE LECTURA tiene únicamente <start-point>.
Veamos varios ejemplos:
/FictionBook/body/section[15]/p[356]/text().0 Es el principio del texto del párrafo 356 de la sección 15 del cuerpo del texto de un libro FB2
/body/p[8586]/span/text().0 Es el principio del párrafo 8586 de un libro ePUB.

<header-text> El texto del título del elemento (seccion FB2) en el que estamos posicionados; por ejemplo "GLOSARIO"

<selection-text> Texto seleccionado. Se incluye completo, no importa su longitud

<comment-text> Siempre vacío, ya que nuestro COOLREADER no permite añadir comentarios a los textos seleccionados en el PAPYRE.

Así, si detectais que COOLREADER no os ha guardado algún final de lectura ya sabeis dónde acudir para depurar el problema. Y siempre OJO!!!: permitir el cierre ordenado del libro y del lector COOLREADER, saliendo al BOOKSHELF; si no, no quedará grabada vuestra ÚLTIMA POSICIÓN DE LECTURA.

MODIFICACION 20100129
Utilizando la información de esta entrada para depurar el proceso arb194 ha detectado que los libros cuyo nombre de archivo incluye un “&” (ampersand) no graban la información en el fichero XML “.cr3hist”. Por lo tanto, ya sabeis, para que os grabe la información de última lectura debeis quitar los “&” que pueda haber en el título del libro y, por extensión os recomiendo que elimineis también cualquier otro caracter extendido. Informaré al autor BUGGINS para que corrija este bug.

6 comentarios

  1. Nunca me había pasado y anteayer me pasó. Creí que era debido a la instalacion de algun firmware, pero después de mucho trastear descubrí, gracias a esta entrada, que si que se guardaba la página, lo que pasaba era que al abrir el libro no me abría la página guardada. El problema era que el nombre del archivo contenía un ampersand (&). Al eliminar dicho símbolo ya funcionó bien.

    ResponderEliminar
  2. Nunca me había pasado y anteayer me pasó. Creí que era debido a la instalacion de algun firmware, pero después de mucho trastear descubrí, gracias a esta entrada, que si que se guardaba la página, lo que pasaba era que al abrir el libro no me abría la página guardada. El problema era que el nombre del archivo contenía un ampersand (&). Al eliminar dicho símbolo ya funcionó bien.

    ResponderEliminar
  3. No veas lo que me alegro de que por fin alguien haya podido depurar el tema utilizando la información de esta entrada. Lo del "&" es muy interesante, lo incluyo en el blog.

    ResponderEliminar
  4. A mi me ocurrió que no guardaba la página por donde iba. Al abrir el libro la abría por el princípio. Reinstale el firmware, resetee etc y seguia igual.
    El problema se solucionó formateando la tarjata donde estaban los libros y volviendo a copiarlos en ella. La tarjeta había estado funcionando bień, pero debió de ocurrir algo meter libros nuevos o algo y la dejó "tocada", aunque aparentemente no se veia nada raro.

    ResponderEliminar
  5. Creo que ha sido algo más sencillo. Al resetear la tarjeta has eliminado y creado de nuevo el archivo ".cr3hist", cosa que recomiendo que se haga de vez en cuando.

    ResponderEliminar
  6. tengo un papyre 6.2 y no me guarda la ultima pagina leida.No tengo tarjeta

    ResponderEliminar

© Cosas Interesantes