Cómo exportar todas las notas de Gnote a texto plano (Gnote to txt exporter)

Hola a todos y todas, hoy vuelvo a escribir y me meto con una necesidad puntual que tengo desde hace un tiempo. No se si lo cuento en algún lado antes, pero soy, desde hace bastante, un ávido usuario de Gnote. Exportar las notas masivamente a texto es una función que no existía, hasta ahora. Me puse, y lo hice. Ahí les cuento.

Sobre Gnote

Gnote es una aplicación para tomar notas. Simple. Rápida. Me encanta. Antes usaba Everpad (Evernote) pero la interface es muy complicada y las búsquedas también, por lo que acceder a todas las notas en un parpadeo suena más fácil de lo que en realidad es. Un día un upgrade de Everpad me rompió todas las notas de Evernote, introduciendo espacios y líneas por todos lados… un desastre. Lo peor es que esas notas las usaba para trabajar.

Gnote trabaja en formato html, y soporta formateo básico del texto. No permite, sin embargo, ver imágenes dentro de la nota ni otras cosas raras. A mi me conviene el negocio. Pasé de tener unas 100 notas en Evernote a más de 1500 en Gnote. Es una aplicación que uso todo el tiempo. Obviamente, la mantengo sincronizada con Dropbox (en la fotito está el comando que uso jeje).

(mi post install, como verán, primero gnote!)

El problema

Supongamos que queremos leer las notas desde otra computadora que no tiene gnote instalado, o desde la web (por ejemplo desde el sitio de dropbox). Gnote tiene una función para exportar a HTML dentro de su menú de opciones, con ella vamos a poder hacer el accesible el contenido de cualquier nota. El “pequeño” problema es que esta función “export to html” aparece dentro de cada nota: no existe una forma para exportar todo, sino que hay que ir nota por nota y hacer click en menu, click en exportar, click en el destino. Si tenés mil notas como yo lo vas a tener que hacer 1000 veces. Ni en pedo. Quizás en otra vida.

Hice 1800 búsquedas pensando que alguien tendría que haber solucionado esto. Nada. Incluso hice una pregunta en AskUbuntu (link) y varias en Google+ que quedaron huérfanas y olvidadas en el limbo. No se si es que a nadie le interesa, pero bah, no me lo creo. Gnote y Tomboy son viejos tanques que mucha gente encuentra útil.

Me gasté mucho menos tiempo y salud e implementé la función de exportar masivamente en bash, que es lo que más o menos manejo de oído. Así que mi solución es simple, desde una terminal corremos el script y listo: todas las notas que tengamos serán exportadas a texto plano y el título de la nota será el nombre del archivo. Nada más, nada menos. :)

Cómo funciona

Como comento arriba es un script en bash. Muy simple, aunque increíblemente no estaba implementado. Miren que busqué como un cerdo, pero no. En suma, qué hice, abajo.

Qué hace? bueno, extrae el contenido de cada nota y lo transforma en texto plano. Cada archivo .txt resultante será una entrada de Gnote. Todos los txt son guardados dentro de la carpeta en donde están alojadas las notas en formato “.note” de gnote.

Así se ve una nota en formato .note (que es un XML):

Cómo lo hace la exportación a texto plano? bueno “parsea” las notas y extrae el segmento de texto plano correspondiente al cuerpo “note-content”. Para eso hago uso del comando xml_grep, que es quien hace toda la magia extrayendo el contenido y transformando links en texto plano. :) El resto es un loop básico en bash que recorre las notas. Un segundo paso del script es el tema de los títulos. Las notas .note tienen títulos super chotos tipo “1fadb1f2-5305-4395-908d-9b8d59b3a6c0.note”… así que tuve que hacer otro loop para reemplazar los nombres de cada txt resultante al título de la nota en sí (también disponible dentro del XML). Para esto último usé el comando head que parsea líneas y el comando rename y cp para acomodar los archivos. :)

Todo esto para tener una carpeta con todas las notas transformadas a txt. Jeje.

Basta de nerdeadas, les digo cómo instalarlo así lo prueban.

Cómo instalar Gnote to txt exporter

Como siempre abran una terminal y peguen:

