Zim-clip au format Web Extension

Passer Zim-clip au format Web Extension.

Description

La migration est loin d'être évidente vu que les APIs à disposition sont bien moins puissantes que celles disponible avec le SDK. Voir Comparison with the Add-on SDK.

Téléchargement des images

Dans la version Addon SDK, on récupérait la liste des urls d'images sélectionnées, on créait un dossier temporaire et on enregistrait les images dans ce dossier. Avec les Web Extension, nous n'avons plus accès au système de fichier, donc plus moyen de créer un dossier temporaire où enregistrer les images. Au lieu de cela, il faut passer par l'objet downloads et lancer le téléchargement des images dans le dossier de téléchargement par défaut. Il faut donc penser à nettoyer ces téléchargements.

Appeler Zim

Je n'ai pour l'instant pas trouver comment appeler le programme Zim depuis une Web Extension. Il faudrait sans doute utiliser runtime.connectNative mais cela demanderait une étape supplémentaire du côté de Zim pour pouvoir l'appeler.

Linux
  • Firefox : ~/.mozilla/native-messaging-hosts/
  • Chromium : ~/.config/chromium/NativeMessagingHosts/
MacOS
  • Firefox: ~/Library/Application Support/Mozilla/NativeMessagingHosts/
  • Chromium: ~/Library/Application Support/Chromium/NativeMessagingHosts/

Reprise du développement (2017-08-20)

Reprise du développement mi-août 2017 et je me rend compte que la moitié de ce que j'avais écris il y a quelques mois est déjà faux ; les APIs ont passablement changé. Ironie de l'histoire : c'est l'utilisation de Chromium qui m'a donné envie de reprendre le code.

La nouvelle gestion de la communication avec les applis locales pose problème et on dirait qu'il va falloir développer un script python qui fasse le pont entre zim-clip et zim.

Tout ce bordel me rappelle le développement des extensions gnome-shell et le fait que de nombreuses personnes (dont moi) ont fini par abandonner l'idée de développer quelque chose d'un peu pousser à cause du changement incéssant des APIs.

Développement d'un plugin Zim

Pour communiquer avec Zim il faut du code capable d'interpréter les messages envoyés par l'extension du naviguateur.

Le plugin zim gère maintenant la définition des espaces de stockages des marqueurs (marks) et des extraits (clips). Il copie aussi les manifestes d'application pour permettre à l'extension web de communiquer avec Zim.

Problème avec les images

Problème avec l'enregistrement des images, sans doute lié à ce bug de Quicknote.

diff --git a/zim/plugins/quicknote.py b/zim/plugins/quicknote.py
index 32999639..90cd4ae4 100644
--- a/zim/plugins/quicknote.py
+++ b/zim/plugins/quicknote.py
@@ -97,7 +97,7 @@ class QuickNotePluginCommand(GtkCommand):
 
         if self.opts.get('attachments', None):
             self.opts['attachments'] = \
-                Dir((self.pwd, self.opts['attachments']))
+                Dir(self.opts['attachments'])
 
     def get_text(self):
         if 'input' in self.opts:
Modifications nécessaires au plugin quicknote. Problème soumis.

Portage sur Chromium

Historique

2017-08-31
  • upd Fermer. Intégrer dans la version 1.0.
2017-08-30
  • add première version du plugin Zim.
2017-08-21
  • add Première version 1.0.0 au format Wbe Extension.
  • del Panneau de saisie
2016-08-23
  • add Première ébauche au format Web Extension.