Le plugin babelio_db

Ce plugin est construit sur les bases jetées par VdF. Je l'ai écrit pour mon usage en vue de résoudre ce que je perçois comme des limitations dans le plugin de VdF.

Limitations perçues dans le plugin original, résolues dans ma version. 

  1.  Il n'y pas de référence (id) qui permet de retrouver le URL, ni de moyen d'ajouter un id depuis le URL par manque des deux routines suivantes:
    1. get_book_url : used by calibre to convert the identifier to a URL...
    2. id_from_url : takes an URL and extracts the identifier details...
  2. Dès que le contenu de Babelio est remonté, TOUTE l'information est traduite en utf8, TOUS les outputs (logs...) et les inputs (ce qui est lu sur le site...) sont en utf8... Les multiples conversions me rendent le code confus
  3. Un seul matches même si deux livres répondent à la recherche (et que Calibre accepte plusieurs matches par site)
  4. La compatibilité avec python 2.x me semble obsolète et perturbant. (on peut lire que je ne connais pas python 2.x ;-) )
  5. Identify() devrait être invoqué avec NAME_ID puis ISBN et si ça ne marche pas avec titre + auteur, ..., pour terminer avec le titre seul.
  6. Un config.py est OK mais je préfère utiliser le config intégré, bien suffisant, et bien plus beau (à mon avis :-) ).
  7. Babelio donne le nom de la série et son n° de tome (ordre dans la série), je veux essayer de l'introduire (et vérifier que toutes mes séries y répondent...)
  8. Je préfère nettement les commentaires en HTML et beautifulsoup (utilisé dans calibre par ailleurs): cela permet de garder la "structure", en particulier les retours à la ligne.
  9. J'ai horreur de ce langage de recherche et substitution (expression régulière) auquel je ne comprends pratiquement rien... enfin, rien qu'un tout petit peu quoi!  

Mode d'emploi

Il est a noter que le plein potentiel d'un plugin source ne peut être obtenu que si le plugin est utilisé seul. En effet, utilisé avec d'autres plugin(s), calibre recherche une correspondance sur le titre, les auteurs et les ID... Calibre fait alors une fusion de tous les résultats correspondants pour donner un maximum d'informations pertinentes.

Voici comment je l'utilise

Si, comme je le préfère, vous désirez les renseignements venants de babelio et de babelio seulement, il faut sélectionner babelio seul et conserver plus d'une entrée par source (par plugin). L'utilité se manifeste pour des recherches telles que "henri verne Les dents du tigre 2" qui retourne en premier "Les dents du tigre (2/2)" suivi de "Les dents du tigre (1/2)", ou encore une recherche sur "Paulo Coelho Guerrier de Lumière" qui retourne quatre ouvrages différents.

Une fois que les informations de babelio ont été téléchargées, je les augmente en téléchargeant de tous les plugins uniquement les étiquettes et les images de couverture (par exemple). Je pourrais aussi charger les notes de manière à pondérer celles donnée par babelio, etc...

sélectionner plus d'une entrée par source
metadata general setup

Bien sur, on peut l'utiliser autrement...

J'ai donc écris une configuration de ce plugin.

Configuration de la source babelio
babelio_db setup

J'ai gardé la fonction d'éviter la recherche d'une couverture. En fait, parce que l'image de couverture se trouve parfois sur amazon, et parce que amazon n'est pas vraiment réactif pour les accès non humain, cette fonction se révèle dans certains cas vraiment très utile. On passe de quelque dizaine de secondes d'attente à une poignée de secondes. C'est très appréciable quand on traite une série de titres.

J'ai implémenté plusieurs niveaux de verbosité, par défaut le niveau 3 donnera dans le log l'état d'avancement. En particulier, il se pourrait que le plugin ne fournisse pas l'éditeur auquel cas un rapide coup d'œil au journal permet de voir si c'est un bogue du plugin ou un manque sur babelio...
En cas de bogue, pousser la verbosité à 15 permet de mieux voir ou se trouve le problème

Une utilisation de calibre, importante pour moi, est la création de catalogue. Dans ce catalogue, j'aime pouvoir suivre un lien vers le site de babelio. Cela me permet d'obtenir plus de renseignements sur l'auteur, sur sa bibliographie, sur les avis des lecteurs... Je crée donc une référence qui trouve sa place dans les commentaires, et je la sépare du résumé venant du site par un titre.
Dans la même veine, il est possible d'ajouter la note associée avec le livre sous son titre.

Enfin, Babelio.com présente une compilation des différentes étiquettes proposées par les lecteurs. Elle sont classifiée par genre, thème, lien et époque. La taille de la fonte est proportionnelle à la pertinence. On peut avoir plusieurs étiquettes avec la même pertinence, la plus grande pertinence de chaque type d'étiquette n'est pas de la taille de fonte maximale. J'ai choisi de sélectionner pour chaque type d'étiquette le nombre de niveaux a partir du plus important. Il en résulte qu'introduire 0 supprimera les étiquettes associées avec ce type, qu'introduire 2 produira peut-être 1 ou plus de 2 étiquettes fonction du nombre d'étiquettes sous les 2 plus hauts niveaux

En cas de bogue

Le mieux, pour rapporter un problème est de pousser la verbosité au maximum (15), de reproduire le problème et de copier le journal. Une courte description du bogue avec le journal aidera fortement à comprendre et à corriger tant le plugin que sa documentation. En effet, rapporter que le titre n'est pas décodé correctement quand plusieurs plugins sont sélectionnés, est probablement le fonctionnement normal de calibre, c'est donc à documenter..