Register Guidelines E-Books Search Today's Posts Mark Forums Read

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

Notices

Reply
 
Thread Tools Search this Thread
Old 04-09-2026, 08:28 PM   #11836
JimmXinu
Plugin Developer
JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.
 
JimmXinu's Avatar
 
Posts: 7,419
Karma: 5007213
Join Date: Dec 2011
Location: Midwest USA
Device: Kobo Clara Colour running KOReader
Quote:
Originally Posted by ernand View Post
Hey! I am having problems replacing metadata in my personal.ini file.
I have a title containing () in the text, and I am unsure how to convert that.
All my other replacements work fine, but they do not have those symbols in the text.

Here is what I am trying to replace:
category=>^Overlord (MADHOUSE Anime).*$=>Overlord - Maruyama Kugane
replace_metadata uses regular expressions which use () as grouping characters. To use them for actual () chars, you need to escape them with \.

Here's an example from my own personal.ini:
Code:
add_to_replace_metadata:
 title=>Collision Course \(prev: SotL: Secretly Awesome\)=>Collision Course
If you want to learn more about regular expressions, this is a decent quick start guide and regex101.com is a useful tool for experimenting with different patterns to match different strings. FFF uses Python flavor regex.
JimmXinu is offline   Reply With Quote
Old 04-10-2026, 06:41 AM   #11837
ownedbycats
Custom User Title
ownedbycats ought to be getting tired of karma fortunes by now.ownedbycats ought to be getting tired of karma fortunes by now.ownedbycats ought to be getting tired of karma fortunes by now.ownedbycats ought to be getting tired of karma fortunes by now.ownedbycats ought to be getting tired of karma fortunes by now.ownedbycats ought to be getting tired of karma fortunes by now.ownedbycats ought to be getting tired of karma fortunes by now.ownedbycats ought to be getting tired of karma fortunes by now.ownedbycats ought to be getting tired of karma fortunes by now.ownedbycats ought to be getting tired of karma fortunes by now.ownedbycats ought to be getting tired of karma fortunes by now.
 
ownedbycats's Avatar
 
Posts: 11,790
Karma: 83105959
Join Date: Oct 2018
Location: Canada
Device: Kobo Libra H2O, formerly Aura HD
place a \ before every special character to escape it
ownedbycats is offline   Reply With Quote
Old 04-11-2026, 03:29 PM   #11838
JimmXinu
Plugin Developer
JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.
 
JimmXinu's Avatar
 
Posts: 7,419
Karma: 5007213
Join Date: Dec 2011
Location: Midwest USA
Device: Kobo Clara Colour running KOReader
New Test Version Posted

2026-04-11
- Performance and perf profiling changes

'Unnew' and updates of stories with larger chapter counts should be faster.
JimmXinu is offline   Reply With Quote
Old 04-16-2026, 02:38 AM   #11839
eb21145
Junior Member
eb21145 began at the beginning.
 
Posts: 9
Karma: 10
Join Date: Apr 2026
Device: Kindle
Hi! I'm trying to set up to separate relationship columns, one for romantic relationships and one for platonic relationships. Unfortunately, my complete ignorance of python (and really any type of coding language) is coming back to bite me in the behind as I can't seem to figure out what I need to add to my personal.ini to make my romships column populate only with the X/Y data and the platonicships column populate with everything else, including the "Minor or Background Relationship(s)" tag. So far my efforts have resulted in either all the ships in both columns, none of the ships in both columns, or only the X/Y ships in both columns. I'd really appreciate some help in figuring out what and where things need to go.

Thanks!
eb21145 is offline   Reply With Quote
Old 04-16-2026, 09:15 AM   #11840
JimmXinu
Plugin Developer
JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.
 
JimmXinu's Avatar
 
Posts: 7,419
Karma: 5007213
Join Date: Dec 2011
Location: Midwest USA
Device: Kobo Clara Colour running KOReader
Quote:
Originally Posted by eb21145 View Post
Hi! I'm trying to set up to separate relationship columns, one for romantic relationships and one for platonic relationships.
...
Here's one way:
Code:
[defaults]
# create a couple new entries.
# note the leading ',' it's necessary.
add_to_extra_valid_entries:,romships,platships

