UpdateModes - JimmXinu/FanFicFare GitHub Wiki
Update Mode aka If Story Already Exists?
A key feature of the FanFicFare Calibre Plugin is that it is integrated into the Calibre e-book management system. By definition, it is assumed that you, the user, have a library of e-books that you are updating and/or adding to when you use the FanFicFare(FFF) Plugin.
FFF Plugin has two primary paths of operation, which are, not coincidentally, the first two options available in the FFF Plugin menu:
- Download from URLs
- Update Existing FanFiction Books
In both paths it is common that you will already have the same story(s) in your library and will be updating them. The Update Mode / If Story Already Exists? setting is how you tell FFF what kind of update you want.
Download from URLs
When you are downloading from URLs, if the story is not already in your library, it is added. Simple.
However, it becomes more complicated if the story is already in your library. That's when the If Story Already Exists? setting becomes important.
There are eight possible settings, but not all of them are always available. They are:
- Skip
- Add New Book
- Update EPUB if New Chapters
- Update EPUB Always
- Overwrite if Newer
- Overwrite Always
- Update Calibre Metadata from Web Site
- Update Calibre Metadata from Saved Metadata Column
Each will be discussed in more detail below.
Update Existing FanFiction Books
When you are updating a book that already exists in your library, the same setting is now called Update Mode and only the options that effect an existing book are available. And again, some of them are only available conditionally:
- Update EPUB if New Chapters
- Update EPUB Always
- Overwrite if Newer
- Overwrite Always
- Update Calibre Metadata from Web Site
- Update Calibre Metadata from Saved Metadata Column
Update Mode / If Story Already Exists? Settings
Each mode is described in more detail below. Remember that this is all about what happens when you already have the story in an ebook in your library. New books are added and none of this applies. The text refers to 'this story' and 'this book', but download sessions routinely contain more than one story.
Skip
If you already have this story in your library, FFF will skip downloading it.
Add New Book
FFF will download this story and add it to your library without regard to whether it already exists in your library.
Update EPUB if New Chapters
For new users, this is the default mode. I expect it to be the most commonly used option.
Only available when downloading to EPUB format. FFF reads your existing EPUB file and counts the number of chapters in it. Then it compares the number of chapters available on the site with the number on hand, and if the site has more, initiates a download that will re-use the existing chapters and only fetch the new chapters from the site.
- If used when you do not have an existing EPUB file (but do have an existing book in the library), mode is effectively changed to Overwrite Always for this one download--it won't affect other stories in the same download session.
- if New Chapters is technically a misnomer; it would more accurately be if More Chapters, but it is very difficult to determine more precisely (few sites timestamp individual chapters) and very rare it makes any practical difference.
- Because it only looks at the number of chapters when comparing, FFF will not recognize if an author has replaced chapters.
Update EPUB Always
Only available when downloading to EPUB format. Initiates a download that will re-use the existing chapters and only fetch any new chapters from the site. This option is frequently used to update the title page within the EPUB.
- If used when you do not have an existing EPUB file, mode is effectively changed to Overwrite Always for this one download--it won't affect other stories in the same download session.
- If the number of chapters on the site is less than in the existing EPUB, if the author deleted chapters for example, FFF will discard those chapters.
Overwrite if Newer
Usable with any output format. FFF compares the timestamp of the ebook file in your library against the 'last update' date for the story on the site and initiates a complete download if the file is older.
- Most sites only report the last updated date. If the timestamp of the ebook file and the site 'last update' date are the same day, FFF assumes that you know more than it does and initiates a new download. Otherwise, if the author updated a second in the same day after you updated with Overwrite if Newer, FFF would refuse to download.
- Note that the timezone used on sites is not generally known; if your timezone and the site's disagree significantly it can have an impact.
- Operations that change the ebook file (Editing or Polishing for example) will change the timestamp of ebook file and therefore the date FFF compares to.
Overwrite Always
Usable with any output format. FFF initiates a complete download of the story and overwrites the existing ebook file.
Update Calibre Metadata from Web Site
FFF fetches the metadata for the story from the web site and updates only Calibre's metadata according to your FFF settings.
- Does not change the ebook file.
- If used with Download from URLs and the story does not already exist, mode is effectively changed to Add New Book for this one download--it won't affect other stories in the same download session.
- Originally added for users who spend a lot of effort normalizing and organizing their metadata with FFF's metadata editing features. In practice, Update Calibre Metadata from Saved Metadata Column is now more commonly used.
Update Calibre Metadata from Saved Metadata Column
Only available when you have created a Calibre custom column (Long Text, Interpreted as Plain Text is recommended) and configured it as the Saved Metadata Column in FFF's config (Custom Columns tab, near the bottom). When so configured, FFF will, on all other download/updates, save the raw metadata collected from the site for each story in that column.
- Does not change the ebook file.
- If used with Download from URLs and the story does not already exist, mode is effectively changed to Add New Book for this one download--it won't affect other stories in the same download session.
- If story does exist, but the Saved Metadata Column is empty, mode is effectively changed to Update Calibre Metadata from Web Site for this one download--it won't affect other stories in the same download session.
Other Questions:
How do I change the Update Mode aka If Story Already Exists? setting?
There is a setting in FFF's configuration on the Basic tab near the top for the default value of the setting.
You can also change it for any individual download session after you have started Download from URLs or Update Existing by clicking Show Download Options at the bottom of the Story URLs or Update Existing List dialog boxes that are open. Several options including Update Mode or If Story Already Exists? can be changed for that one download session. The defaults from FFF config will be pre-selected the next time you open those dialogs.
How does FFF decide if the story already exists in your library?
First, it looks for the story URL in Calibre's Identifiers field in the url
subfield. Unless you have done something to change it, FFF will automatically populate the Identifiers field appropriately and search for it on Download from URLs
Second, there is a setting in FFF's configuration on the Basic tab, under the Misc Options heading box (right side, mid way down) titled Search by Title/Author(s) for If Story Already Exists?. If you have that setting checked on, FFF will also search your current library for existing books with the same title and author(s).
If, while doing Download from URLs with any mode other than Skip or Add New Book, there is more than 1 matching existing book by either story URL or Title/Author(s), FFF refuses to update. You may select the existing story(s) you want to update and use Update Existing FanFiction Books.
What are all the Actions by Update Mode menu items for?
It is sometimes convenient to invoke downloads with a particular Update Mode without doing all the clicking to change the options. By making each one a menu option of its own users may configure separate keyboard shortcuts for the one they use regularly. See Calibre's Preferences Shortcuts or FFF'c config, Other tab, Keyboard Shortcuts button.