Dependencias:

Para el caso de ubuntu, las dependencias son xml-twig-tools y unzip, así que avanti. Si tienen otra distro, simplemente cambien el apt-get por su gestor de paquetes.

sudo apt-get install xml-twig-tools unzip -y

Ahora si, a instalar:

Copien y peguen este choclito en su terminal y listo. :)

cd && mkdir -p .gnote-massive-export-to-txt && cd .gnote-massive-export-to-txt && wget https://github.com/rhoconlinux/gnote-massive-export-to-txt/archive/master.zip && unzip master.zip &&  cd gnote-massive-export-to-txt-master/ &&  mv gnote-export-to-txt.sh ~/.gnote-massive-export-to-txt/ && cd .. && rm -R gnote-massive-export-to-txt-master && rm master.zip && chmod +x gnote-export-to-txt.sh && cd

Paso opcional: el script puede instalarse a nivel de sistema, en lugar de estar dentro de tu carpeta de usuario. La razón para hacer este paso adicional es comodidad para llamar el programa, porque en términos de funcioanlidad, es lo mismo. Para instalar Gnote to txt exporter a nivel de sistema peguen esto en una terminal (requiere que pongan su password de root):

sudo cp ~/.gnote-massive-export-to-txt/gnote-export-to-txt.sh /usr/bin/gnote-export-to-txt

Con este paso vamos a poder llamar al programa con simplemente escribir gnote-export-to-txt, en la terminal. Es particularme útil si queremos automatizar el backup de las notas a texto de forma regular (usando cron u otra aplicación de automatización de tareas).

Como usar Gnote to txt exporter

El uso del programa es realmente simple: abran una terminal y ejecuten esta línea (copiar-pegar):

sh ~/.gnote-massive-export-to-txt/gnote-export-to-txt.sh

Si instalaron el programa a nivel de sistema, entonces en lugar de lo de arriba basta con escribir este comando:

gnote-export-to-txt

Apretan enter y el programa solito hace todo sin preguntar. Lee las notas y las exporta a texto. En la terminal, el proceso que inicia se va a ver así:

El tiempo de procesamiento dependerá, obviamente, de cuantas notas tengan. Como podrán comprobarlo ustedes mismos, le toma más o menos 1 segundo por nota.

¿Y dónde están mis archivos .txt?

Todos los archivos exportados están disponibles en la carpeta en donde se guardan las notas de Gnote. La ubicación es ~/.local/share/gnote. En nautilus, apreten ctrl+h en su home para ver los archivos y carpetas ocultos. Luego naveguen .local > share > gnote. Una vez ahí, van a ver la carpeta “gnote-notes-in-txt” que contiene todas sus notas en formato txt.

Un par de screenshots para el pueblo:

Encontrando las notas usando Nautilus.

Así es cómo se ve la carpeta que contiene todas las notas exportadas. En una comparación con Gnote lado a lado se ve que los títulos son los mismos. Menos mal. Jaj.

Por último, así es como se ve el “output”. El nuevo archivo de texto en comparación con la nota de Gnote. Como pueden ver el texto plano es fiel al contenido original. :)

Espero les sirva y lo encuentren útil.

Ah! el proyecto está en Github. Le hice un lindo tutorial similar a este pero en inglés. Sugerencias y comentarios, como siempre, más que bienvenidos.

github.massive.export.to.txt

Ah! (2). Todo lo que vieron VALE para Tomboy también. Lo único que tienen que hacer es cambiar la dirección de trabajo del script. En lugar de “~/.local/share/gnote” tienen que poner la de Tomboy, que presumo (NO SE) será “~/.local/share/tomboy” o algo por el estilo.

Ahora si.


ps: No es que no tenía nada que postear, sino que estuve “muleando” como un cretino jaja. Esto es un oasis, a no confundirse, mi ritmo de publicación no creo que cambie mucho en lo que queda del AÑO. Si todo va bien, luego será otra historia. Así que con suerte vendrán un par de rush de posts en días libres o algún que otro post cada muerte de obispo :P Sorry!

 

Fuente: rhoconlinux

¿Quién está en línea?

Hay 34879 invitados y ningún miembro en línea