# copy regular ships into them.  
# All replace_meetadata/etc for ships will already be done.
include_in_romships:ships
include_in_platships:ships

# keep only those containing / in romships
include_metadata_pre:
 romships=~/

# remove any containing / from platships
exclude_metadata_pre:
 platships=~/

# put them in your columns.
# Use your custom column identifiers instead of #romships / #platships.
add_to_custom_columns_settings:
 romships=>#romships
 platships=>#platships
A couple useful wiki page references:
JimmXinu is offline   Reply With Quote
Old 04-16-2026, 11:47 PM   #11841
eb21145
Junior Member
eb21145 began at the beginning.
 
Posts: 9
Karma: 10
Join Date: Apr 2026
Device: Kindle
Quote:
Originally Posted by JimmXinu View Post
Here's one way:
Hmm. This doesn't seem to be working. For a little while it wasn't taking out the X/Y ships from the platship column, although I believe I fixed that by moving everything out of [defaults] and into [archiveofourown.com], which isn't a problem since I only use AO3. Now I'm running into an issue where if there isn't an X/Y ship, the romship will populate itself with the & ship rather than leave the column blank. Trying to fix it by adding romships=~& to exclude_metadata_pre resulted in the romship column not populating anything.

Thoughts on what I might be doing wrong?
eb21145 is offline   Reply With Quote
Old 04-17-2026, 10:58 AM   #11842
JimmXinu
Plugin Developer
JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.
 
JimmXinu's Avatar
 
Posts: 7,419
Karma: 5007213
Join Date: Dec 2011
Location: Midwest USA
Device: Kobo Clara Colour running KOReader
[defaults] vs [archiveofourown.com] should only matter if you already had `add_to_X` lines in the section and didn't integrate the new ones.

I'm not seeing any issue with only plat or only rom with my code.

Can you provide story URL(s) and the 'safe' copy of your personal.ini?
JimmXinu is offline   Reply With Quote
Old 04-17-2026, 11:23 AM   #11843
JimmXinu
Plugin Developer
JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.
 
JimmXinu's Avatar
 
Posts: 7,419
Karma: 5007213
Join Date: Dec 2011
Location: Midwest USA
Device: Kobo Clara Colour running KOReader
New Test Version Posted

2026-04-17
- PI Anthologies: Only put status in tags if in include_subject_tags. Closes #1332
JimmXinu is offline   Reply With Quote
Old 04-17-2026, 01:41 PM   #11844
eb21145
Junior Member
eb21145 began at the beginning.
 
Posts: 9
Karma: 10
Join Date: Apr 2026
Device: Kindle
Here's the story link that I've been testing the code on.

Code:
Code:
[defaults]

## Some sites also require the user to confirm they are adult for
## adult content.  Uncomment by removing '#' in front of is_adult.
is_adult:true

##This is what metadata is put into the main tags category in Calibre on download or update, 
##if FFF is configured to update tags every time. Will add missing tags if updating an existing 
##story but will not overwrite/remove other tags on update if "Keep Existing Tags when Updating Metadata?"
##is checked on the Basic tab of the Customize FanFicFare menu.
#include_subject_tags: status, extratags

##Sorts ships alphabetically, ie Quinlan Vos/Obi-Wan Kenobi will become Obi-Wan Kenobi/Quinlan Vos
sort_ships:true

##The keep_in_order operator means that when the title page is generated, the chosen metadata categories
##will show up on the title page in the order they're listed on the original website instead of alphabetized
keep_in_order_ships:true
keep_in_order_characters:true

##Labels are what this metadata type shows up as on the title page if generated
publisher_label:Source Website

## keeps embedded style (helps with things like making right/left align text conversations look correct on downloaded ebook)
add_to_keep_html_attrs:,style,align

   
[archiveofourown.org]
## This is a OTW-archive site.
## Some sites require login (or login for some rated stories) The
## program can prompt you, or you can save it in config.  In
## commandline version, this should go in your personal.ini, not
## defaults.ini.
username:XXXXXXXX
password:XXXXXXXX

