Register Guidelines E-Books Today's Posts Search

Go Back   MobileRead Forums > E-Book Software > Calibre > Plugins

Notices

Reply
 
Thread Tools Search this Thread
Old 02-21-2025, 05:42 AM   #16
Maitresinh
Junior Member
Maitresinh began at the beginning.
 
Posts: 3
Karma: 10
Join Date: Feb 2025
Device: epub
Also : would it be possible to capture the author names from tje comments (tags) instead of the book itself ?
Maitresinh is offline   Reply With Quote
Old 02-21-2025, 06:18 AM   #17
Quoth
Still reading
Quoth ought to be getting tired of karma fortunes by now.Quoth ought to be getting tired of karma fortunes by now.Quoth ought to be getting tired of karma fortunes by now.Quoth ought to be getting tired of karma fortunes by now.Quoth ought to be getting tired of karma fortunes by now.Quoth ought to be getting tired of karma fortunes by now.Quoth ought to be getting tired of karma fortunes by now.Quoth ought to be getting tired of karma fortunes by now.Quoth ought to be getting tired of karma fortunes by now.Quoth ought to be getting tired of karma fortunes by now.Quoth ought to be getting tired of karma fortunes by now.
 
Quoth's Avatar
 
Posts: 15,685
Karma: 114630515
Join Date: Jun 2017
Location: Ireland
Device: All 4 Kinds: epub eink, Kindle, android eink, NxtPaper
Comments and Tags are two different things. Why would Tags have an author name? I've never seen that. I've seen character names in Tags and Comments.
I'm not sure I've ever seen an author name in a Comment (becomes Description on Kobo ereader), but it might if the Author Name field is a pen-name.
Quoth is offline   Reply With Quote
Old 02-21-2025, 08:59 AM   #18
Maitresinh
Junior Member
Maitresinh began at the beginning.
 
Posts: 3
Karma: 10
Join Date: Feb 2025
Device: epub
I'm scraping the metadata from SFdatabase or noosfere, and, especially for anthologies, all the informations about authors grabbed in comment (the author filed is "anthology"

For exemple see below a comment exemple

so i'm trying to take these authors from the coments (or the book itself) and put them into the "author" field.

As long as i can get the authors metadata in the right field...

-----------------------------
Référence: https://www.noosfere.org/livres/niou...vre=1373246585
Couverture: https://images.noosfere.org/couv/j/jl2780-1990.jpg

Textes réunis par Pierre K. REY
Première parution : Paris, France, J'AI LU, mars 1990
Cycle : Univers (anthologie périodique) <<== vol. 30
Illustration de Ron KIRBY
J'AI LU (Paris, France), coll. Science-Fiction (1985 - 1993, 2ème série - dos violet) n° 2780 ==>>


Quatrième de couverture

Au commencement d' Univers 1990 était l'humour : Eileen Gunn, révélation américaine, donne le ton auquel répondent les délires électronique et catastrophiste de Roger Zelazny et J.G. Ballard, deux grandes figures de la S-F d'outre-Atlantique et d'outre-Manche (sans oublier Michael Moorcock dont nous saluons le retour).
Complètent la partie anglo-saxonne : George A. Effinger, Carter SchoIz, John Shirley, Gardner Dozois, déjà connus de nos lecteurs, la trop rare Carol Emshwiller, Scott Bradfield, publié pour la première fois en France, le mystérieux (?) James Lawson, ainsi qu'un entretien avec K.W. Jeter dont plusieurs romans sont parus aux éditions J'ai lu.
Pour la francophonie, Jacques Barbéri, Richard Canal et Jean-Claude Dunyach nous reviennent avec trois textes fort différents ; Roger Bozzetto explore dans son article les liens entre la S-F et certains auteurs de littérature générale comme Calvino ou Burroughs ; Michel Martin, enfin, se révèle comme l'un des plus brillants écrivains de la jeune génération québécoise.
Au total, un excellent panorama !

Sommaire

Afficher les différentes éditions des textes

