View Single Post
Old 05-14-2021, 06:41 AM   #1
lrpirlet
Connoisseur
lrpirlet began at the beginning.
 
Posts: 96
Karma: 40
Join Date: Mar 2020
Location: Belgium (sorry, I am from the Walloon side of the country and I speak french only)
Device: PW3, Kobo Libra H2O
[Metadata Source Plugin] noosfere DB

[Metadata Source Plugin] noosfere DB

This plugin gets the metadata for books from the noosfere site.

The noosfere site
The noosfere site says in french: "nooSFere est une association régie par la loi de 1901, à but non lucratif. Elle a pour but de promouvoir la science-fiction parue en langue francaise, essentiellement au travers de ce site web."

This translate to: "nooSFere is a non-profit association governed by the law of 1901. Its aim is to promote science fiction published in the French language, mainly through this website."

The noosfere site is NOT selling any books, it is a huge source of information about books and volumes (a volume being a particular edition of the book where isbn, cover, publisher may be different between the volumes of a same book)

Note: this site is written in French about books/volumes written in French for French speaking readers.

Main Features

I choose to include in the volume's comment, the resume (quatrième de couverture), the critics and the table of content (sommaire). Optionally, one can include in the comments some other information such as awards attached to the book, film made out of the books, etc.... (provided the info is available. )

I choose to have all link working as noosfere propose a lot more information. I find it invaluable when I build a catalogue.
  • Can retrieve title, author, comments, publisher, publication date, series and tags.
  • Fetches the cover related to the volume, NOT all the possible covers related to the book.
  • There is no official identifier for noosfere. I choose to create an identifier (nsfr_id) made of the book and the volume reference in the noosfere DB: bk$numeric$vl$numeric… the initial idea was to be able to access both the book and the volumes. Because I could not make an interactive choice, the need for the BK$numeric part became useless, I made no effort to keep it… VL$numeric is quite enough to uniquely refer to the volume.
  • I did write it to learn python. I have absolutely no intend to learn python 2. So this is working with calibre version 5… Minimum requirement calibre_version = (5, 11, 0)


Installation Notes:
  • Download the attached zip file and install the plugin as described in the Introduction to plugins thread.
  • Alternatively, copy the zip file, unzip it in a dedicated folder, get the needed privileges and execute the register.bat (linux people can read the register.bat file and sudo the content)
  • Note that this is not a GUI plugin so it is not intended/cannot be added to context menus/toolbars etc.
  • Configure the plugin.

Configuration:
Several options to modify/tune the behaviour off the plugin.
  • Debug level or "Loquacité du journal" set it to 7 for a max of info, I set it to 3 as this is where I get most of the misbehaviours
  • "Priorité de tri". When a book reference dispatch to several volumes, I try to prioritize the best specimen. I usually like to get a volume with a maximum of info and an isbn… But for some text, I like to get something different.
  • Impose un éditeur or force a publisher. If this field contains the exact publisher name (including upper case and/or special characters) as in noosfere, the volume picked will be from that publisher. I have it blank most of the time.
  • A few tick boxes to select what additional info wanted in the comment (if it exist in noosfere )
  • Last but not least, "ajoute collection et son numéro d'ordre au champ éditeur" will add the publisher collection and the collection serial to the publisher field in calibre. Read README publisher_collection_seriel-code (or LIS-MOI editeur_collection_seriel-code) in the zip file.

Sources:
https://github.com/lrpirlet/cal-noosfere.git

Noosfere_util, a companion plugin
I have developped a plugin that will allow a user of noosfere DB to choose in an internet browser the edition he best like. The plugin will write the nsfr_id of the selected lines according to the user choice. The modified lines will be put in a set whose metadata can be downloaded via noosfere DB. Finaly, if the user has requested overloading the publisher field, a utility will dispatch the information... see https://www.mobileread.com/forums/sh...00#post4208700

Since version 1.0.0, noosfere_util is less important: see explanation

Last comment:
This work is open source… I enjoyed writing it, if you feel like this work should be retributed, choose a charity and give them some with a mention like "Thanks to Louis Richard" or "Merci à Louis Richard" or some similar in your language. That will build up my (unpublished) reputation… ��

What charity? My worse nightmares involve fire, so I give for deeply burn children… My wife is afraid of cancer so she gives to cancer research, we both feel bad about starving people so we give to "resto du Coeur"…

Sadly, there is always someone who needs help and who will not be able to pay back (except maybe with a thought for the unknown who helped). So there is plenty of choice.

En Français
Spoiler:
Ce plugin récupère les métadonnées des livres du site noosfere.

Le site noosfere
Le site noosfere dit: "nooSFere est une association régie par la loi de 1901, à but non lucratif. Elle a pour but de promouvoir la science-fiction parue en langue française, essentiellement au travers de ce site web."