## In order to get bookmarktags and bookmarksummary, you need to login
## all the time.  This defaults to off to save time and network
## traffic.  Requires valid AO3 username and password when true.
always_login:true

## Some sites also require the user to confirm they are adult for
## adult content.  In commandline version, this should go in your
## personal.ini, not defaults.ini.
is_adult:true

## AO3 offers a page to download the entire work at once.  This can
## save a lot of network traffic if there are many chapters.
## True by built-in default.
#use_view_full_work:true

## Some works on AO3 ship with an author-defined CSS sheet.
## By default, do not include it.
#use_workskin:false


## Some adapters collect additional meta information beyond the
## standard ones.  They need to be defined in extra_valid_entries to
## tell the rest of the FanFicFare system about them.  They can be
## used in include_subject_tags, titlepage_entries,
## extra_titlepage_entries, logpage_entries, extra_logpage_entries,
## and include_in_* config items.  You can also add additional entries
## here to build up composite metadata entries.
## archiveofourown.org, for example, fills genre (a standard
## entry) as the composite offreeformtags, ao3categories in
## include_in_genre.  If there's ever more than 4 series, add
## series04,series04Url etc.
extra_valid_entries:fandoms, freeformtags, freefromtags,
 ao3categories, comments, chapterslashtotal, chapterstotal, kudos,
 hits, bookmarks, collections, collectionsUrl, collectionsHTML,
 byline, bookmarked, bookmarktags,
 bookmarksummary, bookmarkprivate, bookmarkrec, subscribed,
 markedforlater, restricted, series00, series01, series02, series03,
 series00Url, series01Url, series02Url, series03Url, series00HTML,
 series01HTML, series02HTML, series03HTML,romships,platships
fandoms_label:Fandoms
freeformtags_label:Freeform Tags
freefromtags_label:Freeform Tags
ao3categories_label:AO3 Categories
comments_label:Comments
chapterslashtotal_label:Chapters/Total Chapters
chapterstotal_label:Total Chapters
kudos_label:Kudos
hits_label:Hits
collections_label:Collections
collectionsHTML_label:Collections
romships_label:Romantic Ships
platonicships_label:Platonic Ships
## Count of bookmarks on story by all users
bookmarks_label:Bookmarks
## Tags & Summary from *your* bookmark on the story.  Only collected
## if always_login:true
bookmarked_label:I Bookmarked Story
bookmarktags_label:My Bookmark Tags
bookmarksummary_label:My Bookmark Summary
bookmarkprivate_label:My Bookmark Private
bookmarkrec_label:My Bookmark Rec
markedforlater_label:I Marked for Later
subscribed_label:I Subscribed
restricted_label:Restricted to Registered Users
series00HTML_label:Series
series01HTML_label:Additional Series
series02HTML_label:Additional Series
series03HTML_label:Additional Series

## have to keep in order for name and URL to line up.
keep_in_order_collections:true
keep_in_order_collectionsUrl:true

## Assume entryUrl, apply to "<a class='%slink' href='%s'>%s</a>" to
## make entryHTML.
make_linkhtml_entries:series00,series01,series02,series03,collections

## AO3 doesn't have anything it calls 'genre'.  The adapter used to be
## hardcoded to include the site specific metadata freeformtags &
## ao3categories in the standard metadata field genre.  By making it
## configurable, users can change it.
include_in_genre: ao3categories

## AO3 uses the word 'category' differently than most sites.  The
## adapter used to be hardcoded to include the site specific metadata
## fandom in the standard metadata field category.  By making it
## configurable, users can change it.
include_in_category: fandoms
include_subject_tags: fandoms
include_in_freefromtags: freeformtags
include_in_romships:ships
include_in_platships:ships

# keep only those containing / in romships
include_metadata_pre:
 romships=~/

## This section prevents metadata from populating your custom column.
## == means - exact match
## =~ means - includes
## ^ means - starts with
## .* means - selects everything before or after - depends on where you place it
## [Aa] means - use brackets to indicate upper and lowercase. See example below. 