1 - Pierre K. REY , Éditorial , pages 7 à 8, éditorial
2 - Eileen GUNN , La Stratégie du cadre moyen (Stable Strategies for Middle Management, 1988) , pages 9 à 26, nouvelle, trad. Pierre K. REY
3 - George Alec EFFINGER , Le Chat de Schrödinger (Schrödinger's Kitten, 1988) , pages 27 à 56, nouvelle, trad. Jean-Pierre PUGI
4 - Scott BRADFIELD , Dazzle (Dazzle, 1988) , pages 57 à 76, nouvelle, trad. Pierre K. REY
5 - Michel MARTIN , Geisha blues , pages 77 à 103, nouvelle
6 - Carter SCHOLZ , Voyageurs (Transients, 1988) , pages 105 à 124, nouvelle, trad. Pascal J. THOMAS
7 - Lawrence PERSON & Michael SUMBERA , Entretien avec K.W. Jeter (The Dark Seeker: Lunch with K. W. Jeter, 1988) , pages 125 à 141, entretien avec K. W. JETER , trad. Pierre-Paul DURASTANTI
8 - Jacques BARBÉRI , Les Sentinelles du temps réel , pages 143 à 151, nouvelle
9 - James LAWSON , Sanctuaire (Sanctuary, 1988) , pages 153 à 216, nouvelle, trad. Jean-Daniel BRÈQUE
10 - Roger ZELAZNY , Donner-le-Cryo et la coupe Filstone (Deadboy Donner and the Filstone Cup, 1988) , pages 217 à 232, nouvelle, trad. Pierre-Paul DURASTANTI & Noé GAILLARD
11 - John SHIRLEY , Chaman ! (Shaman, 1988) , pages 233 à 275, nouvelle, trad. Bernard SIGAUD
12 - Gardner DOZOIS , Expiation (Solace, 1989) , pages 277 à 290, nouvelle, trad. Pierre K. REY
13 - Roger BOZZETTO , De l'univers des galaxies aux livres-univers , pages 291 à 302, article
14 - Michael MOORCOCK , Le Cardinal dans la glace (The Frozen Cardinal, 1987) , pages 303 à 317, nouvelle, trad. Jean-Daniel BRÈQUE
15 - Jean-Claude DUNYACH , Dix jours sans voir la mer , pages 319 à 329, nouvelle
16 - Carol EMSHWILLER , La Bibliothèque des pierres (The Circular Library of Stone, 1987) , pages 331 à 343, nouvelle, trad. Pierre-Paul DURASTANTI
17 - Richard CANAL , Mille soleils , pages 345 à 368, nouvelle
18 - James Graham BALLARD , Histoire secrète de la troisième guerre mondiale (The Secret History of World War 3, 1988) , pages 369 à 382, nouvelle, trad. Pierre K. REY


Prix obtenus par des textes au sommaire

La Bibliothèque des pierres : Science Fiction Chronicle nouvelle / Short story, 1988
Le Chat de Schrödinger : Nebula novelette, 1988
Hugo novelette, 1989
Science Fiction Chronicle novelette, 1989
Theodore Sturgeon [sans catégorie], 1989
Geisha blues : Boréal nouvelle / Short story, 1989
Jacques-Brossard (ex Grand Prix de la SF et du fantastique québécois) nouvelle / Short story, 1989
Maitresinh is offline   Reply With Quote
Old 05-27-2025, 08:27 AM   #19
KuMikks
Junior Member
KuMikks began at the beginning.
 
Posts: 2
Karma: 10
Join Date: May 2025
Device: calibre
Is there anyway to limit the results to just the first found? I keep getting a string of results instead of just one/first result.
KuMikks is offline   Reply With Quote
Old 11-04-2025, 07:46 PM   #20
dunhill
Wizard
dunhill ought to be getting tired of karma fortunes by now.dunhill ought to be getting tired of karma fortunes by now.dunhill ought to be getting tired of karma fortunes by now.dunhill ought to be getting tired of karma fortunes by now.dunhill ought to be getting tired of karma fortunes by now.dunhill ought to be getting tired of karma fortunes by now.dunhill ought to be getting tired of karma fortunes by now.dunhill ought to be getting tired of karma fortunes by now.dunhill ought to be getting tired of karma fortunes by now.dunhill ought to be getting tired of karma fortunes by now.dunhill ought to be getting tired of karma fortunes by now.
 
dunhill's Avatar
 
Posts: 1,183
Karma: 1512904
Join Date: Sep 2017
Location: Buenos Aires, Argentina
Device: moon+ reader, kindle paperwhite
The comments on this add-on are a bit old. I'd like to know if you could explain how to use it to get the book versions. Thank you very much, I'll read them.
dunhill is offline   Reply With Quote
Old 07-05-2026, 04:54 AM   #21
Wiggo
Leftutti
Wiggo ought to be getting tired of karma fortunes by now.Wiggo ought to be getting tired of karma fortunes by now.Wiggo ought to be getting tired of karma fortunes by now.Wiggo ought to be getting tired of karma fortunes by now.Wiggo ought to be getting tired of karma fortunes by now.Wiggo ought to be getting tired of karma fortunes by now.Wiggo ought to be getting tired of karma fortunes by now.Wiggo ought to be getting tired of karma fortunes by now.Wiggo ought to be getting tired of karma fortunes by now.Wiggo ought to be getting tired of karma fortunes by now.Wiggo ought to be getting tired of karma fortunes by now.
 
Wiggo's Avatar
 
Posts: 656
Karma: 3671119
Join Date: Feb 2019
Location: Bavaria
Device: iPad Pro, Kobo Libra 2
If anyone wants to add the original titles to their existing German collection afterwards, I've put together four groups here. It was a long battle with Claude AI, but I think we managed to catch about 95% of them.
  • Group A — Standard cases. Triggers like Titel der Originalausgabe:, Titel der amerikanischen Originalfassung:, erschien unter dem Titel »...«. Uses German quotation marks »...« or „...".
  • Group B — Extended standard cases. Additional triggers like Originaltitel:, © der Originalausgabe, Die [adjective] Originalausgabe [Title] erschien, title on its own line after Originalausgabe. Also handles French/Swiss quotation marks «...».
  • Group C — Complex cases. When there's a long publisher/address text between the trigger and the title (unter dem Titel [long publisher info] Title), or Titel des amerikanischen/englischen Originals:, or Die Originalausgabe trägt den Titel.
  • Group D — Cases with line breaks between trigger and title (e.g. when "unter dem Titel" and the title itself sit in different HTML paragraphs). First replaces all line breaks with spaces before the remaining tweaks run.

Not solvable (exception case, enter manually):
  • Title spread across multiple <p>/<br> tags with no separator
  • Sample chapters at the end of the book that DOTALL incorrectly matches first
  • Text with no space between HTML elements (e.g. OriginaltitelHis...)
  • Non-ASCII brackets/quotation marks in publisher info
  • Title with no trigger word at all

Group A
Spoiler:
Code:
Custom Column:    #original_title

Keywords RE:     (?s)(?:titel\s+der\s+\w*\s*original(?:ausgaben?|fassung|s\b)|(?:original)?ausgabe\b.{0,40}?(?:unter|mit)\s+dem\s+titel|das\s+\w*\s*original\b.{0,40}?unter\s+dem\s+titel|.{0,50}?erschienenen\s+titels?\s*[»„":]?)\s*[»„":]?\s*[^«"]{3,200}?(?=[«"]|\s+bei\s|\s+by\s|\n\n|\n[a-zäöü]|\s+Copyright\s)

RE Flag: IGNORECASE:     True

RE Flag: MULTILINE:    True

RE Flag: DOTALL:     True

Results RE:     

Tweaks:     
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^\n]*?[Oo]riginalausgabe[^A-Za-zÄÖÜäöü0-9]*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '.*Originalfassung\s*[:]?\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '.*Originals\s*[:]?\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^\n]*?[Tt]itel\w*[^A-Za-zÄÖÜäöü0-9]*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^\n]*?[Aa]usgabe[^A-Za-zÄÖÜäöü0-9]*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^\n]*\n[^\n]*\n[^\n]*\n[^\n]*?[Tt]itel[^A-Za-zÄÖÜäöü0-9]*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^A-ZÄÖÜ»„"›«""]+', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '[»„"«""›‹]', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s+(?:bei|im Verlag)\s.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s*im\s+Verlag\s.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s+Deutsche\s+.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^\s+', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '[\u201c\u201d\u2018\u2019»„"«""›‹\u2039\u203a]+$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\n.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\n.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\n.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\n.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\n.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s*©.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '[›‹\u2039\u203a]+$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\.$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^A-ZÄÖÜ»"›«""\u2039\u203a]+', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s+von\s+.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\"\.', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\"', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\u201c', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\u201d', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\*+', '')


