View Single Post
Old 10-14-2022, 09:09 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
Question method identify() is inconsistent in providing authors

I am developing a "new" babelio_db plugin. This is a french site with all books in french...

I am developing in the English language to get the messages ( so I can find the sources), and switching to the french language from time to time to check how it goes.

calibre interface is in English.
When I create an empty book with no authors, it get translated and stored as "unknown"...
I then run the plugin, identify() passes authors as None

calibre interface is in French.
When I create an empty book with no authors, it get translated and stored as "Inconnu(e)"...
When running the plugin, identify() passes authors as None

so far so good..

Now, I have a book created under calibre in English. I switch to the french interface, the identify() passes the authors as ['Unknown'].
That makes a very different result compared to authors = None

Same situation in reverse for a french created book under the English interface, except that identify() now returns ['Inconnu(e)'].
I have worked around this last situation by forcing authors = ['Inconnu(e)'] to be None, or by wiping out the authors field before starting the metadata download...
But I am not sure that this would be the right approach...

I am not that fluent with python, but I am learning (when I have time)... I can try to correct that behavior... but I could not find in the calibre sources where the translation from 'unknown', or equivalent in other language, to None is implemented...

Thanks in advance for any help
lrpirlet is offline   Reply With Quote