Sortie de ZimArchivist 0.1
Je parlais dans un précédent billet d’un projet personnel consistant à archiver les liens web de mes notes zim afin de palier à la disparition de certains sites ou de certains contenus.
Bien que mon premier jet donnait quelque chose de presque fonctionnel, le code a largement été remanié dans sa structure et dans la mise en place de tests unitaires. Il y a eu :
- une refonte des options.
- des corrections de bug sur la détection des URI.
- la mise en place de tag {noarchive} {noarchive} dont l’utilisation est encore pour le moment peu flexible. Les tags doivent être seuls sur les lignes. A l’avenir ils pourront être disposé n’importe comment. Le but est évident, éviter l’archivage d’un bloc de texte.
- la vérification de la dernière modification : le code garde une base de donnée avec les dates de dernière modification. Si la page n’a pas bougé, alors le code n’ira pas vérifier la présence de nouveau lien. Le but étant d’accélérer le processus.
- le nettoyage (via une option) du cache : on enlève les archives dont les entrées ont été effacées dans le notebook. Il est possible d’outre passer cette fonctionnalité.
- Un log est généré pour faciliter la résolution de problème. Celui-ci reste à retravailler.
Chez moi, le code fait son travail sans problème sur plusieurs centaines de liens réparties dans plusieurs dizaines de pages zim. D’où cette version 0.1.
Suite à mes tests, je recommande de fermer le notebook avant de lancer l’utilitaire tant que le bug sur zim n’est pas résolu.
D’autres petites améliorations sont prévues (dont tout un tas de trucs mineurs). Je pense aussi à la détection de type dans les URI (typiquement un pdf), l’archive aurait la bonne extension. Je me réserve quelques tests de BeautifulSoup. Mon objectif serait de récupérer des images qui peuvent être importantes pour certains sites. Néanmoins, ce sera une fonctionnalité assez conséquente à implémenter. Enfin, peut être qu’une fonctionnalité intéressante serait d’avoir la possibilité de mettre à jour le cache tout en conservant l’ancienne version de l’archive. Si je trouve un intérêt pratique, ce sera sur la TODO list.
J’invite les personnes intéressées à suivre le projet en lui même (à évolution lente car j’y consacre un temps réduit), je ne ferai pas nécessairement des billets pour les prochaines versions à moins qu’il n’y ait quelque chose d’intéressant à raconter
La doc s’enrichira au fur et à mesure.
Dépôt : git