Le site noosfere ne vend PAS de livres, c'est une énorme source d'informations pour les livres et les volumes (un volume étant une édition particulière du livre où l'isbn, la couverture, l'éditeur peuvent être différents entre les volumes d'un même livre).

Note : ce site est écrit en français sur des livres/volumes écrits en français pour des lecteurs francophones.

Caractéristiques principales

J'ai choisi d'inclure dans les commentaires, le quatrième de couverture, les critiques et le sommaire. En option, on peut inclure dans les commentaires d'autres informations telles que les prix obtenus, les films réalisés à partir des récits, etc..... (à condition que ces informations soient disponibles).

J'ai choisi de faire fonctionner tous les liens car noosfere propose beaucoup plus d'informations. Je trouve cela inestimable lorsque je construis un catalogue.
  • Peut récupérer le titre, l'auteur, les commentaires, l'éditeur, la date de publication, la série et les tags.
  • Récupère la couverture liée au volume, PAS toutes les couvertures possibles liées au livre.
  • Il n'y a pas d'identifiant officiel pour noosfere. J'ai choisi de créer un identifiant (nsfr_id) composé de la référence du livre et du volume dans la BD noosfere : bk$numeric$vl$numeric... l'idée initiale était de pouvoir accéder à la fois au livre et aux volumes. Comme je ne pouvais pas faire un choix interactif, le besoin de la partie BK$numeric est devenu inutile, je n'ai pas fait d'effort pour la garder... VL$numeric est bien suffisant pour référencer le volume de façon unique.
  • Je l'ai écrit pour apprendre python. Je n'ai absolument pas l'intention d'apprendre python 2. Donc cela fonctionne avec calibre version 5... Configuration minimale calibre_version = (5, 11, 0)


Notes d'installation :
  • Téléchargez le fichier zip ci-joint et installez le plugin comme décrit dans le fil de discussion Introduction aux plugins.
  • Alternativement, copiez le fichier zip, décompressez-le dans un dossier dédié, obtenez les privilèges nécessaires et exécutez le register.bat (sous linux, le fichier register.bat et sudo le contenu).
  • Notez qu'il ne s'agit pas d'un plugin GUI et qu'il n'est donc pas destiné à être ajouté aux menus contextuels/barres d'outils, etc.
  • Configurez le plugin.

Configuration :
  • Plusieurs options pour modifier/régler le comportement du plugin.
  • Debug level or "Loquacité du journal" set it to 7 for a max of info, I set it to 3 as this is where I get most of the misbehaviours.
  • "Priorité de tri. Lorsqu'un livre a pour références plusieurs volumes, j'essaie de donner la priorité au meilleur spécimen. J'aime généralement obtenir un volume avec un maximum d'infos et un isbn... Mais pour certains ouvrages, j'aime obtenir quelque chose de différent.
  • Imposer un éditeur ou forcer un éditeur. Si ce champ contient le nom exact de l'éditeur (y compris les majuscules et/ou les caractères spéciaux) comme dans noosfere, le volume choisi sera de cet éditeur. Je le laisse vide la plupart du temps.
  • Quelques cases à cocher pour sélectionner les informations supplémentaires que vous souhaitez voir figurer dans le commentaire (si elles existent dans noosfere).
  • Enfin, "ajoute collection et son numéro d'ordre au champ éditeur" ajoutera la collection de l'éditeur et le numéro d'ordre de la collection au champ éditeur dans calibre. Lisez le README publisher_collection_seriel-code (ou LIS-MOI editeur_collection_seriel-code) dans le fichier zip.

Sources :
https://github.com/lrpirlet/cal-noosfere.git

Noosfere_util, un plugin compagnon
J'ai développé un plugin qui permettra à un utilisateur de noosfere DB de choisir dans un navigateur internet l'édition qui lui convient le mieux. Le plugin écrira les nsfr_id des lignes sélectionnées en fonction du choix de l'utilisateur. Les lignes modifiées seront placées dans un ensemble dont les métadonnées pourront être téléchargées via noosfere DB. Enfin, si l'utilisateur a demandé de surcharger le champ éditeur, un utilitaire enverra l'information... voir https://www.mobileread.com/forums/sh...00#post4208700.

Depuis la version 1.0.0, noosfere_util est moins important : voir l'explication

Dernier commentaire :
Ce travail est open source... J'ai pris du plaisir à l'écrire, si vous pensez que ce travail doit être redistribué, 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 impliquent le feu, donc je donne pour les enfants brûlés profondément... Ma femme a peur du cancer donc elle donne à la recherche sur le cancer, nous nous sentons tous les deux mal à l'aise face aux gens qui meurent de faim donc 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'inconnu qui l'a aidé). Il y a donc l'embarras du choix.

Version History:
Spoiler:
version to 0.9.3: initial version
version 0.9.5: documentation
version 0.9.6: better date algorithm
version 1.0.0: implemented
  • get_book_url (used by calibre to convert the identifier to a URL...)
  • id_from_url (takes an URL and extracts the identifier details...)
version 1.2.0 implemented
  • get_book_url now works whatever the character case in the URL
  • vol_serie_seq algorithm improved.


The zip
Attached Files
File Type: zip noosfere DB.zip (244.4 KB, 40666 views)

Last edited by lrpirlet; 05-12-2023 at 11:17 AM. Reason: Announce a new version
lrpirlet is offline   Reply With Quote