Cita Iniciado por jotam Ver mensaje
Finalmente he conseguido hacer el diccionario sin errores, o al menos que el script no muestre una salida con errores.
Tan sólo hay que seguir las instrucciones del autor, pero, aunque parezca tan obvio, no lo había hecho.
Todo está en la web del script:
http://www.albertopettarin.it/penelope.html

Para llevarlo a cabo he necesitado hacer:
  • Conseguir MARISA: Matching Algorithm with Recursively Implemented StorAge (MARISA) que es el algoritmo que permite leer y crear los diccionarios kobo. Pero en una versión compilada para windows. Se puede conseguir de aquí. O desde su hilo en mobileread.
    Se descarga y descomprime por ejemplo dentro de la carpeta de penelope.
  • Editar el archivo penelope.py (si usamos Phyton 2) o penelope3.py (si usamos Python 3) cambiando los valores de las variables MARISA_BUILD_PATH y MARISA_REVERSE_LOOKUP_PATH.
    Os muestro como lo tengo yo para que sirva de ejemplo:
    Código:
    MARISA_BUILD_PATH="C:\penelope120dictzip-marisa\marisa\marisa-build.exe"
    MARISA_REVERSE_LOOKUP_PATH="C:\penelope120dictzip-marisa\marisa\marisa-reverse-lookup.exe
  • Y dictzip que he recogido de la aplicación DictUI. El archivo a descargar es dictui-0.1.0-bin.7z. De ese archivo he extraído a la carpeta de penelope, el ejecutable "dictzip.exe" (y le he añadido las librerías "cygwin1.dll" y "cygz.dll" por si fueran necesarias). Si no tiene dictzip, lo deja decomprimido.
    Si alguien lo quiere todo junto, lo he puesto en éste archivo. Tan sólo habría que modificar los valores de las variables de marisa. Yo lo he dejado para descomprimirlo sobre C:\ y funcionar, pero si lo descargáis, revisarlo sería lo mejor.


Pues bien una vez con todo eso, en la carpeta que tengamos el penelope, copiamos también el archivo del diccionario a convertir. En mi caso el miniDRAE de Norishen, un diccionario stardict con tres archivos: drae.dict. drae.ifo y drae.idx

Abro un terminal (cmd) y ejecuto la siguiente instrucción:

penelope.py -p drae -f es -t es --output-kobo

siguiendo la ayuda de la web tenemos lo que es cada argumento:



Ahora bien, no encontrado referencia alguna a los código de lengua. Ese ISO 631-2, según he leído por aquí, debe ser un error, ya que el standard correcto sería el ISO 639-2. Por tanto el código para español podría ser "spa", "esl" o simplemente "es". Aunque tampoco lo sé seguro. Ahora he visto abajo en la web, que tienen un enlace también al standard correcto.

La cuestión de todo este rollo, es que el diccionario lo crea correctamente, pero cuando lo abres, encuentras archivos html con nombres y caracteres extraños, que no sé si funcionarán bien y no sé a qué se deben.
Por tanto pensaba yo que si sería a causa de que ese código no estuviera bien puesto; o quizá dependa del diccionario en sí, y no tanto del código, porque si le pongo "en" de inglés, me lo deja igual.
La única manera que se me ocurre de corregirlo es hacerlo manualmente. Cambiar cada nombre de archivo mal por otro con tilde, que sería lo correcto. Porque eso aparentemente es lo que falla. Pero no dónde, si en el script, si en python, o quizá en marisa. Podría ser ese compilado de marisa el que no tire bien.

Bueno, que dejo los archivos convertidos para que quien lo desee, pueda verlo, probarlo o lo que sea: miniDRAEbyNorishen4Kobo.7z

Y por hoy no pierdo más tiempo.

PD: Es muy curioso el encabezamiento del que creo es el índice del diccionario (archivo words): pone exactamente "We love Marisa". Curioso.
Jotam, después de leer detenidamente tus instrucciones (perdón por revivir este post antiguo) y la página de surquizu (impresionante el curro que tiene ), he intentado convertir el diccionario de la RAE que trae el tagus lux a formato KOBO, pero se me queda en el paso de generar el fichero con formato KOBO (descomprime el fichero DRAE.dict.dz que pasa de 98 MB a 1.2 GB !!!, crea un fichero 11.html de casi 100MB y se queda con la CPU a tope durante 7 horas, hasta que lo he cortado, y ya no hace nada). He utilizado python 3.6, de 64 bits y de 32 bits con el mismo resultado. No da errores, pero se queda funcionando indefinidamente sin acabar.
He probado con otros diccionarios stardict y siempre me da algún problema con caracteres que no reconoce ... La verdad, cualquier sugerencia será bienvenida.

¿Habéis intentado este proceso recientemente con una versión más moderna de penelope?