![]() |
#11341 |
Plugin Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 7,088
Karma: 4604637
Join Date: Dec 2011
Location: Midwest USA
Device: Kobo Clara Colour running KOReader
|
Not that I'm aware of.
I would look at:
|
![]() |
![]() |
![]() |
#11342 | |
Enthusiast
![]() Posts: 27
Karma: 10
Join Date: Jul 2021
Device: none
|
Quote:
![]() |
|
![]() |
![]() |
Advert | |
|
![]() |
#11343 | |
Fulltime reader
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 47
Karma: 9296
Join Date: Mar 2021
Device: Kobo Clara
|
Quote:
include_subject_tags: extratags New Only is checked although I tried it with it unchecked and no difference. Update Metadata on each download is checked as is on the config/general tab. I tried adding extratags_label:WebNovel and even changed it to FanFiction but no joy. Strange how it just stopped working. I might try with a portable version of calibre to see if that works. Thank! |
|
![]() |
![]() |
![]() |
#11344 |
Fulltime reader
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 47
Karma: 9296
Join Date: Mar 2021
Device: Kobo Clara
|
Wow, my old personal.ini was full of stuff I don't remember putting in there. I used a clean new copy, added what I wanted and it works again. I've been using FFF for years, I guess a fresh start was needed.
Thanks! |
![]() |
![]() |
![]() |
#11345 |
Junior Member
![]() Posts: 1
Karma: 10
Join Date: Oct 2025
Device: none
|
![]()
When updating metadata OR downloading fics from URLs, the fandom is populating as "FanFicFare v4.48.0" rather than the listed fandom. All of the fics I'm trying to update metadata on are listed on Ao3.
I have very little coding knowledge so don't have the first clue how to figure out what's causing this behaviour or how to fix it. The only changes I've made to the personal.ai are to add my browser cache path, uncomment is_adult:true, add_chapters:true, add instructions for using the browser cache copied from the browser cache instructions, uncomment always_login:true, and add my login info. Any guidance on how I might be able to get FanFicFare to populate the fandom field with the fandom(s) specified on Ao3 would be greatly appreciated! |
![]() |
![]() |
Advert | |
|
![]() |
#11346 | |
Plugin Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 7,088
Karma: 4604637
Join Date: Dec 2011
Location: Midwest USA
Device: Kobo Clara Colour running KOReader
|
Quote:
I would speculate that either you accidentally copied some in personal.ini with version, or clicked on it in the Custom Columns tab for that column. For historical reasons, FFF uses category as the 'fandom' metadata entry. Go to the FFF config > Custom Columns tab for your fandoms column and select Category. That's the easiest way to get 'fandom' into a custom fandom column. |
|
![]() |
![]() |
![]() |
#11347 | |
Member
![]() Posts: 20
Karma: 10
Join Date: Dec 2024
Device: kobo clara bw
|
Add tag, but only when multi category
Quote:
Code:
add_category_when_multi_category: Crossover Code:
include_in_tags_when_multi_category:Crossover include_in_subject_tags_when_multi_category:Crossover |
|
![]() |
![]() |
![]() |
#11348 | ||
Plugin Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 7,088
Karma: 4604637
Join Date: Dec 2011
Location: Midwest USA
Device: Kobo Clara Colour running KOReader
|
Quote:
These are the only two valid versions: Code:
## Add this to *genre* if there's more than one category. Applied ## *before* genre replace_metadata/include/exclude_metadata #add_genre_when_multi_category: Crossover ## Add this category if there's more than one category(before this is added). ## Applied *after* category replace_metadata/include/exclude_metadata #add_category_when_multi_category: Crossover Quote:
If you've removed both genre and category from include_subject_tags, it's more difficult. I'm not typing that up again if it's not needed. ![]() |
||
![]() |
![]() |
![]() |
#11349 | |
Member
![]() Posts: 20
Karma: 10
Join Date: Dec 2024
Device: kobo clara bw
|
Quote:
Looks like I don't have either genre or category included in include_subject_tags as I have custom columns those get sorted into, and I've actually managed to wrangle the tags into something more cohesive and usable for my Kobo + Collections, so I'd like to keep it that way. Do you have any recommendations of what to do instead as a work around for this? If I have to manually add it, I'm not too fussed. I also had some issues with the add_to_include_subject_tags:,oneshot not working. I've included my personal.ini Spoiler:
|
|
![]() |
![]() |
![]() |
#11350 |
Plugin Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 7,088
Karma: 4604637
Join Date: Dec 2011
Location: Midwest USA
Device: Kobo Clara Colour running KOReader
|
New Test Version Posted
2025-10-07 - OTW(AO3): Accept /chapter/999 URLs without /works/999 for #1258 |
![]() |
![]() |
![]() |
#11351 |
Enthusiast
![]() Posts: 35
Karma: 10
Join Date: Jun 2019
Device: Kobo
|
Metadata collection and calculations
Hello everyone! No specific question here--just curious if anyone looks for the same things data-wise as I do and if so, how they collect it (especially if it's more efficient than how I do it). If you are not as obsessive, feel free to ignore!
I'm mostly concerned with tracking words read over the course of the year to see if I hit my reading goals. I track traditionally published books and fanfic in Calibre, which is handy. Word counts on tradpubs are easy, as it's just a simple count pages, but fanfic can be tricky with word counts changing with every update. First, I have an old-word-count column, which records the total word count the last time I marked a book as read (I use Action Chains for this). A separate column, #year-to-date, then takes this number and subtracts from it a year-start-word-count column, to return the total number of words read on that story that year: Code:
#ytd program: (field ('#word')-field('#remaining')-field('#yearstart'))+(field ('#word')*field ('#reread')) When a story updates, I have a third column, #remaining, which takes the new total word count and subtracts the old-word-count column to return the total number of words left to read in that book. This works well if a book updates more than once before I can read the new chapters, as the old-word-count column is not changed until the whole thing is marked as read. Code:
#remaining program: if 'Yes' inlist field('#toread') then (field('#word')-field('#oldwords')) fi I also like to track the pace at which a story updates, as I have a long TBR and it helps me figure out what to read next. That's a simple calculation in a column built from other columns: Code:
#avpace program: if 'FanFiction' inlist field('tags') then if field('#chapters')==1 then '0' else if field('#chapters') then round(days_between(field('#updated'),field('pubdate'))/field('#chapters')) fi fi fi Code:
#next program: if 'In-Progress' inlist field('#status') then if field('#avpace')<1 then shorten(fractional_part(14-(days_between(today(), field('#updated')))),4,"",0)+(14-(days_between(today(), field('#updated')))-fractional_part(14-(days_between(today(), field('#updated'))))) else shorten(fractional_part(field('#avpace')-(days_between(today(), field('#updated')))),4,"",0)+(field('#avpace')-(days_between(today(), field('#updated')))-fractional_part(field('#avpace')-(days_between(today(), field('#updated'))))) fi fi I use the expected pace of a story to classify the status of the story (Extreme, Hiatus, Lapsed, and Updating) (with Completed and Dead not as a part of this equation, but also as classifications) (Names of the classifications had to be alphabetical as the tag browser automatically alphabetizes, and I wanted them to display in order). Code:
#overdue program: if 'In-Progress' inlist field('#status') then if field('#avpace')<1 then (((days_between(today(), field('#updated'))-(days_between(today(), field('#updated'))/(field('#avpace')+15)))/(field('#avpace')+14))) else (((days_between(today(), field('#updated'))-(days_between(today(), field('#updated'))/(field('#avpace')+1)))/(field('#avpace')))) fi fi Code:
#HLevel program: if 'Yes' inlist field('#toread') then if 'Completed' inlist field('#status') then 'Completed' else if 'Dead' inlist field('#status') then 'Dead' else if 'In-Progress' inlist field('#status') then if field('#avpace')<1 then if (days_between(today(), field('#updated'))-(days_between(today(), field('#updated'))/(field('#avpace')+15)))/(field('#avpace')+14)<2 then "Updating" else if (days_between(today(), field('#updated'))-(days_between(today(), field('#updated'))/(field('#avpace')+15)))/(field('#avpace')+14)<5 then "Lapsed" else if (days_between(today(), field('#updated'))-(days_between(today(), field('#updated'))/(field('#avpace')+15)))/(field('#avpace')+14)<10 then "Hiatus" else "Extreme" fi fi fi else if (days_between(today(), field('#updated'))-(days_between(today(), field('#updated'))/(field('#avpace')+1)))/(field('#avpace'))<2 then "Updating" else if (days_between(today(), field('#updated'))-(days_between(today(), field('#updated'))/(field('#avpace')+1)))/(field('#avpace'))<5 then "Lapsed" else if (days_between(today(), field('#updated'))-(days_between(today(), field('#updated'))/(field('#avpace')+1)))/(field('#avpace'))<10 then "Hiatus" else "Extreme" fi fi fi fi fi fi fi fi Code:
#update program: if 'FanFiction' inlist field('tags') then if 'Update' inlist field('#errors') then 'Anthology Update' else if days_between(today(), field('#lastchecked'))-1>0 then if days_between(today(), field('#lastchecked'))-62>=0 then if 'Anthology' inlist field('tags') then 'Anthology Update' else 'Update' fi else if 'Completed' inlist field('#status') then if days_between(today(), field('#lastchecked'))-7>=0 then if days_between(today(), field('#updated'))-7>=0 then if 29-days_between(today(), field('#updated'))>=0 then if 'Anthology' inlist field('tags') then 'Anthology Update' else 'Update' fi fi fi fi else if 'Yes' inlist field('#approved') then '' else if (days_between(today(), field('#lastchecked')))-((days_between(today(), field('#updated'))/(field('#avpace')+2))+2+field('#avpace'))>=0 then if 'Anthology' inlist field('tags') then 'Anthology Update' else 'Update' fi else if 'Updating' inlist field('#hiatuslevel') then if (days_between(today(),field('#updated'))-(field('#avpace')*((field('#overdue'))-fractional_part(field('#overdue'))))-(fractional_part(days_between(today(),field('#updated'))-(field('#avpace')*((field('#overdue'))-fractional_part(field('#overdue')))))))>0 then if (days_between(today(),field('#updated'))-(field('#avpace')*((field('#overdue'))-fractional_part(field('#overdue'))))-(fractional_part(days_between(today(),field('#updated'))-(field('#avpace')*((field('#overdue'))-fractional_part(field('#overdue')))))))<2 then if 'Anthology' inlist field('tags') then 'Anthology Update' else 'Update' fi fi else if 'Lapsed' inlist field('#hiatuslevel') then if (days_between(today(),field('#updated'))-(field('#avpace')*((field('#overdue'))-fractional_part(field('#overdue'))))-(fractional_part(days_between(today(),field('#updated'))-(field('#avpace')*((field('#overdue'))-fractional_part(field('#overdue')))))))>0 then if (days_between(today(),field('#updated'))-(field('#avpace')*((field('#overdue'))-fractional_part(field('#overdue'))))-(fractional_part(days_between(today(),field('#updated'))-(field('#avpace')*((field('#overdue'))-fractional_part(field('#overdue')))))))<2 then if 'Anthology' inlist field('tags') then 'Anthology Update' else 'Update' fi fi fi fi fi fi fi fi fi fi else if field('#lastchecked') then if days_between(today(), field('date'))-62>=0 then 'Meta' else if days_between(today(), field('date'))-7>=0 then if days_between(today(), field('#updated'))-7>=0 then if 29-days_between(today(), field('#updated'))>=0 then 'Meta' fi fi fi fi fi fi fi fi If a story has also indicated an expected total of chapters, I like to calculate how long until the story is expected to be finished: Code:
#expchap (yes there is a spelling error in this one but it was too entrenched by the time I noticed it) program: if '\?' inlist field('#chaptotal') then '' else field('#exectedchaps') fi Code:
#completiondate program: if 'In-Progress' inlist field('#status') then if field('#expchap')>=1 then if field('#expchap')-field('#chapters')>=1 then if field('#avpace')>0 then if field('#overdue')>=1 then (field('#expchap')-(field('#chapters')+1))*(days_between(today(),field('pubdate'))/(field('#chapters')+1)) else (field('#expchap')-field('#chapters'))*field('#avpace')-(fractional_part(field('#overdue'))*field('#avpace')) fi else ((field('#expchap')-(field('#chapters')+1))*(days_between(today(),field('pubdate'))/(field('#chapters')+1)))-(fractional_part(field('#overdue'))*(days_between(today(),field('pubdate'))/(field('#chapters')+1))) fi fi fi fi I also occasionally go onto the AO3 page for my fandoms and sort by kudos, then do a little math to calculate the top 1% and 10% of stories in the fandom (not to influence what I read, but just out of curiosity) and then do a column like this: Code:
#Rank program: if and('XXXXXX' inlist field('#fandom'),field('#kudos') >=780) then '1%' else if and('XXXXXX' inlist field('#fandom'),field('#kudos') >=648) then '10%' else Also, working on the Subscribed column--I only have it partially set up and can't remember why I stopped! Ideally, it would be nice to mark if I left kudos/comments (even if only on a single chapter, as I imagine it would be confusing to see what chapters I left a comment on and which ones I missed). Is any of this necessary? No. Did I know what I was doing when I set it up? Not really. I just like the challenge. But as I said, if you are collecting or calculating things I am not, or are doing something similar in a better way, I'd love to know! |
![]() |
![]() |
![]() |
#11352 |
Junior Member
![]() Posts: 2
Karma: 10
Join Date: Jul 2025
Device: Kobo Libra Colour
|
Hello! Very sorry if this has been posted before. But for the life of me I can't seem to find it anywhere. I'm using a Kobo Libra. Is there a way to *only* send a new chapter of a fic to the device? I keep having to remove the book from the device then sending it back with the new chapter. But it removes all the bookmarks and annotations! Thanks so much in advance!
|
![]() |
![]() |
![]() |
#11353 | |
Enthusiast
![]() Posts: 35
Karma: 10
Join Date: Jun 2019
Device: Kobo
|
Quote:
Make sure "Do not treat replacements as new books" is checked. After syncing the files with the new chapters, you may also need to select those books and select Update ToC from the Kobo Utilities menu in order to see the new chapters on your Kobo. |
|
![]() |
![]() |
![]() |
#11354 |
Plugin Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 7,088
Karma: 4604637
Join Date: Dec 2011
Location: Midwest USA
Device: Kobo Clara Colour running KOReader
|
Kobo's software is not designed to have books change.
Updating books in Kobo is a several step process and needs the Kobo Utilities plugin to update ToC as a separate step from sending updated books to the device. For some metadata updates, the standard procedure is to connect, send, disconnect (for Kobo to import), then reconnect again to update those metadata. They have much expertise in Kobo issues in that thread. (I found it so cumbersome that I switched to using KOReader on Kobo instead and wrote my own glue code in both KOReader and Calibre. I've documented what I did here, but I'm not at this point supporting it for other users.) |
![]() |
![]() |
![]() |
#11355 | |
Custom User Title
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,266
Karma: 77935877
Join Date: Oct 2018
Location: Canada
Device: Kobo Libra H2O, formerly Aura HD
|
Quote:
|
|
![]() |
![]() |
![]() |
Tags |
fanfiction |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
[GUI Plugin] KindleUnpack - The Plugin | DiapDealer | Plugins | 527 | 08-15-2025 01:36 PM |
[GUI Plugin] Open With | kiwidude | Plugins | 404 | 02-21-2025 05:42 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 |