diff --git a/calibre-plugin/config.py b/calibre-plugin/config.py index 58c48afe..99f6c55b 100644 --- a/calibre-plugin/config.py +++ b/calibre-plugin/config.py @@ -1257,6 +1257,7 @@ permitted_values = { 'numChapters', 'numWords', 'site', + 'publisher', 'storyId', 'authorId', 'extratags', @@ -1293,6 +1294,7 @@ titleLabels = { 'numChapters':_('Chapters'), 'numWords':_('Words'), 'site':_('Site'), + 'publisher':_('Publisher'), 'storyId':_('Story ID'), 'authorId':_('Author ID'), 'extratags':_('Extra Tags'), diff --git a/calibre-plugin/fff_plugin.py b/calibre-plugin/fff_plugin.py index 0af04858..26eb4155 100644 --- a/calibre-plugin/fff_plugin.py +++ b/calibre-plugin/fff_plugin.py @@ -1214,7 +1214,7 @@ class FanFicFarePlugin(InterfaceAction): book['title'] = story.getMetadata("title", removeallentities=True) book['author_sort'] = book['author'] = story.getList("author", removeallentities=True) - book['publisher'] = story.getMetadata("site") + book['publisher'] = story.getMetadata("publisher") book['url'] = story.getMetadata("storyUrl") book['tags'] = story.getSubjectTags(removeallentities=True) book['comments'] = story.get_sanitized_description() diff --git a/calibre-plugin/jobs.py b/calibre-plugin/jobs.py index 6ea37cd0..d63c6834 100644 --- a/calibre-plugin/jobs.py +++ b/calibre-plugin/jobs.py @@ -176,7 +176,7 @@ def do_download_for_worker(book,options,merge,notification=lambda x,y:x): book['title'] = story.getMetadata("title", removeallentities=True) book['author_sort'] = book['author'] = story.getList("author", removeallentities=True) - book['publisher'] = story.getMetadata("site") + book['publisher'] = story.getMetadata("publisher") book['url'] = story.getMetadata("storyUrl") book['tags'] = story.getSubjectTags(removeallentities=True) book['comments'] = story.get_sanitized_description() diff --git a/calibre-plugin/plugin-defaults.ini b/calibre-plugin/plugin-defaults.ini index 7e99ef7d..d5309285 100644 --- a/calibre-plugin/plugin-defaults.ini +++ b/calibre-plugin/plugin-defaults.ini @@ -87,6 +87,14 @@ extratags_label:Extra Tags ## The version of fanficdownloader version_label:Downloader Version +## The metadata entry 'site' predates Calibre integration, and was +## later labeled Publisher and used to fill Calibre's Publisher field. +## Because users keep expecting it to be 'publisher' instead, +## 'publisher' is now a copy of 'site' and the Calibre plugin now uses +## 'publisher' instead. Default titlepage_entries are also changed. +include_in_publisher:site +publisher_label:Publisher + ## Date formats used by FanFicFare. Published and Update don't have time. ## See http://docs.python.org/library/datetime.html#strftime-strptime-behavior ## Note that ini format requires % to be escaped as %%. @@ -99,7 +107,7 @@ dateUpdated_format:%%Y-%%m-%%d ## You can include extra text or HTML that will be included as-is in ## the title page. Eg: titlepage_entries: ...,
,summary,
,... ## All current formats already include title and author. -titlepage_entries: seriesHTML,category,genre,language,characters,ships,status,datePublished,dateUpdated,dateCreated,rating,warnings,numChapters,numWords,site,description +titlepage_entries: seriesHTML,category,genre,language,characters,ships,status,datePublished,dateUpdated,dateCreated,rating,warnings,numChapters,numWords,publisher,description ## Try to collect series name and number of this story in series. ## Some sites (ab)use 'series' for reading lists and personal @@ -757,8 +765,6 @@ include_tocpage: false ## dateUpdated,numChapters,numWords at a minimum) will be shown. ## Great for tracking when chapters came out and when the description, ## etc changed. -## Plugin will now preserve the log page when the epub is overwritten, -## too. include_logpage: false ## If set to 'smart', logpage will only be included if the story is ## status:In-Progress or already had a logpage. That way you don't @@ -949,7 +955,7 @@ output_css: keep_summary_html:false ## Add URLs since there aren't links. -titlepage_entries: series,seriesUrl,category,genre,language,characters,ships,status,datePublished,dateUpdated,dateCreated,rating,warnings,numChapters,numWords,site,storyUrl, authorUrl, description +titlepage_entries: series,seriesUrl,category,genre,language,characters,ships,status,datePublished,dateUpdated,dateCreated,rating,warnings,numChapters,numWords,publisher,storyUrl, authorUrl, description ## Width to word wrap text output. 0 indicates no wrapping. wrap_width: 78 @@ -1015,7 +1021,7 @@ extratags: FanFiction,Testing,HTML valid_entries:title,author_list,authorId_list,authorUrl_list,storyUrl, datePublished,dateUpdated,numWords,status,language,series,seriesUrl, rating,category_list,genre_list,warnings_list,characters_list,ships_list, - description,site,extratags + description,publisher,extratags # {{storyId}} is a special case--it's the only one that works. title:Test Story Title {{storyId}} @@ -1493,7 +1499,7 @@ logpage_entries: dateCreated,datePublished,dateUpdated,numChapters,numWords,stat ## All current formats already include title and author. ## Don't include numChapters since all stories are a single "chapter", there's ## no way to reliably find the next chapter -titlepage_entries: seriesHTML,category,genre,language,characters,ships,status,datePublished,dateUpdated,dateCreated,rating,warnings,numWords,site,description +titlepage_entries: seriesHTML,category,genre,language,characters,ships,status,datePublished,dateUpdated,dateCreated,rating,warnings,numWords,publisher,description ## Extra metadata that this adapter knows about. See [archiveofourown.org] ## for examples of how to use them. @@ -2352,6 +2358,9 @@ extra_valid_entries:native_status ## Site dedicated to these categories/characters/ships extracategories:Harry Potter +## fictionally.org storyIds are not unique. Combine with authorId. +output_filename: ${title}-${siteabbrev}_${authorId}_${storyId}${formatext} + ## fictionalley.org doesn't have a status metadatum. If uncommented, ## this will be used for status. #default_value_status:Unknown @@ -2815,14 +2824,14 @@ website_encodings:Windows-1252,utf8 [www.squidge.org/peja:txt] ## Add URLs since there aren't links and remove numWords -- ## www.squidge.org/peja word counts are inaccurate -titlepage_entries: series,seriesUrl,category,genre,language,status,datePublished,dateUpdated,dateCreated,rating,warnings,numChapters,site,storyUrl, authorUrl, description +titlepage_entries: series,seriesUrl,category,genre,language,status,datePublished,dateUpdated,dateCreated,rating,warnings,numChapters,publisher,storyUrl, authorUrl, description [www.squidge.org/peja] ## www.squidge.org/peja calls it Fandom category_label:Fandom ## Remove numWords -- www.squidge.org/peja word counts are inaccurate -titlepage_entries: seriesHTML,category,genre,language,characters,ships,status,datePublished,dateUpdated,dateCreated,rating,warnings,numChapters,site,description +titlepage_entries: seriesHTML,category,genre,language,characters,ships,status,datePublished,dateUpdated,dateCreated,rating,warnings,numChapters,publisher,description [www.starskyhutcharchive.net] ## Some sites do not require a login, but do require the user to diff --git a/calibre-plugin/translations/messages.pot b/calibre-plugin/translations/messages.pot index 196d1a94..0a09160e 100644 --- a/calibre-plugin/translations/messages.pot +++ b/calibre-plugin/translations/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2018-12-25 23:36+Central Standard Time\n" +"POT-Creation-Date: 2019-05-16 14:52+Central Daylight Time\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -716,403 +716,403 @@ msgstr "" msgid "Confirmation dialogs have all been reset" msgstr "" -#: config.py:1279 +#: config.py:1280 msgid "Category" msgstr "" -#: config.py:1280 +#: config.py:1281 msgid "Genre" msgstr "" -#: config.py:1281 +#: config.py:1282 msgid "Language" msgstr "" -#: config.py:1282 fff_plugin.py:1502 fff_plugin.py:1716 fff_plugin.py:1746 +#: config.py:1283 fff_plugin.py:1500 fff_plugin.py:1713 fff_plugin.py:1743 msgid "Status" msgstr "" -#: config.py:1283 +#: config.py:1284 msgid "Status:%(cmplt)s" msgstr "" -#: config.py:1284 +#: config.py:1285 msgid "Status:%(inprog)s" msgstr "" -#: config.py:1285 config.py:1465 +#: config.py:1286 config.py:1467 msgid "Series" msgstr "" -#: config.py:1286 +#: config.py:1287 msgid "Characters" msgstr "" -#: config.py:1287 +#: config.py:1288 msgid "Relationships" msgstr "" -#: config.py:1288 +#: config.py:1289 msgid "Published" msgstr "" -#: config.py:1289 fff_plugin.py:1894 fff_plugin.py:1910 +#: config.py:1290 fff_plugin.py:1891 fff_plugin.py:1907 msgid "Updated" msgstr "" -#: config.py:1290 +#: config.py:1291 msgid "Created" msgstr "" -#: config.py:1291 +#: config.py:1292 msgid "Rating" msgstr "" -#: config.py:1292 +#: config.py:1293 msgid "Warnings" msgstr "" -#: config.py:1293 +#: config.py:1294 msgid "Chapters" msgstr "" -#: config.py:1294 +#: config.py:1295 msgid "Words" msgstr "" -#: config.py:1295 +#: config.py:1296 msgid "Site" msgstr "" -#: config.py:1296 -msgid "Story ID" -msgstr "" - -#: config.py:1297 -msgid "Author ID" +#: config.py:1297 config.py:1461 +msgid "Publisher" msgstr "" #: config.py:1298 -msgid "Extra Tags" +msgid "Story ID" msgstr "" -#: config.py:1299 config.py:1457 dialogs.py:952 dialogs.py:1048 -#: fff_plugin.py:1502 fff_plugin.py:1716 fff_plugin.py:1746 -msgid "Title" +#: config.py:1299 +msgid "Author ID" msgstr "" #: config.py:1300 +msgid "Extra Tags" +msgstr "" + +#: config.py:1301 config.py:1459 dialogs.py:952 dialogs.py:1048 +#: fff_plugin.py:1500 fff_plugin.py:1713 fff_plugin.py:1743 +msgid "Title" +msgstr "" + +#: config.py:1302 msgid "Story URL" msgstr "" -#: config.py:1301 +#: config.py:1303 msgid "Description" msgstr "" -#: config.py:1302 dialogs.py:952 dialogs.py:1048 fff_plugin.py:1502 -#: fff_plugin.py:1716 fff_plugin.py:1746 +#: config.py:1304 dialogs.py:952 dialogs.py:1048 fff_plugin.py:1500 +#: fff_plugin.py:1713 fff_plugin.py:1743 msgid "Author" msgstr "" -#: config.py:1303 +#: config.py:1305 msgid "Author URL" msgstr "" -#: config.py:1304 +#: config.py:1306 msgid "File Format" msgstr "" -#: config.py:1305 +#: config.py:1307 msgid "File Extension" msgstr "" -#: config.py:1306 +#: config.py:1308 msgid "Site Abbrev" msgstr "" -#: config.py:1307 +#: config.py:1309 msgid "FanFicFare Version" msgstr "" -#: config.py:1322 +#: config.py:1324 msgid "If you have custom columns defined, they will be listed below. Choose a metadata value type to fill your columns automatically." msgstr "" -#: config.py:1347 +#: config.py:1349 msgid "Update this %s column(%s) with..." msgstr "" -#: config.py:1357 +#: config.py:1359 msgid "Values that aren't valid for this enumeration column will be ignored." msgstr "" -#: config.py:1357 config.py:1359 +#: config.py:1359 config.py:1361 msgid "Metadata values valid for this type of column." msgstr "" -#: config.py:1362 config.py:1486 +#: config.py:1364 config.py:1488 msgid "New Only" msgstr "" -#: config.py:1363 +#: config.py:1365 msgid "" "Write to %s(%s) only for new\n" "books, not updates to existing books." msgstr "" -#: config.py:1374 +#: config.py:1376 msgid "Allow %(ccset)s from %(pini)s to override" msgstr "" -#: config.py:1375 +#: config.py:1377 msgid "The %(pini)s parameter %(ccset)s allows you to set custom columns to site specific values that aren't common to all sites.
%(ccset)s is ignored when this is off." msgstr "" -#: config.py:1379 +#: config.py:1381 msgid "Special column:" msgstr "" -#: config.py:1384 +#: config.py:1386 msgid "Update/Overwrite Error Column:" msgstr "" -#: config.py:1385 +#: config.py:1387 msgid "" "When an update or overwrite of an existing story fails, record the reason in this column.\n" "(Text and Long Text columns only.)" msgstr "" -#: config.py:1398 +#: config.py:1400 msgid "Save All Errors" msgstr "" -#: config.py:1399 +#: config.py:1401 msgid "If unchecked, these errors will not be saved: %s" msgstr "" -#: config.py:1401 fff_plugin.py:1374 jobs.py:217 +#: config.py:1403 fff_plugin.py:1372 jobs.py:217 msgid "Not Overwriting, web site is not newer." msgstr "" -#: config.py:1402 fff_plugin.py:1353 jobs.py:258 +#: config.py:1404 fff_plugin.py:1351 jobs.py:258 msgid "Already contains %d chapters." msgstr "" -#: config.py:1409 +#: config.py:1411 msgid "Saved Metadata Column:" msgstr "" -#: config.py:1410 +#: config.py:1412 msgid "If set, FanFicFare will save a copy of all its metadata in this column when the book is downloaded or updated.
The metadata from this column can later be used to update custom columns without having to request the metadata from the server again.
(Long Text columns only.)" msgstr "" -#: config.py:1428 +#: config.py:1430 msgid "Last Checked Column:" msgstr "" -#: config.py:1429 +#: config.py:1431 msgid "" "Record the last time FanFicFare updated or checked for updates.\n" "(Date columns only.)" msgstr "" -#: config.py:1458 +#: config.py:1460 msgid "Author(s)" msgstr "" -#: config.py:1459 -msgid "Publisher" -msgstr "" - -#: config.py:1460 +#: config.py:1462 msgid "Tags" msgstr "" -#: config.py:1461 +#: config.py:1463 msgid "Languages" msgstr "" -#: config.py:1462 +#: config.py:1464 msgid "Published Date" msgstr "" -#: config.py:1463 +#: config.py:1465 msgid "Date" msgstr "" -#: config.py:1464 +#: config.py:1466 msgid "Comments" msgstr "" -#: config.py:1466 +#: config.py:1468 msgid "Ids(url id only)" msgstr "" -#: config.py:1471 +#: config.py:1473 msgid "The standard calibre metadata columns are listed below. You may choose whether FanFicFare will fill each column automatically on updates or only for new books." msgstr "" -#: config.py:1487 +#: config.py:1489 msgid "" "Write to %s only for new\n" "books, not updates to existing books." msgstr "" -#: config.py:1494 +#: config.py:1496 msgid "Force Title into Title Sort?" msgstr "" -#: config.py:1495 +#: config.py:1497 msgid "" "If checked, the title as given will be used for the Title Sort, too.\n" "If not checked, calibre will apply it's built in algorithm which makes 'The Title' sort as 'Title, The', etc." msgstr "" -#: config.py:1498 +#: config.py:1500 msgid "Fix Title Case?" msgstr "" -#: config.py:1499 +#: config.py:1501 msgid "If checked, Calibre's routine for correcting the capitalization of title will be applied." msgstr "" -#: config.py:1500 config.py:1511 +#: config.py:1502 config.py:1513 msgid "This effects Calibre metadata only, not FanFicFare metadata in title page." msgstr "" -#: config.py:1504 +#: config.py:1506 msgid "Force Author into Author Sort?" msgstr "" -#: config.py:1505 +#: config.py:1507 msgid "" "If checked, the author(s) as given will be used for the Author Sort, too.\n" "If not checked, calibre will apply it's built in algorithm which makes 'Bob Smith' sort as 'Smith, Bob', etc." msgstr "" -#: config.py:1508 +#: config.py:1510 msgid "Fix Author Case?" msgstr "" -#: config.py:1509 +#: config.py:1511 msgid "If checked, Calibre's routine for correcting the capitalization of author names will be applied." msgstr "" -#: config.py:1510 +#: config.py:1512 msgid "Calibre remembers all authors in the library; changing the author case on one book will effect all books by that author." msgstr "" -#: config.py:1522 +#: config.py:1524 msgid "Other Standard Column Options" msgstr "" -#: config.py:1527 +#: config.py:1529 msgid "Set Calibre Author URL" msgstr "" -#: config.py:1528 +#: config.py:1530 msgid "Set Calibre Author URL to Author's URL on story site." msgstr "" -#: config.py:1532 +#: config.py:1534 msgid "Include Books' Comments in Anthology Comments?" msgstr "" -#: config.py:1533 +#: config.py:1535 msgid "" "Include all the merged books' comments in the new book's comments.\n" "Default is a list of included titles only." msgstr "" -#: config.py:1538 +#: config.py:1540 msgid "Set Anthology Comments only for new books" msgstr "" -#: config.py:1539 +#: config.py:1541 msgid "" "Comments will only be set for New Anthologies, not updates.\n" "That way comments you set manually are retained." msgstr "" -#: config.py:1556 +#: config.py:1558 msgid "These settings will allow FanFicFare to fetch story URLs from your email account. It will only look for story URLs in unread emails in the folder specified below." msgstr "" -#: config.py:1561 +#: config.py:1563 msgid "IMAP Server Name" msgstr "" -#: config.py:1562 +#: config.py:1564 msgid "Name of IMAP server--must allow IMAP4 with SSL. Eg: imap.gmail.com" msgstr "" -#: config.py:1571 +#: config.py:1573 msgid "IMAP User Name" msgstr "" -#: config.py:1572 +#: config.py:1574 msgid "" "Name of IMAP user. Eg: yourname@gmail.com\n" "Note that Gmail accounts need to have IMAP enabled in Gmail Settings first." msgstr "" -#: config.py:1581 +#: config.py:1583 msgid "IMAP User Password" msgstr "" -#: config.py:1582 +#: config.py:1584 msgid "IMAP password. If left empty, FanFicFare will ask you for your password when you use the feature." msgstr "" -#: config.py:1592 +#: config.py:1594 msgid "Remember Password for Session (when not saved above)" msgstr "" -#: config.py:1593 +#: config.py:1595 msgid "If checked, and no password is entered above, FanFicFare will remember your password until you close calibre or change Libraries." msgstr "" -#: config.py:1598 +#: config.py:1600 msgid "IMAP Folder Name" msgstr "" -#: config.py:1599 +#: config.py:1601 msgid "Name of IMAP folder to search for new emails. The folder (or label) has to already exist. Use INBOX for your default inbox." msgstr "" -#: config.py:1608 +#: config.py:1610 msgid "Mark Emails Read" msgstr "" -#: config.py:1609 +#: config.py:1611 msgid "If checked, emails will be marked as having been read if they contain any story URLs." msgstr "" -#: config.py:1614 +#: config.py:1616 msgid "Discard URLs on Reject List" msgstr "" -#: config.py:1615 +#: config.py:1617 msgid "If checked, FanFicFare will silently discard story URLs from emails that are on your Reject URL List.
Otherwise they will appear and you will see the normal Reject URL dialog.
The Emails will still be marked Read if configured to." msgstr "" -#: config.py:1620 +#: config.py:1622 msgid "Update Existing Books Only" msgstr "" -#: config.py:1621 +#: config.py:1623 msgid "If checked, FanFicFare will silently discard story URLs from emails that are not already in your library.
Otherwise all story URLs, new and existing, will be used.
The Emails will still be marked Read if configured to." msgstr "" -#: config.py:1626 +#: config.py:1628 msgid "Download from Email Immediately" msgstr "" -#: config.py:1627 +#: config.py:1629 msgid "If checked, FanFicFare will start downloading story URLs from emails immediately.
Otherwise the usual Download from URLs dialog will appear." msgstr "" -#: config.py:1632 +#: config.py:1634 msgid "It's safest if you create a separate email account that you use only for your story update notices. FanFicFare and calibre cannot guarantee that malicious code cannot get your email password once you've entered it.
Use this feature at your own risk.
" msgstr "" @@ -1233,15 +1233,15 @@ msgstr "" msgid "OK" msgstr "" -#: dialogs.py:619 dialogs.py:643 fff_plugin.py:976 +#: dialogs.py:619 dialogs.py:643 fff_plugin.py:974 msgid "Fetching metadata for stories..." msgstr "" -#: dialogs.py:620 dialogs.py:644 fff_plugin.py:977 +#: dialogs.py:620 dialogs.py:644 fff_plugin.py:975 msgid "Downloading metadata for stories" msgstr "" -#: dialogs.py:621 dialogs.py:645 fff_plugin.py:978 +#: dialogs.py:621 dialogs.py:645 fff_plugin.py:976 msgid "Fetched metadata for" msgstr "" @@ -1249,7 +1249,7 @@ msgstr "" msgid " - %s estimated until done" msgstr "" -#: dialogs.py:699 fff_plugin.py:1194 +#: dialogs.py:699 fff_plugin.py:1192 msgid "Skipped" msgstr "" @@ -1313,7 +1313,7 @@ msgstr "" msgid "Collect Metadata from sites in a Background process.
This returns control to you quicker while updating, but you won't be asked for username/passwords or if you are an adult--stories that need those will just fail." msgstr "" -#: dialogs.py:952 fff_plugin.py:1502 fff_plugin.py:1716 fff_plugin.py:1746 +#: dialogs.py:952 fff_plugin.py:1500 fff_plugin.py:1713 fff_plugin.py:1743 msgid "Comment" msgstr "" @@ -1545,7 +1545,7 @@ msgstr "" msgid "Finished Fetching Story URLs from Page." msgstr "" -#: fff_plugin.py:554 fff_plugin.py:607 +#: fff_plugin.py:554 fff_plugin.py:605 msgid "List of Story URLs" msgstr "" @@ -1553,495 +1553,495 @@ msgstr "" msgid "No Valid Story URLs found on given page." msgstr "" -#: fff_plugin.py:571 fff_plugin.py:624 +#: fff_plugin.py:571 fff_plugin.py:622 msgid "No Selected Books to Get URLs From" msgstr "" -#: fff_plugin.py:589 +#: fff_plugin.py:587 msgid "Collecting URLs for stories..." msgstr "" -#: fff_plugin.py:590 +#: fff_plugin.py:588 msgid "Get URLs for stories" msgstr "" -#: fff_plugin.py:591 fff_plugin.py:709 fff_plugin.py:901 +#: fff_plugin.py:589 fff_plugin.py:707 fff_plugin.py:899 msgid "URL retrieved" msgstr "" -#: fff_plugin.py:611 +#: fff_plugin.py:609 msgid "List of URLs" msgstr "" -#: fff_plugin.py:612 +#: fff_plugin.py:610 msgid "No Story URLs found in selected books." msgstr "" -#: fff_plugin.py:619 +#: fff_plugin.py:617 msgid "Can only UnNew books in library" msgstr "" -#: fff_plugin.py:636 +#: fff_plugin.py:634 msgid "UnNewing books..." msgstr "" -#: fff_plugin.py:637 +#: fff_plugin.py:635 msgid "UnNew Books" msgstr "" -#: fff_plugin.py:638 +#: fff_plugin.py:636 msgid "Books UnNewed" msgstr "" -#: fff_plugin.py:684 fff_plugin.py:1675 +#: fff_plugin.py:682 fff_plugin.py:1672 msgid "Starting auto conversion of %d books." msgstr "" -#: fff_plugin.py:699 +#: fff_plugin.py:697 msgid "No Selected Books have URLs to Reject" msgstr "" -#: fff_plugin.py:707 +#: fff_plugin.py:705 msgid "Collecting URLs for Reject List..." msgstr "" -#: fff_plugin.py:708 +#: fff_plugin.py:706 msgid "Get URLs for Reject List" msgstr "" -#: fff_plugin.py:743 +#: fff_plugin.py:741 msgid "Proceed to Remove?" msgstr "" -#: fff_plugin.py:743 +#: fff_plugin.py:741 msgid "Rejecting FanFicFare URLs: None of the books selected have FanFiction URLs." msgstr "" -#: fff_plugin.py:765 +#: fff_plugin.py:763 msgid "Cannot Make Anthologys without %s" msgstr "" -#: fff_plugin.py:769 fff_plugin.py:878 +#: fff_plugin.py:767 fff_plugin.py:876 msgid "Cannot Update Books from Device View" msgstr "" -#: fff_plugin.py:773 +#: fff_plugin.py:771 msgid "Can only update 1 anthology at a time" msgstr "" -#: fff_plugin.py:782 +#: fff_plugin.py:780 msgid "Can only Update Epub Anthologies" msgstr "" -#: fff_plugin.py:800 fff_plugin.py:801 +#: fff_plugin.py:798 fff_plugin.py:799 msgid "Cannot Update Anthology" msgstr "" -#: fff_plugin.py:801 +#: fff_plugin.py:799 msgid "Book isn't an FanFicFare Anthology or contains book(s) without valid Story URLs." msgstr "" -#: fff_plugin.py:808 +#: fff_plugin.py:806 msgid "Fetching Story URLs for Series..." msgstr "" -#: fff_plugin.py:818 +#: fff_plugin.py:816 msgid "Finished Fetching Story URLs for Series." msgstr "" -#: fff_plugin.py:864 +#: fff_plugin.py:862 msgid "There are %d stories in the current anthology that are not going to be kept if you go ahead." msgstr "" -#: fff_plugin.py:865 +#: fff_plugin.py:863 msgid "Story URLs that will be removed:" msgstr "" -#: fff_plugin.py:867 +#: fff_plugin.py:865 msgid "Update anyway?" msgstr "" -#: fff_plugin.py:868 +#: fff_plugin.py:866 msgid "Stories Removed" msgstr "" -#: fff_plugin.py:885 +#: fff_plugin.py:883 msgid "No Selected Books to Update" msgstr "" -#: fff_plugin.py:899 +#: fff_plugin.py:897 msgid "Collecting stories for update..." msgstr "" -#: fff_plugin.py:900 +#: fff_plugin.py:898 msgid "Get stories for updates" msgstr "" -#: fff_plugin.py:910 +#: fff_plugin.py:908 msgid "Update Existing List" msgstr "" -#: fff_plugin.py:970 +#: fff_plugin.py:968 msgid "Start queuing downloading for %s stories." msgstr "" -#: fff_plugin.py:971 +#: fff_plugin.py:969 msgid "Queuing download for stories..." msgstr "" -#: fff_plugin.py:972 +#: fff_plugin.py:970 msgid "Queuing download for stories" msgstr "" -#: fff_plugin.py:973 +#: fff_plugin.py:971 msgid "Queued download for" msgstr "" -#: fff_plugin.py:975 +#: fff_plugin.py:973 msgid "Started fetching metadata for %s stories." msgstr "" -#: fff_plugin.py:989 +#: fff_plugin.py:987 msgid "No valid story URLs entered." msgstr "" -#: fff_plugin.py:999 fff_plugin.py:1005 +#: fff_plugin.py:997 fff_plugin.py:1003 msgid "Reject URL?" msgstr "" -#: fff_plugin.py:1006 fff_plugin.py:1024 +#: fff_plugin.py:1004 fff_plugin.py:1022 msgid "%s is on your Reject URL list:" msgstr "" -#: fff_plugin.py:1008 +#: fff_plugin.py:1006 msgid "Click 'Yes' to Reject." msgstr "" -#: fff_plugin.py:1009 fff_plugin.py:1186 +#: fff_plugin.py:1007 fff_plugin.py:1184 msgid "Click 'No' to download anyway." msgstr "" -#: fff_plugin.py:1011 +#: fff_plugin.py:1009 msgid "Story on Reject URLs list (%s)." msgstr "" -#: fff_plugin.py:1014 +#: fff_plugin.py:1012 msgid "Rejected" msgstr "" -#: fff_plugin.py:1017 +#: fff_plugin.py:1015 msgid "Remove Reject URL?" msgstr "" -#: fff_plugin.py:1023 +#: fff_plugin.py:1021 msgid "Remove URL from Reject List?" msgstr "" -#: fff_plugin.py:1026 +#: fff_plugin.py:1024 msgid "Click 'Yes' to remove it from the list," msgstr "" -#: fff_plugin.py:1027 +#: fff_plugin.py:1025 msgid "Click 'No' to leave it on the list." msgstr "" -#: fff_plugin.py:1048 +#: fff_plugin.py:1046 msgid "Are You an Adult?" msgstr "" -#: fff_plugin.py:1049 +#: fff_plugin.py:1047 msgid "%s requires that you be an adult. Please confirm you are an adult in your locale:" msgstr "" -#: fff_plugin.py:1094 +#: fff_plugin.py:1092 msgid "Cannot update non-epub format." msgstr "" -#: fff_plugin.py:1177 +#: fff_plugin.py:1175 msgid "Skip Story?" msgstr "" -#: fff_plugin.py:1183 +#: fff_plugin.py:1181 msgid "Skip Anthology Story?" msgstr "" -#: fff_plugin.py:1184 +#: fff_plugin.py:1182 msgid "\"%s\" is in series \"%s\" that you have an anthology book for." msgstr "" -#: fff_plugin.py:1185 +#: fff_plugin.py:1183 msgid "Click 'Yes' to Skip." msgstr "" -#: fff_plugin.py:1188 +#: fff_plugin.py:1186 msgid "Story in Series Anthology(%s)." msgstr "" -#: fff_plugin.py:1204 +#: fff_plugin.py:1202 msgid "Add" msgstr "" -#: fff_plugin.py:1237 +#: fff_plugin.py:1235 msgid "Meta" msgstr "" -#: fff_plugin.py:1266 +#: fff_plugin.py:1264 msgid "Skipping duplicate story." msgstr "" -#: fff_plugin.py:1269 +#: fff_plugin.py:1267 msgid "More than one identical book by Identifier URL or title/author(s)--can't tell which book to update/overwrite." msgstr "" -#: fff_plugin.py:1280 +#: fff_plugin.py:1278 msgid "Update" msgstr "" -#: fff_plugin.py:1290 +#: fff_plugin.py:1288 msgid "Update declined due to differing story URL(%s)(%s tag present)" msgstr "" -#: fff_plugin.py:1293 fff_plugin.py:1330 +#: fff_plugin.py:1291 fff_plugin.py:1328 msgid "Different URL" msgstr "" -#: fff_plugin.py:1295 fff_plugin.py:1302 +#: fff_plugin.py:1293 fff_plugin.py:1300 msgid "Change Story URL?" msgstr "" -#: fff_plugin.py:1303 +#: fff_plugin.py:1301 msgid "%s by %s is already in your library with a different source URL:" msgstr "" -#: fff_plugin.py:1304 +#: fff_plugin.py:1302 msgid "In library: %(liburl)s" msgstr "" -#: fff_plugin.py:1305 fff_plugin.py:1319 +#: fff_plugin.py:1303 fff_plugin.py:1317 msgid "New URL: %(newurl)s" msgstr "" -#: fff_plugin.py:1306 +#: fff_plugin.py:1304 msgid "Click 'Yes' to update/overwrite book with new URL." msgstr "" -#: fff_plugin.py:1307 +#: fff_plugin.py:1305 msgid "Click 'No' to skip updating/overwriting this book." msgstr "" -#: fff_plugin.py:1309 fff_plugin.py:1316 +#: fff_plugin.py:1307 fff_plugin.py:1314 msgid "Download as New Book?" msgstr "" -#: fff_plugin.py:1317 +#: fff_plugin.py:1315 msgid "%s by %s is already in your library with a different source URL." msgstr "" -#: fff_plugin.py:1318 +#: fff_plugin.py:1316 msgid "You chose not to update the existing book. Do you want to add a new book for this URL?" msgstr "" -#: fff_plugin.py:1320 +#: fff_plugin.py:1318 msgid "Click 'Yes' to a new book with new URL." msgstr "" -#: fff_plugin.py:1321 +#: fff_plugin.py:1319 msgid "Click 'No' to skip URL." msgstr "" -#: fff_plugin.py:1327 +#: fff_plugin.py:1325 msgid "Update declined by user due to differing story URL(%s)" msgstr "" -#: fff_plugin.py:1335 +#: fff_plugin.py:1333 msgid "Metadata collected." msgstr "" -#: fff_plugin.py:1355 jobs.py:260 +#: fff_plugin.py:1353 jobs.py:260 msgid "Existing epub contains %d chapters, web site only has %d. Use Overwrite to force update." msgstr "" -#: fff_plugin.py:1357 jobs.py:262 +#: fff_plugin.py:1355 jobs.py:262 msgid "FanFicFare doesn't recognize chapters in existing epub, epub is probably from a different source. Use Overwrite to force update." msgstr "" -#: fff_plugin.py:1498 +#: fff_plugin.py:1496 msgid "None of the %d URLs/stories given can be/need to be downloaded." msgstr "" -#: fff_plugin.py:1499 fff_plugin.py:1712 fff_plugin.py:1742 +#: fff_plugin.py:1497 fff_plugin.py:1709 fff_plugin.py:1739 msgid "See log for details." msgstr "" -#: fff_plugin.py:1500 +#: fff_plugin.py:1498 msgid "Proceed with updating your library(Error or Last Checked Columns, if configured)?" msgstr "" -#: fff_plugin.py:1507 fff_plugin.py:1724 fff_plugin.py:1758 +#: fff_plugin.py:1505 fff_plugin.py:1721 fff_plugin.py:1755 msgid "Bad" msgstr "" -#: fff_plugin.py:1518 fff_plugin.py:1524 +#: fff_plugin.py:1516 fff_plugin.py:1522 msgid "FanFicFare download ended" msgstr "" -#: fff_plugin.py:1518 fff_plugin.py:1524 fff_plugin.py:1769 fff_plugin.py:1775 +#: fff_plugin.py:1516 fff_plugin.py:1522 fff_plugin.py:1766 fff_plugin.py:1772 msgid "FanFicFare log" msgstr "" -#: fff_plugin.py:1545 +#: fff_plugin.py:1543 msgid "Download %s FanFiction Book(s)" msgstr "" -#: fff_plugin.py:1552 +#: fff_plugin.py:1550 msgid "Starting %d FanFicFare Downloads" msgstr "" -#: fff_plugin.py:1586 +#: fff_plugin.py:1584 msgid "Story Details:" msgstr "" -#: fff_plugin.py:1589 +#: fff_plugin.py:1587 msgid "Error Updating Metadata" msgstr "" -#: fff_plugin.py:1590 +#: fff_plugin.py:1588 msgid "An error has occurred while FanFicFare was updating calibre's metadata for %s." msgstr "" -#: fff_plugin.py:1591 +#: fff_plugin.py:1589 msgid "The ebook has been updated, but the metadata has not." msgstr "" -#: fff_plugin.py:1645 +#: fff_plugin.py:1643 msgid "Finished Adding/Updating %d books." msgstr "" -#: fff_plugin.py:1696 +#: fff_plugin.py:1693 msgid "No Good Stories for Anthology" msgstr "" -#: fff_plugin.py:1697 +#: fff_plugin.py:1694 msgid "No good stories/updates where downloaded, Anthology creation/update aborted." msgstr "" -#: fff_plugin.py:1702 fff_plugin.py:1741 +#: fff_plugin.py:1699 fff_plugin.py:1738 msgid "FanFicFare found %s good and %s bad updates." msgstr "" -#: fff_plugin.py:1709 +#: fff_plugin.py:1706 msgid "Are you sure you want to continue with creating/updating this Anthology?" msgstr "" -#: fff_plugin.py:1710 +#: fff_plugin.py:1707 msgid "Any updates that failed will not be included in the Anthology." msgstr "" -#: fff_plugin.py:1711 +#: fff_plugin.py:1708 msgid "However, if there's an older version, it will still be included." msgstr "" -#: fff_plugin.py:1714 +#: fff_plugin.py:1711 msgid "Proceed with updating this anthology and your library?" msgstr "" -#: fff_plugin.py:1722 fff_plugin.py:1751 +#: fff_plugin.py:1719 fff_plugin.py:1748 msgid "Good" msgstr "" -#: fff_plugin.py:1743 +#: fff_plugin.py:1740 msgid "Proceed with updating your library?" msgstr "" -#: fff_plugin.py:1769 fff_plugin.py:1775 +#: fff_plugin.py:1766 fff_plugin.py:1772 msgid "FanFicFare download complete" msgstr "" -#: fff_plugin.py:1789 +#: fff_plugin.py:1786 msgid "Merging %s books." msgstr "" -#: fff_plugin.py:1878 +#: fff_plugin.py:1875 msgid "FanFicFare Adding/Updating books." msgstr "" -#: fff_plugin.py:1892 +#: fff_plugin.py:1889 msgid "Updating calibre for FanFiction stories..." msgstr "" -#: fff_plugin.py:1893 +#: fff_plugin.py:1890 msgid "Update calibre for FanFiction stories" msgstr "" -#: fff_plugin.py:1903 +#: fff_plugin.py:1900 msgid "Adding/Updating %s BAD books." msgstr "" -#: fff_plugin.py:1908 +#: fff_plugin.py:1905 msgid "Updating calibre for BAD FanFiction stories..." msgstr "" -#: fff_plugin.py:1909 +#: fff_plugin.py:1906 msgid "Update calibre for BAD FanFiction stories" msgstr "" -#: fff_plugin.py:1954 +#: fff_plugin.py:1951 msgid "Adding format to book failed for some reason..." msgstr "" -#: fff_plugin.py:1957 jobs.py:317 +#: fff_plugin.py:1954 jobs.py:317 msgid "Error" msgstr "" -#: fff_plugin.py:2308 +#: fff_plugin.py:2299 msgid "You configured FanFicFare to automatically update Reading Lists, but you don't have the %s plugin installed anymore?" msgstr "" -#: fff_plugin.py:2320 +#: fff_plugin.py:2311 msgid "You configured FanFicFare to automatically update \"To Read\" Reading Lists, but you don't have any lists set?" msgstr "" -#: fff_plugin.py:2330 fff_plugin.py:2348 +#: fff_plugin.py:2321 fff_plugin.py:2339 msgid "You configured FanFicFare to automatically update Reading List '%s', but you don't have a list of that name?" msgstr "" -#: fff_plugin.py:2336 +#: fff_plugin.py:2327 msgid "You configured FanFicFare to automatically update \"Send to Device\" Reading Lists, but you don't have any lists set?" msgstr "" -#: fff_plugin.py:2409 +#: fff_plugin.py:2400 msgid "Same story already included." msgstr "" -#: fff_plugin.py:2466 +#: fff_plugin.py:2457 msgid "No story URL found." msgstr "" -#: fff_plugin.py:2469 +#: fff_plugin.py:2460 msgid "Not Found" msgstr "" -#: fff_plugin.py:2475 +#: fff_plugin.py:2466 msgid "URL is not a valid story URL." msgstr "" -#: fff_plugin.py:2478 +#: fff_plugin.py:2469 msgid "Bad URL" msgstr "" -#: fff_plugin.py:2632 +#: fff_plugin.py:2623 msgid "Anthology containing:" msgstr "" -#: fff_plugin.py:2634 +#: fff_plugin.py:2625 msgid "%s by %s" msgstr "" -#: fff_plugin.py:2676 +#: fff_plugin.py:2667 msgid " Anthology" msgstr "" -#: fff_plugin.py:2713 +#: fff_plugin.py:2704 msgid "(was set, removed for security)" msgstr "" diff --git a/fanficfare/configurable.py b/fanficfare/configurable.py index 4ea180f8..1664825b 100644 --- a/fanficfare/configurable.py +++ b/fanficfare/configurable.py @@ -115,6 +115,7 @@ titleLabels = { 'numWords':'Words', 'words_added':'Words Added', # logpage only 'site':'Site', + 'publisher':'Publisher', 'storyId':'Story ID', 'authorId':'Author ID', 'extratags':'Extra Tags', @@ -296,6 +297,7 @@ def get_valid_scalar_entries(): 'numWords', 'words_added', # logpage only. 'site', + 'publisher', 'storyId', 'title', 'titleHTML', diff --git a/fanficfare/defaults.ini b/fanficfare/defaults.ini index 3a3f15b8..d7f40bdd 100644 --- a/fanficfare/defaults.ini +++ b/fanficfare/defaults.ini @@ -87,6 +87,14 @@ extratags_label:Extra Tags ## The version of fanficdownloader version_label:Downloader Version +## The metadata entry 'site' predates Calibre integration, and was +## later labeled Publisher and used to fill Calibre's Publisher field. +## Because users keep expecting it to be 'publisher' instead, +## 'publisher' is now a copy of 'site' and the Calibre plugin now uses +## 'publisher' instead. Default titlepage_entries are also changed. +include_in_publisher:site +publisher_label:Publisher + ## Date formats used by FanFicFare. Published and Update don't have time. ## See http://docs.python.org/library/datetime.html#strftime-strptime-behavior ## Note that ini format requires % to be escaped as %%. @@ -99,7 +107,7 @@ dateUpdated_format:%%Y-%%m-%%d ## You can include extra text or HTML that will be included as-is in ## the title page. Eg: titlepage_entries: ...,
,summary,
,... ## All current formats already include title and author. -titlepage_entries: seriesHTML,category,genre,language,characters,ships,status,datePublished,dateUpdated,dateCreated,rating,warnings,numChapters,numWords,site,description +titlepage_entries: seriesHTML,category,genre,language,characters,ships,status,datePublished,dateUpdated,dateCreated,rating,warnings,numChapters,numWords,publisher,description ## Try to collect series name and number of this story in series. ## Some sites (ab)use 'series' for reading lists and personal @@ -983,7 +991,7 @@ output_css: keep_summary_html:false ## Add URLs since there aren't links. -titlepage_entries: series,seriesUrl,category,genre,language,characters,ships,status,datePublished,dateUpdated,dateCreated,rating,warnings,numChapters,numWords,site,storyUrl, authorUrl, description +titlepage_entries: series,seriesUrl,category,genre,language,characters,ships,status,datePublished,dateUpdated,dateCreated,rating,warnings,numChapters,numWords,publisher,storyUrl, authorUrl, description ## Width to word wrap text output. 0 indicates no wrapping. wrap_width: 78 @@ -1049,7 +1057,7 @@ extratags: FanFiction,Testing,HTML valid_entries:title,author_list,authorId_list,authorUrl_list,storyUrl, datePublished,dateUpdated,numWords,status,language,series,seriesUrl, rating,category_list,genre_list,warnings_list,characters_list,ships_list, - description,site,extratags + description,publisher,extratags # {{storyId}} is a special case--it's the only one that works. title:Test Story Title {{storyId}} @@ -1527,7 +1535,7 @@ logpage_entries: dateCreated,datePublished,dateUpdated,numChapters,numWords,stat ## All current formats already include title and author. ## Don't include numChapters since all stories are a single "chapter", there's ## no way to reliably find the next chapter -titlepage_entries: seriesHTML,category,genre,language,characters,ships,status,datePublished,dateUpdated,dateCreated,rating,warnings,numWords,site,description +titlepage_entries: seriesHTML,category,genre,language,characters,ships,status,datePublished,dateUpdated,dateCreated,rating,warnings,numWords,publisher,description ## Extra metadata that this adapter knows about. See [archiveofourown.org] ## for examples of how to use them. @@ -2843,14 +2851,14 @@ website_encodings:Windows-1252,utf8 [www.squidge.org/peja:txt] ## Add URLs since there aren't links and remove numWords -- ## www.squidge.org/peja word counts are inaccurate -titlepage_entries: series,seriesUrl,category,genre,language,status,datePublished,dateUpdated,dateCreated,rating,warnings,numChapters,site,storyUrl, authorUrl, description +titlepage_entries: series,seriesUrl,category,genre,language,status,datePublished,dateUpdated,dateCreated,rating,warnings,numChapters,publisher,storyUrl, authorUrl, description [www.squidge.org/peja] ## www.squidge.org/peja calls it Fandom category_label:Fandom ## Remove numWords -- www.squidge.org/peja word counts are inaccurate -titlepage_entries: seriesHTML,category,genre,language,characters,ships,status,datePublished,dateUpdated,dateCreated,rating,warnings,numChapters,site,description +titlepage_entries: seriesHTML,category,genre,language,characters,ships,status,datePublished,dateUpdated,dateCreated,rating,warnings,numChapters,publisher,description [www.starskyhutcharchive.net] ## Some sites do not require a login, but do require the user to