Group B
Spoiler:
Code:
Custom Column:    #original_title

Keywords RE:     (?s)(?:titel\s+der\s+\w*\s*originalausgaben?|titel\s+der\s+.{0,60}?erschienenen\s+originalausgabe|titel\s+des\s+originals?\s*[:]?|(?:original)?ausgabe\b.{0,200}?(?:unter\s+dem\s+titel|u\.d\.T\.)|(?:original)?ausgabe\b.{0,80}?bei\s+.{0,60}?unter\s+dem\s+titel|das\s+original\b.{0,40}?unter\s+dem\s+titel|.{0,50}?erschienenen\s+titels?\s*[»„"«:]?|die\s+\w*\s*originalausgabe\s+\S[^,\n©]{2,100}(?=\s+erschien)|die\s+originalausgabe\s+trägt\s+den\s+titel\s+|originalausgabe:\s+\S[^,\n©]{2,100}|originaltitel\s*[:]?|©\s+der\s+[\w-]*\s*originalausgabe\s+|originalausgabe\s*\n\s*|der\s+titel\s+der\s+.{0,60}?erschienenen\s+originalausgabe\s+lautet\s*[:]?\s*)\s*[»„"«:]?\s*[^»"]{3,200}?(?=[»"]|\s+bei\s|\s+by\s|\n[a-zäöü]|©|,\s+Princeton|\nPrinceton|,\s+[a-zäöü]|\s+Deutsche\s|\s+Copyright\s)

