Compare commits

...
7 changed files with 29 additions and 26 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
# ffd-retief-hrd fanfictiondownloader
application: fanfictiondownloader
version: 4-4-45
version: 4-4-46
runtime: python27
api_version: 1
threadsafe: true
+1 -1
View File
@@ -27,7 +27,7 @@ class FanFictionDownLoaderBase(InterfaceActionBase):
description = 'UI plugin to download FanFiction stories from various sites.'
supported_platforms = ['windows', 'osx', 'linux']
author = 'Jim Miller'
version = (1, 7, 11)
version = (1, 7, 12)
minimum_calibre_version = (0, 8, 57)
#: This field defines the GUI plugin class that contains all the code
+12 -14
View File
@@ -1117,22 +1117,19 @@ class FanFictionDownLoaderPlugin(InterfaceAction):
existingbook = None
if 'mergebook' in options:
existingbook = options['mergebook']
#print("existingbook:\n%s"%existingbook)
mergebook = self.merge_meta_books(existingbook,good_list)
if 'mergebook' in options:
mergebook['calibre_id'] = options['mergebook']['calibre_id']
#mergeid = options['mergebook']['calibre_id']
if 'anthology_url' in options:
mergebook['url'] = options['anthology_url']
print("mergebook:\n%s"%mergebook)
#print("mergebook:\n%s"%mergebook)
if mergebook['good']: # there shouldn't be any !'good' books at this point.
# if still 'good', make a temp file to write the output to.
# For HTML format users, make the filename inside the zip something reasonable.
# For crazy long titles/authors, limit it to 200chars.
# For weird/OS-unsafe characters, use file safe only.
tmp = PersistentTemporaryFile(suffix='.'+options['fileform'],
dir=options['tdir'])
print("title:"+mergebook['title'])
@@ -1690,14 +1687,14 @@ class FanFictionDownLoaderPlugin(InterfaceAction):
"\n".join([ "%s by %s"%(b['title'],', '.join(b['author'])) for b in book_list ])
# book['all_metadata']['description']
# if all same series, use series for name. But only if all and not previous named
if len(serieslist) == len(book_list):
series = serieslist[0]
book['title'] = series+" Anthology"
for sr in serieslist:
if series != sr:
book['title'] = deftitle;
break
# if all same series, use series for name. But only if all and not previous named
if len(serieslist) == len(book_list):
series = serieslist[0]
book['title'] = series+" Anthology"
for sr in serieslist:
if series != sr:
book['title'] = deftitle;
break
book['all_metadata']['title'] = book['title'] # because custom columns are set from all_metadata
book['all_metadata']['author'] = ", ".join(book['author'])
@@ -1706,6 +1703,7 @@ class FanFictionDownLoaderPlugin(InterfaceAction):
if v in book['tags']:
book['tags'].remove(v)
book['tags'].append('Anthology')
book['all_metadata']['anthology'] = "true"
return book
def split_text_to_urls(urls):
+2 -2
View File
@@ -24,7 +24,7 @@ make_firstimage_cover:true
else:
return prefs['personal.ini']
def get_ffdl_config(url,fileform="EPUB",personalini=None):
def get_ffdl_config(url,fileform="epub",personalini=None):
if not personalini:
personalini = get_ffdl_personalini()
site='unknown'
@@ -38,6 +38,6 @@ def get_ffdl_config(url,fileform="EPUB",personalini=None):
return configuration
def get_ffdl_adapter(url,fileform="EPUB",personalini=None):
def get_ffdl_adapter(url,fileform="epub",personalini=None):
return adapters.getAdapter(get_ffdl_config(url,fileform,personalini),url)
@@ -181,10 +181,15 @@ class FimFictionNetSiteAdapter(BaseSiteAdapter):
self.setCoverImage(self.url,coverurl)
# the fimfic API gives bbcode for desc, not html.
# btw, bbcode honors newlines, html doesn't. change newlines to br tags.
self.setDescription(self.url,
bbcodeparser().parse(storyMetadata["description"]).html(doDeepCopy=False).replace('\r','').replace('\n','<br />'))
self.setDescription(self.url,soup.find("div", {"class":"description"}))
# if "description" in storyMetadata and storyMetadata["description"]:
# # the fimfic API gives bbcode for desc, not html.
# # btw, bbcode honors newlines, html doesn't. change newlines to br tags.
# self.setDescription(self.url,
# bbcodeparser().parse(storyMetadata["description"]).html(doDeepCopy=False).replace('\r','').replace('\n','<br />'))
# elif "short_description" in storyMetadata and storyMetadata["short_description"]:
# self.setDescription(self.url,
# bbcodeparser().parse(storyMetadata["short_description"]).html(doDeepCopy=False).replace('\r','').replace('\n','<br />'))
# Dates are in Unix time
# Take the publish date from the first chapter posted
@@ -100,8 +100,8 @@ class TwistingTheHellmouthSiteAdapter(BaseSiteAdapter):
if "Stories Published" not in d : #Member Account
logger.info("Failed to login to URL %s as %s" % (loginUrl,
params['penname']))
raise exceptions.FailedToLogin(url,params['penname'])
params['urealname']))
raise exceptions.FailedToLogin(self.url,params['urealname'])
return False
else:
return True
+2 -2
View File
@@ -57,7 +57,7 @@
<h3>Changes:</h3>
<p>
<ul>
<li>www.ficwad.com -&gt; ficwad.com. Ficwad changed their canonical domain. You'll need to change [www.ficwad.com] to [ficwad.com] in your configuration.</li>
<li>Change how fimfiction.net story descriptions are collected.</li>
</ul>
</p>
<p>
@@ -68,7 +68,7 @@
If you have any problems with this application, please
report them in
the <a href="http://groups.google.com/group/fanfic-downloader">FanFictionDownLoader Google Group</a>. The
<a href="http://4-4-44.fanfictiondownloader.appspot.com">Previous Version</a> is also available for you to use if necessary.
<a href="http://4-4-45.fanfictiondownloader.appspot.com">Previous Version</a> is also available for you to use if necessary.
</p>
<div id='error'>
{{ error_message }}