exclude_metadata_pre:
 warnings==Author Chose Not To Use Archive Warnings
 warnings==No Archive Warnings Apply
 warnings==Graphic Depictions Of Violence
 warnings==Creator Chose Not To Use Archive Warnings
 warnings==Additional Warnings In Author's Note
 freeformtags,genre==Other Additional Tags to Be Added
 freeformtags,genre=~^(a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|y|z).* 
 freeformtags,genre=~^.*[Cc]opy to *
 freeformtags,genre=~^[Aa]dditional.*
 freeformtags,genre=~^[Aa]uthor('s|s| ).*
 freeformtags,genre=~^[Aa]lso.*
 freeformtags,genre=~^[Aa]lmost.*
 freeformtags,genre=~^NOTE.*
 freeformtags,genre=~^I'm.*
 freeformtags,genre=~^this.*
 freeformtags,genre=~^[Ww]ordcount.*
 freeformtags,genre=~^[Ww]ill .*
 freeformtags,genre=~^[Ss]ome .*
 freeformtags,genre=~^[Tt]here.*
 freeformtags,genre=~^[Aa]ka .*
 freeformtags,genre=~^[Ii]dk .*
 freeformtags,genre=~^[Aa][Ll][Ll] .*
 freeformtags,genre=~^([Ii]t's|[Ii]t|[Ii]ts|[Ii]|[Ii]s|[Ii]n|[Oo]n|[Oo]f|[Oo]h|[Aa]|[Ww]ell|[Aa]t|[Ss]o) .*
 freeformtags,genre=~^NOTE.*
 freeformtags,genre=~^[Mm]ore .*
 freeformtags,genre=~^[Ll]ike .*
 freeformtags,genre=~^.*[Tt]ags .*
 freeformtags,genre=~^[Bb]ut .*
 freeformtags,genre=~.*[Bb]ecause .*
 freeformtags,genre=~^([Hh]e|[Ss]he|[Tt]hey|[Yy]es|[Nn]o|[Tt]hat) .*
 freeformtags,genre=~^[Nn]othing.*
 freeformtags,genre=~^[Pp]robably.*
 freeformtags,genre=~^[Ii]f.*
 freeformtags,genre=~^\(.*
 freeformtags,genre=~^.*[Nn]eeds a .*
 freeformtags,genre=~.* [Hh]ug.*$
 freeformtags,genre=~^([Nn]o [Bb]eta|[Nn]ot [Bb]eta|[Nn]ot [Ee]dit|[Nn]o [Ee]dit).*
 freeformtags,genre=~^([Aa]ro|[Aa]ce|[Dd]emi).*
 freeformtags,genre=~.*[Jj][Cc].*
 freeformtags,genre=~.*[Oo][Cc]s.*
 freeformtags,genre=~[Pp][Oo][Vv].*
 freeformtags,genre=~^.*([Bb]ig [Bb]ang|[Cc]hallenge|fest|[Ww]humptober).*
 freeformtags,genre=~^.*[Pp]odfic.*
 freeformtags,genre=~^.*[Ff]avorite.*
 freeformtags,genre=~^[Ee]ventual.*
 freeformtags,genre=~.*([Pp]re-[Ss]lash|PRE-SLASH|[Pp]reslash).*
 freeformtags,genre=~^[Ss]leeping [Tt]ogether
 freeformtags,genre=~^[Nn]ot .* [Cc]ompliant.*
 freeformtags,genre=~^[Bb]link and*
 freeformtags,genre=~.*fandom
 freeformtags,genre=~^([Nn]o [Aa]ctual|[Nn]ot [Rr]eally|not|[Nn]ot [Tt]he).*
 freeformtags,genre=~.*[Aa]ctual .*
 freeformtags,genre=~^[Ff]irst [Tt]ime
 freeformtags,genre=~^[Ff]alling in [Ll]ove
 freeformtags,genre=~.*([Dd]ork|[Nn]erd|[Ii]diot).*
 freeformtags,genre=~^[Ff]irst.*
 freeformtags,genre=~.*([Ss]ass|[Ss]nark|[Bb]anter|[Pp]uns).*
 freeformtags,genre=~^[Aa]nd .*
 freeformtags,genre=~^([Ee]van \"Buck\" Buckley|Buck) .*
 freeformtags,genre=~^[Cc][Ww].*
 freeformtags,genre=~^([Tt]op|[Bb]ottom).*
 freeformtags,genre=~^[Mm]entions of.*
 freeformtags,genre=~^[Ff]ic
 freeformtags,genre=~^[Bb]rief.*
 freeformtags,genre=~^[Bb][Aa][Mm][Ff].*
 freeformtags,genre=~^.*[Ll]anguage.*
 freeformtags,genre=~.*[Cc]offee.*
 freeformtags,genre=~.*[Tt]ense.*
 freeformtags,genre=~.* [Ii]s a [Gg]ood .*
 freeformtags,genre=~^[Gg]ood .*
 freeformtags,genre=~^.*[Pp]rompt.*
 freeformtags,genre=~^[Cc]oming [Oo]ut
 freeformtags,genre=~.*[Ee]veryone.*
 freeformtags,genre=~.*[Bb]echdel.*
 freeformtags,genre=~.* [Ff]riendship.*$
 freeformtags,genre=~.*([Ss]exual [Cc]ontent|NSFW).*
 freeformtags,genre=~^([Oo]blivious|[Ww]orried|[Jj]ealous|[Cc]onfused|[Ss]upportive][Aa]wkward|[Mm]inimal|[Ii]nsecure).*
 freeformtags,genre=~.*[Pp]ining.*
 freeformtags,genre=~^[Ss]orta.*
 freeformtags,genre=~.*[Ss]ort of.*
 freeformtags,genre=~.*[Rr]omance.*
 freeformtags,genre=~^[Ss]wearing.*
 freeformtags,genre=~^118 [Ff]irefam.*
 freeformtags,genre=~.*[Ww]arning$
 freeformtags,genre=~^[Ww]arning.*
 freeformtags,genre=~.*([Ee]ddie [Dd]iaz|[Cc]hristopher [Dd]iaz|[Cc]hristopher's|[Bb]obby [Nn]ash|[Aa]thena [Gg]rant|[Tt]ony [Ss]tark).*
 freeformtags,genre=~^([Pp]ost-[Ee]pisode|[Pp]ost [Ee]pisode|[Ee]pisode ).*
 freeformtags,genre=~.*(Post-Season|[Ss]eason [0-9]+|[Ss]eries [0-9]+).*
 freeformtags,genre=~.* is .* ([Pp]arent|[Ff]ather|[Mm]other).*$
 freeformtags,genre=~.*[Ff]eels.*
 freeformtags,genre=~^OTP.*
 freeformtags,genre=~^([Hh]alloween|[Cc]hristmas).*
 freeformtags,genre=~^([Nn]icky|[Nn]ile|[Jj]oe|[Bb]ooker|[Aa]ndy).*
 freeformtags,genre=~^[Ss]poiler(\:| ).*
 ships=~.*([Ii]ncluding|[Mm]entioned|[Bb]rief|[Ii]mplied|[Ee]ventual|[Pp]re).*
 ships=~^(and|its|a lot|many|some|[Ee]veryone) .*
 ships=~.*Therapy
 ships=~.*Eddie Diaz's Parents$
 characters=~.*([Cc]ameo|[Bb]riefly|if you squint|[Mm]ention|[Mm]ention of|[Mm]entioned).*
 characters==Batman
 characters==Superman
 characters==Nightwing
 characters==Red Hood
 characters==.*Robin
 platships=~/

replace_metadata:
 chapterstotal=>^([0-9])+/(.+)$=>\2
 freeformtags,genre=>(5\+1|5 Things|Five Times|5 Times).*=>5+1 Fic
 freeformtags,genre=>(?i).*crew as family.*=>Team as Family
 freeformtags,genre=>(AU|Au|Alternative Universe|Alternate Universetistic)=>Alternate Universe
 freeformtags,genre=>(?i).* coda=>Episode Tag
 freeformtags,genre=>(?i)not powered=>Alternate Universe - No Powers
 
 fandoms=>.*Cherry Magic.*=>Cherry Magic
 fandoms=>Merlin.*=>Merlin (BBC)
 fandoms=>The Old Guard.*=>The Old Guard
 fandoms=>One Piece.*=>One Piece
 fandoms=>Captain America.*=>Captain America
 fandoms=>The Incredible Hulk.*=>The Incredible Hulk
 fandoms=>Thor.*=>Thor
 fandoms=>Iron Man.*=>Iron Man
 fandoms=>.*Avengers.*=>The Avengers
 fandoms=>Marvel Agents of S.H.I.E.L.D=>Agents of S.H.I.E.L.D.
 fandoms=>.*(Captain America|The Incredible Hulk|Thor|Iron Man|The Avengers|Agents of S.H.I.E.L.D.|Marvel).*=>Marvel Cinematic Universe
 fandoms=>.*(The Untamed| Módào Zǔshī).*=>Modao Zushi - Mòxiāng Tóngxiù
 fandoms=> (- Fandom|\(Movies\)|\(Movie [0-9]+\)|\(Comics\)|\(TV\))$=>
 
 characters=>Natasha Romonoff.*=>Natasha Romanov (Marvel)
 characters=>Sam Wilson.*=>Sam Wilson (Marvel)
 characters=>(Eddie Diaz \(9-1-1 TV\)|Eddie Diaz \(9-1-1\))=>Eddie Diaz
 characters=>(Christopher Diaz \(9-1-1 TV\)|Christopher Diaz \(9-1-1\))=>Christopher Diaz
 characters=> - Character=>
 characters=>(?i)(firefam 118|118 firefam)=>Firehouse 118 Crew
 characters=>/(9-1-1/)=>(9-1-1 TV)
 characters=>.*Buckley's Parents=>The Buckley Parents
 characters=>(?i).*(minor|background|cameo) .*=>Background or Cameo Character(s)
 characters=>(?i)OC(s| )=>Original Character(s)
 characters=>(?i)OFC(s| )=>Original Female Character(s)
 characters=>(?i)OMC(s| )=>Original Male Character(s)
 
 ships=>.*Buckley's Parents=>The Buckley Parents
 ships=> - Relationship=>
 ships=>.*(\(background\)|Background |\(minor\)|Minor ).*=>Minor or Background Relationship(s) 

 ships_CHARS,characters=>.*Eddie Diaz \(9-1-1 TV\).*=>Eddie Diaz
 ships_CHARS,characters=>.*Christopher Diaz \(9-1-1 TV\).*=>Christopher Diaz
 ships_CHARS,characters=>^OC(s|)$=>Original Character
 ships_CHARS,characters=>^OFC(s|)$=>Original Female Character
 ships_CHARS,characters=>^OMC(s|)$=>Original Male Character
 ships_CHARS,characters=>^Original (.*)Character(\(s\)|s|)$=>Original \1Character

## AO3 is blocking people more aggressively.  If you download fewer
## stories less often you can likely get by with reducing this sleep.
slow_down_sleep_time:4

## AO3 allows users to archive stories they didn't write in certain
## cases.  These are indicated by showing a byline such as:
## 'Orig Author [archived by Archivist Author]'
## If use_archived_author is set true (and there's only one author
## listed), author will be set to 'Orig Author' instead of 'Archivist
## Author'.  authorUrl will still point to the Archivist Author's page.
use_archived_author:true

custom_columns_settings:
 fandoms=>#fandom
 characters=>#characters
 freeformtags=>#ao3tags
 romships=>#romships
 platships=>#platships
eb21145 is offline   Reply With Quote
Old 04-17-2026, 04:17 PM   #11845
MPTSakurada
Junior Member
MPTSakurada began at the beginning.
 
Posts: 3
Karma: 10
Join Date: Dec 2025
Device: Boox Page
Kakuyomu Site Changes

Hi, Kakuyomu appears to have changed their pages in some way as downloads are now failing. The error I'm getting is

Code:
FFF: INFO: 2026-04-17 21:00:58,638: calibre_plugins.fanficfare_plugin.jobs(382): Exception: {'title': '週に一度クラスメイトを買う話 (Web版)', 'author_sort': '羽田宇佐', 'author': ['羽田宇佐'], 'comments': '', 'good': False, 'status': 'Error', 'showerror': True, 'calibre_id': 1551, 'begin': None, 'end': None, 'comment': "'tableOfContents'", 'url': 'https://kakuyomu.jp/works/1177354054894027232', 'site': 'kakuyomu.jp', 'series': '', 'added': False, 'pubdate': None, 'publisher': 'kakuyomu.jp', 'listorder': 0, 'collision': 'Update EPUB if New Chapters', 'uniqueurl': 'https://kakuyomu.jp/works/1177354054894027232[None-None]', 'is_adult': False, 'username': 'NoneGiven', 'password': '', 'totp': None, 'icon': 'dialog_error.png', 'epub_for_update': '/tmp/calibre-1x7qtvxn/fanficfare__m_yc6uk/old-1551-6mp_4qqf.epub', 'calibre_series': ('週に一度クラスメイトを買う話 (Web版)', 1.0), 'calibre_columns': {}, 'outfile': '/tmp/calibre-1x7qtvxn/fanficfare__m_yc6uk/bgmeta-qto7_ylq.epub'}:'tableOfContents'
Traceback (most recent call last):
  File "calibre_plugins.fanficfare_plugin.jobs", line 187, in do_download_for_worker
    story = adapter.getStoryMetadataOnly()
  File "/config/.config/calibre/plugins/FanFicFare.zip/fanficfare/adapters/base_adapter.py", line 376, in getStoryMetadataOnly
    self.doExtractChapterUrlsAndMetadata(get_cover=get_cover)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/config/.config/calibre/plugins/FanFicFare.zip/fanficfare/adapters/base_adapter.py", line 486, in doExtractChapterUrlsAndMetadata
    return self.extractChapterUrlsAndMetadata()
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/config/.config/calibre/plugins/FanFicFare.zip/fanficfare/adapters/adapter_kakuyomujp.py", line 166, in extractChapterUrlsAndMetadata
    for tocNodeRef in info[workKey]['tableOfContents']:
                      ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
KeyError: 'tableOfContents'
Could it be updated when you get time, please? I'm not sure if it will be helpful, but I also tried the WebToEpub addon in chromium and got a similar error:

Code:
TypeError: work.tableOfContents is not iterable
    at KakuyomuParser.buildToc (chrome-extension://akiljllkbielkidmammnifcnibaigelm/js/parsers/KakuyomuParser.js:20:31)
    at KakuyomuParser.getChapterUrls (chrome-extension://akiljllkbielkidmammnifcnibaigelm/js/parsers/KakuyomuParser.js:12:21)
    at KakuyomuParser.onLoadFirstPage (chrome-extension://akiljllkbielkidmammnifcnibaigelm/js/Parser.js:459:39)
    at processInitialHtml (chrome-extension://akiljllkbielkidmammnifcnibaigelm/js/main.js:57:30)
    at async populateControlsWithDom (chrome-extension://akiljllkbielkidmammnifcnibaigelm/js/main.js:278:9)
Thanks!
MPTSakurada is offline   Reply With Quote
Old 04-17-2026, 04:31 PM   #11846
JimmXinu
Plugin Developer
JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.
 
JimmXinu's Avatar
 
Posts: 7,419
Karma: 5007213
Join Date: Dec 2011
Location: Midwest USA
Device: Kobo Clara Colour running KOReader
Quote:
Originally Posted by eb21145 View Post
Here's the story link that I've been testing the code on.

Code:
...
That story contains a single '&' ship and it correctly ends up in platships with your ini.

I found other stories with only '/' ships and with both and saw the results I expected while using your ini code.

I'm not seeing any issues.
JimmXinu is offline   Reply With Quote
Old 04-17-2026, 04:40 PM   #11847
JimmXinu
Plugin Developer
JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.
 
JimmXinu's Avatar
 
Posts: 7,419
Karma: 5007213
Join Date: Dec 2011
Location: Midwest USA
Device: Kobo Clara Colour running KOReader
Quote:
Originally Posted by MPTSakurada View Post
Hi, Kakuyomu appears to have changed their pages in some way as downloads are now failing. The error I'm getting is...
Thanks!
I've opened an issue to the attention of the dev who added that site to FFF.
JimmXinu is offline   Reply With Quote
Old 04-17-2026, 05:30 PM   #11848
seatail
Junior Member
seatail began at the beginning.
 
Posts: 1
Karma: 10
Join Date: Apr 2026
Device: none
Hello! Is there any way to make a custom calibre column that contains inspiredlinks (or authorheadnotes)? I've tried setting up the column the same way as the characters and relationships columns, but with no luck. I also tried to use the template editor, but it doesn't seem to recognize #inspiredlinks or #authorheadnotes. Is there something I'm missing or is this not a feasible idea?
seatail is offline   Reply With Quote
Old 04-17-2026, 10:56 PM   #11849
JimmXinu
Plugin Developer
JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.JimmXinu ought to be getting tired of karma fortunes by now.
 
JimmXinu's Avatar
 
Posts: 7,419
Karma: 5007213
Join Date: Dec 2011
Location: Midwest USA
Device: Kobo Clara Colour running KOReader
Author head notes and inspired links are collected as part of story chapters, not story metadata. So they can't been set to custom columns. And only for OTW sites such as AO3.

The only option available is to *not* include them. From defaults.ini:
Code:
## AO3 chapters can include several different types of notes.  We've
## traditionally included them all in the chapter text, but this allows
## you to customize which you include.  Copy this parameter to your
## personal.ini and list the ones you don't want.
#exclude_notes:authorheadnotes,chaptersummary,chapterheadnotes,chapterfootnotes,authorfootnotes,inspiredlinks

## AO3 authorfootnotes and inspiredlinks end up in the 'last' chapter,
## but if updated, then there's a new 'last' chapter, leaving multiple
## copies.  This option applies the 'skip_on_ffdl_update' class to
## those tags which means they will be removed during epub reading for
## update.  This will only effect chapters added after turning the
## setting on.
## Result: Only the last chapter will have end notes.
## Side-effect: An 'Update Always' that doesn't add a new last
## chapter will also remove the end notes.
#remove_authorfootnotes_on_update:false
JimmXinu is offline   Reply With Quote
Old 04-17-2026, 11:39 PM   #11850
eb21145
Junior Member
eb21145 began at the beginning.
 
Posts: 9
Karma: 10
Join Date: Apr 2026
Device: Kindle
Quote:
Originally Posted by JimmXinu View Post
That story contains a single '&' ship and it correctly ends up in platships with your ini.

I found other stories with only '/' ships and with both and saw the results I expected while using your ini code.

I'm not seeing any issues.
The problem I'm having is that the single '&' ship is being included in both the romships and platships columns rather than only showing up in the platships column. If there's both '/' and '&' ships or just '/' ships, then everything works as it should. It's just if there's only '&' ships that things go wonky.

I've attached a screenshot to illustrate what I'm talking about.
Attached Thumbnails
Click image for larger version

Name:	Screenshot 2026-04-17 at 5.34.37 PM.png
Views:	37
Size:	230.4 KB
ID:	222642  
eb21145 is offline   Reply With Quote
Reply

Tags
fanfiction

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
[GUI Plugin] KindleUnpack - The Plugin DiapDealer Plugins 544 05-13-2026 05:41 PM
[GUI Plugin] Open With kiwidude Plugins 405 02-09-2026 07:54 AM
[GUI Plugin] Marvin XD Philantrop Plugins 126 01-29-2017 12:48 PM
[GUI Plugin] KiNotes -axel- Plugins 0 07-14-2013 06:39 PM
[GUI Plugin] Plugin Updater **Deprecated** kiwidude Plugins 159 06-19-2011 12:27 PM


All times are GMT -4. The time now is 06:02 PM.


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