RE Flag: IGNORECASE:     True

RE Flag: MULTILINE:    True

RE Flag: DOTALL:     True

Results RE:     

Tweaks:     
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '.*erschienenen\s*[Oo]riginalausgabe\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, 'lautet\s*[:]?\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '.*[Tt]itel\s+der\s+', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\d{4}[^›«»"A-ZÄÖÜ]*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^\n]*?[Oo]riginalausgabe[^A-Za-zÄÖÜäöü0-9]*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^\n]*?u\.d\.T\.?\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^\n]*?[Tt]itel\w*[^A-Za-zÄÖÜäöü0-9]*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^des\s+Originals?\s*[:]?\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^\n]*?[Aa]usgabe[^A-Za-zÄÖÜäöü0-9]*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^\n]*\n[^\n]*\n[^\n]*\n[^\n]*?[Tt]itel[^A-Za-zÄÖÜäöü0-9]*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^A-ZÄÖÜ»„"›«""\u2039\u203a]+', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '[»„"«""›‹]', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s+(?:bei|im Verlag)\s.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s*im\s+Verlag\s.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s+Deutsche\s+.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s+erschien.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^\s+', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '[\u201c\u201d\u2018\u2019»„"«""›‹\u2039\u203a]+$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\n.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\n.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\n.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\n.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\n.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s*©.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '[›‹\u2039\u203a]+$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\*+$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^A-ZÄÖÜ»"›«""\u2039\u203a]+', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s+von\s+.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\"', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\u201c', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\u201d', '')


Group C
Spoiler:
Code:
Custom Column:    #original_title

