Modifier le contenu des fichiers de sauvegarde de JW Library

Modifier le contenu des fichiers de sauvegarde de JW Library
Photo by Tomas Sobek / Unsplash

L'app JW Library vous permet d'exporter vos précieuses notes. Pour les geeks et les hackers qui souhaitent modifier ces notes de manière automatique (avec Python par exemple, ou directement avec un éditeur SQLite), il peut être fastidieux de :

  • dézipper le fichier de sauvegarde
  • recompresser le contenu dans le fichier de sauvegarde

Ces petits scripts ne sont pas compliqués, mais vous permettent de le faire rapidement.

Vous les trouverez à l'adresse suivante :
https://github.com/Bibelo/JWInflator

  • jwlibrary_unzip pour extraire le contenu du fichier de sauvegarde:
$ ./jwlibrary_unzip -h

    Usage: ./jwlibrary_unzip <JW backup>.jwlibrary

    Will simply expand to a folder containing the .jwlibrary file, the manifest.json and the userData.db.
    You can then simply edit the userData.db with SQLite software.

    The JW Library file will be modified, so make a backup of this file if needed.

  • jwlibrary_zip pour zipper le contenu:
$ ./jwlibrary_zip -h
Usage: ./jwlibrary_zip <JW folder>

    - <JW folder>: WITHOUT the .jwlibrary extension
                   folder created by jwlibrary_deflate
                   bears the name of the JW backup file without the .jwlibrary extension
                   contains the .jwlibrary file, the manifest.json and the userData.db

    Will simply update the existing .jwlibrary file with the modified userData.db and the manifest.json.
    Will remove these last two files so make a backup if needed.

Exemple : unzip

Nous avons un fichier de sauvegarde UserDataBackup_2022-10-22_TEST.jwlibrary:

$ ls -1A
UserDataBackup_2022-10-22_TEST.jwlibrary
jwlibrary_unzip
jwlibrary_zip

Ouvrez le contenu de ce fichier :

$ ./jwlibrary_unzip UserDataBackup_2022-10-22_TEST.jwlibrary
Archive:  UserDataBackup_2022-10-22_TEST.jwlibrary
  inflating: manifest.json
  inflating: userData.db

Nous avons maintenant un répertoire avec le nom du fichier de sauvegarde, sans l'extension .jwlibrary :

$ ls -1A UserDataBackup_2022-10-22_TEST/
UserDataBackup_2022-10-22_TEST.jwlibrary
manifest.json
userData.db

Le fichier de sauvegarde a été déplacé dans ce répertoire.

Vous pouvez maintenant jouer dans le fichier userData.db.

Exemple : zip

Une fois votre modification de la base de données SQLite effectuée, il est temps de la zipper pour pouvoir la restaurer dans JW Library.

N'entrez pas le répertoire. Tapez simplement la commande avec le nom du répertoire, qui est le nom du fichier de sauvegarde, sans l'extension .jwlibrary :

$ ./jwlibrary_zip UserDataBackup_2022-10-22_TEST/
updating: manifest.json (deflated 32%)
updating: userData.db (deflated 53%)

Le répertoire est supprimé et le fichier de sauvegarde zip est maintenant de retour dans le répertoire courant, prêt à être restauré dans JW Library.

$ ls -1A
UserDataBackup_2022-10-22_TEST.jwlibrary
jwlibrary_unzip
jwlibrary_zip