Le plugin Babelio Notes
Ce plugin implique les identifiants ‘babelio_id’ tel que généré par le plugin babelio_db.
A l’origine, ce plugin a été écrit par Christophe. Après discussion avec lui, nous avons décidé de réécrire le plugin en lui adjoignant l’une ou l’autre fonctionnalité.
Problèmes dans Babelio Notes original :- Le programme original ne gère pas la création des colonnes personnalisées
- Le programme original a une gestion limitée pour accéder au livre. Il se fonde sur le titre et le premier auteur pour trouver le livre. Il ne considère pas la référence Babelio (adresse de l’URL du livre), ni la référence ISBN. Cela résulte parfois à prendre en compte plusieurs références ou même, de temps en temps, la référence d’un livre tout à fait étranger.
De plus, Babelio.com n’est pas toujours cohérent et cela peut mener à ne pas trouver de correspondance du tout.
- Enfin, babelio.com est installé sur un serveur ‘nginx’ avec possibilité d’une sécurité accrue. Bien sûr, ces couches peuvent être optionnelles mais dans le cas de babelio.com, il me semble que tant la couche DoS (Denial of Service) que la couche WAF (Web Application Firewall) est active.
Trop souvent, quand babelio.com est accédé par programme, on déclenche la couche DoS, soit par des accès trop nombreux par unité de temps sur un des serveurs, soit par de trop nombreux accès sur une longue période sur l’ensemble des serveurs babelio.com... Cela résulte en un bannissement qui peut durer un ‘certain temps’ (de plusieurs heures à plusieurs jours voire semaines)
Solutions apportées :
- Cette version de base (5, 0, 0), supportée par calibre version = (6, 3, 0) et ultérieure, est capable de créer les colonnes manquantes avec une entête et un nom de recherche tel qu’il existe (par défaut) ou selon le choix de l’utilisateur.
- Babelio Notes accède à babelio.com par l'identifiant babelio_id uniquement. Ce babelio_id est fourni par babelio_db qui doit être installé en prérequis.
J’ai conscience que cela implique un important travail de mise a jour de calibre pour passer de l’ancienne version de Babelio Notes à la nouvelle.
Cependant, les avantages sont non négligeables : la recherche de la correspondance titre/auteurs est couverte par un algorithme unique dans babelio_db (la maintenance ne porte que sur un seul algorithme), il n’y a pas risque de vision différente entre les plugins babelio_db et Babelio Notes, les risques de sélectionner plusieurs livres sont réduits à néant.
- Enfin, cela réduit énormément le nombre d’accès à babelio.com. En effet, connaitre le babelio_id généré par babelio_db revient à connaitre l’adresse (URL) du livre. Un seul et unique accès à babelio.com est nécessaire pour aller chercher l’information relative aux notes.
Présentation
A côté de l’icône de Babelio Notes, un menu déroulant est disponible.
- La première ligne de ce menu ‘Met à jour les notes’ produit la même action que l’icône principale, elle met à jour la moyenne des notes, le compte des notes et la présence (Y ou N) du livre sur babelio.com (j’ai gardé cette colonne pour compatibilité).
- La seconde ligne permet de créer les colonnes.
Attention, choisir ‘Ajouter et sélectionner une colonne’ pour obtenir le défaut, l’algorithme propose toutes les colonnes qui répondent aux caractéristiques nécessaires.
Un redémarrage de calibre sera nécessaire.
- La troisième et quatrième actions permettent de montrer cette aide et la raison de l’écriture de ce plugin.
Installation et Mode d'emploi
Installation
Tout d'abord, télécharger le fichier zip à partir de mobileread.com.
- La méthode simple et rapide
- Dans calibre cliquer en séquence: 'Préférences', 'Extensions', 'Charger une extension à partir d'un fichier' et choisir où on veut voir apparaitre le plugin (le défaut me semble ok).
- La méthode du développeur qui charge, corrige et recharge le plugin. (Quel jeu
)
- Décompresser ce fichier zip dans un directory (on pourra supprimer celui-ci après que ‘Babelio_Notes’ soit visible dans calibre).
- Exécuter le fichier ‘runit.bat’ pour fermer calibre s’il tourne, pour intégrer le plugin ‘Babelio_Notes’ et démarrer l’application Calibre.
- Dans Calibre cliquer en séquence ‘préférence’, ‘Barres d’outils & menus’ et y choisir ‘La Barre d’outils principale’… dans Actions disponibles repérer et sélectionner ‘Babelio Notes’ pour le transférer dans Actions en cours par la flèche.
Après redémarrage, Calibre présentera l’icône de ‘Babelio Notes’
Usage
Pour autant que le livre sélectionné connaisse le babelio_id, il suffit de sélectionner les lignes que l’on veut mettre à jour, puis de cliquer l’icône.
Une erreur apparaitra si aucune ligne n’est sélectionnée, si plus de 50 lignes sont sélectionnées, si les colonnes sont manquantes, si babelio_id n’est pas connu dans les métadonnées.
- On limite à 50 lignes par itération car il faudra 1.2 secondes par accès à babelio.com soit 60 secondes minimum pour terminer 50 livres (C’est long 60 secondes quand on attend)
- Si les colonnes sont manquantes, les établir en choisissant la seconde ligne du menu déroulant.
- Si babelio_id n’est pas connu, il faut l’établir dans calibre soit en chargeant les métadonnées à partir du plugin ‘babelio_db’ soit manuellement.
Astuces
On peut installer babelio_db par calibre en suivant la séquence : ‘préférence’, ‘extensions’, ‘obtenir de nouvelles extensions’ sélectionner ‘Babelio_db’ (optionnellement lire la page officielle de l'extension. Oui, en anglais mais il y a une traduction sous ‘En Français’) et l’installer.
On peut établir le babelio_id manuellement en ajoutant la partie significative de l’URL du livre à « babelio_id: ».
exemple : ‘Jules César’ de ‘William Shakespeare’
se trouve sous l’URL « https : //www.babelio.com/livres/Shakespeare-Jules-Cesar/60715 »
la partie significative est « Shakespeare-Jules-Cesar/60715 ».
Le babelio_id est babelio_id:Shakespeare-Jules-Cesar/60715
On peut aussi, pour autant que le plugin babelio_db soit installé, sélectionner l’adresse URL, la copier puis la coller dans ‘ids’ en cliquant l’icône correspondante… voir les images 8 et 9
ici dans le forum mobileread. Accessoirement tout l’article explique que babelio.com n’est pas toujours un modèle de cohérence, même si babelio.com est remarquable de richesse.
Sources
Babelio Notes est visible sur github
https://github.com/lrpirlet/cal-babelio_notes.git
dernier commentaire :
Ce travail est open source... Je me suis amusé à l'écrire, si vous pensez que ce travail devrait être rémunéré, choisissez une association caritative et donnez-lui, un peu, avec une mention comme "Thanks to Louis Richard" ou "Merci à Louis Richard" ou quelque chose de similaire dans votre langue. Cela renforcera ma réputation (non publiée)...
Quelle charité ? Mes pires cauchemars sont liés au feu, alors je donne pour les enfants grands brûlés... Ma femme a peur du cancer, alors elle donne à la recherche contre le cancer, nous nous sentons tous les deux mal à l'aise quand des gens meurent de faim, alors nous donnons au "resto du coeur"...
Malheureusement, il y a toujours quelqu'un qui a besoin d'aide et qui ne pourra pas rembourser (sauf peut-être avec une pensée pour l'étranger qui l'a aidé). Il y a donc beaucoup de choix.
Historique de version
Le ZIP