Keywords RE:     (?s)(?:titel\s+der\s+\w*\s*originalausgaben?|titel\s+der\s+.{0,60}?erschienenen\s+originalausgabe|titel\s+des\s+\w+\s+originals?\s*[:]?|titel\s+des\s+originals?\s*[:]?|(?:original)?ausgabe\b.{0,200}?(?:unter\s+dem\s+titel|u\.d\.T\.)|(?:original)?ausgabe\b.{0,80}?bei\s+.{0,60}?unter\s+dem\s+titel|das\s+original\b.{0,40}?unter\s+dem\s+titel|.{0,50}?erschienenen\s+titels?\s*[»„"«:]?|die\s+originalausgabe\s+\S[^,\n©]{2,100}(?=\s+erschien)|originalausgabe:\s+\S[^,\n©]{2,100}|originaltitel\s*[:]?|©\s+der\s+[\w-]*\s*originalausgabe\s+|originalausgabe\s*\n\s*|originalausgabe\s+[»„"«]|der\s+titel\s+der\s+.{0,60}?erschienenen\s+originalausgabe\s+lautet\s*[:]?\s*|die\s+originalausgabe\s+trägt\s+den\s+titel\s+)\s*[»„"«:]?\s*[^»"]{1,200}?(?=[»"]|\s+bei\s|\s+by\s|\n[a-zäöü]|©|,\s+Princeton|\nPrinceton|\s+Deutsche\s|\.\s+[A-ZÄÖÜ])

RE Flag: IGNORECASE:     True

RE Flag: MULTILINE:    True

RE Flag: DOTALL:     True

Results RE:     

Tweaks:     
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '.*unter\s+dem\s+[Tt]itel\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '.*erschienenen\s*[Oo]riginalausgabe\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, 'lautet\s*[:]?\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '.*[Tt]itel\s+der\s+', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '.*[Tt]itel\s+des\s+', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\w+\s+[Oo]riginalausgabe\s*[:]?\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\w+\s+[Oo]riginals?\s*[:]?\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\d{4}[^›«»"A-ZÄÖÜ]*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^\n]*?[Oo]riginalausgabe[^A-Za-zÄÖÜäöü0-9]*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^\n]*?u\.d\.T\.?\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^\n]*?[Tt]itel\w*[^A-Za-zÄÖÜäöü0-9]*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^des\s+Originals?\s*[:]?\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^\n]*?[Aa]usgabe[^A-Za-zÄÖÜäöü0-9]*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^\n]*\n[^\n]*\n[^\n]*\n[^\n]*?[Tt]itel[^A-Za-zÄÖÜäöü0-9]*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^A-ZÄÖÜ»„"›«""\u2039\u203a]+', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '[»„"«""›‹]', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s+(?:bei|im Verlag)\s.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s*im\s+Verlag\s.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s+Deutsche\s+.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s+erschien.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^\s+', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '[\u201c\u201d\u2018\u2019»„"«""›‹\u2039\u203a]+$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\n.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\n.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\n.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\n.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\n.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s*©.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '[›‹\u2039\u203a]+$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\*+$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^A-ZÄÖÜ»"›«""\u2039\u203a]+', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s+von\s+.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\"', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\u201c', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\u201d', '')


Group D
Spoiler:
Code:
Custom Column:    #original_title

Keywords RE:     (?s)(?:titel\s+der\s+\w*\s*originalausgaben?|titel\s+der\s+.{0,60}?erschienenen\s+originalausgabe|titel\s+des\s+\w+\s+originals?\s*[:]?|titel\s+des\s+originals?\s*[:]?|(?:original)?ausgabe\b.{0,200}?(?:unter\s+dem\s+titel|u\.d\.T\.)|(?:original)?ausgabe\b.{0,80}?bei\s+.{0,60}?unter\s+dem\s+titel|das\s+original\b.{0,40}?unter\s+dem\s+titel|.{0,50}?erschienenen\s+titels?\s*[»„"«:]?|die\s+\w*\s*originalausgabe\s+\S[^,\n©]{2,100}(?=\s+erschien)|originalausgabe:\s+\S[^,\n©]{2,100}|originaltitel\s*[:]?|©\s+der\s+[\w-]*\s*originalausgabe\s+|originalausgabe\s*\n\s*|originalausgabe\s+[»„"«]|der\s+titel\s+der\s+.{0,60}?erschienenen\s+originalausgabe\s+lautet\s*[:]?\s*|die\s+originalausgabe\s+trägt\s+den\s+titel\s+|unter\s+dem\s+titel\s*\n?\s*)\s*[»„"«:]?\s*[^»"]{1,200}?(?=[»"]|\s+bei\s|\s+by\s|\n[a-zäöü]|©|,\s+Princeton|\nPrinceton|\s+Deutsche\s)

RE Flag: IGNORECASE:     True

RE Flag: MULTILINE:    True

RE Flag: DOTALL:     True

Results RE:     

Tweaks:     
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\n', ' ')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '.*unter\s+dem\s+[Tt]itel\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '.*erschienenen\s*[Oo]riginalausgabe\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, 'lautet\s*[:]?\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '.*[Tt]itel\s+der\s+', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '.*[Tt]itel\s+des\s+', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\w+\s+[Oo]riginalausgabe\s*[:]?\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\w+\s+[Oo]riginals?\s*[:]?\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\d{4}[^›«»"A-ZÄÖÜ]*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^\n]*?[Oo]riginalausgabe[^A-Za-zÄÖÜäöü0-9]*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^\n]*?u\.d\.T\.?\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^\n]*?[Tt]itel\w*[^A-Za-zÄÖÜäöü0-9]*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^des\s+Originals?\s*[:]?\s*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^\n]*?[Aa]usgabe[^A-Za-zÄÖÜäöü0-9]*', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^A-ZÄÖÜ»„"›«""\u2039\u203a]+', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '[»„"«""›‹]', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s+(?:bei|im Verlag)\s.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s*im\s+Verlag\s.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s+Deutsche\s+.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s+erschien.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^\s+', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '[\u201c\u201d\u2018\u2019»„"«""›‹\u2039\u203a]+$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s*©.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '[›‹\u2039\u203a]+$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\*+$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '^[^A-ZÄÖÜ»"›«""\u2039\u203a]+', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\s+von\s+.*$', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\"', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\u201c', '')
CALIBRE_TEMPLATE_LANGUAGE_BUILTIN=re(val, '\u201d', '')
Attached Files
File Type: txt A Custom Column #original_title.txt (2.4 KB, 16 views)
File Type: txt B Custom Column #original_title.txt (3.2 KB, 15 views)
File Type: txt C Custom Column #original_title.txt (3.5 KB, 12 views)
File Type: txt D Custom Column #original_title.txt (3.2 KB, 15 views)
Wiggo is offline   Reply With Quote
Old 09-09-2026, 07:36 AM   #22
DVdm
Enthusiast
DVdm knows what's going on.DVdm knows what's going on.DVdm knows what's going on.DVdm knows what's going on.DVdm knows what's going on.DVdm knows what's going on.DVdm knows what's going on.DVdm knows what's going on.DVdm knows what's going on.DVdm knows what's going on.DVdm knows what's going on.
 
Posts: 32
Karma: 25920
Join Date: Oct 2020
Device: Kobo Aura H2O (mark 5)
Simple way to get original title with EPOM plugin tweak

FWIW, I get most of the 'original titles' and 'oorspronkelijke titels' in my libraries (containing only English and Dutch titles, many of which being translations) into a custom column #origtitle with this simple regex:
Code:
(?<=(((oorspronkelijke|originele)\s+titel|original\s+title))[: ])(.*?)$
Clearly this can be easily adapted to accomodate for more. Exported as:
Spoiler:
Code:
Custom Column:    #origtitle

Keywords RE:     (?<=(((oorspronkelijke|originele)\s+titel|original\s+title))[: ])(.*?)$

RE Flag: IGNORECASE:     True

RE Flag: MULTILINE:    True

RE Flag: DOTALL:     True

Results RE:     

Tweaks:     

REMOVE_STARTSWITH='*'
REMOVE_ENDSWITH='*'


BUT BEWARE... this only works with the following little tweak to the plugin:
In both the plugin source files epom_main_job.py and extract_people_other_metadata_dialog.py, replace
import re, sre_constants
with:
import regex as re, sre_constants

This way variable length lookbehind regex is possible. It might be slightly slower, but it is much more powerful. The loss in speed does not really matter, as we cannot process more than one record at a time anyway.

(I did the same tweak to the Quality Check plugin, which has a similar regex restriction)
DVdm is offline   Reply With Quote
Reply


Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
[GUI Plugin] Extract ISBN kiwidude Plugins 559 Yesterday 10:41 AM
[GUI Plugin] ePub Extended Metadata un_pogaz Plugins 68 06-30-2026 02:49 AM
[GUI Plugin] Zotero Metadata Importer DaltonST Plugins 295 03-22-2025 09:47 AM
[GUI plugin] Extract tables of contents Phssthpok Plugins 3 02-11-2024 07:47 AM
[GUI Plugin] Clean Metadata WS64 Plugins 28 01-06-2022 08:09 PM


All times are GMT -4. The time now is 05:48 AM.


MobileRead.com is a privately owned, operated and funded community.