Compare commits

...
5 changed files with 19 additions and 12 deletions
+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, 5, 40)
version = (1, 5, 42)
minimum_calibre_version = (0, 8, 30)
#: This field defines the GUI plugin class that contains all the code
+1 -2
View File
@@ -779,11 +779,10 @@ make_firstimage_cover:true
bad_list = filter(lambda x : x['calibre_id'] and not x['good'], book_list)
total_bad = len(bad_list)
self.gui.status_bar.show_message(_('Adding/Updating %s BAD books.'%total_bad))
if total_bad > 0:
custom_columns = self.gui.library_view.model().custom_columns
if prefs['errorcol'] != '' and prefs['errorcol'] in custom_columns:
self.gui.status_bar.show_message(_('Adding/Updating %s BAD books.'%total_bad))
label = custom_columns[prefs['errorcol']]['label']
print("errorcol label:%s"%label)
## if error column and all bad.
@@ -182,8 +182,9 @@ class FanFictionNetSiteAdapter(BaseSiteAdapter):
self.story.extendList('genre',genrelist)
metalist=metalist[1:]
donechars = False
while len(metalist) > 0:
if metalist[0].startswith('Reviews') or metalist[0].startswith('Chapters') or metalist[0].startswith('Status'):
if metalist[0].startswith('Reviews') or metalist[0].startswith('Chapters') or metalist[0].startswith('Status') or metalist[0].startswith('id:'):
pass
elif metalist[0].startswith('Updated'):
self.story.setMetadata('dateUpdated',makeDate(metalist[0].split(':')[1].strip(), '%m-%d-%y'))
@@ -191,9 +192,9 @@ class FanFictionNetSiteAdapter(BaseSiteAdapter):
self.story.setMetadata('datePublished',makeDate(metalist[0].split(':')[1].strip(), '%m-%d-%y'))
elif metalist[0].startswith('Words'):
self.story.setMetadata('numWords',metalist[0].split(':')[1].strip())
pass
else:
elif not donechars:
self.story.extendList('characters',metalist[0].split('&'))
donechars = True
metalist=metalist[1:]
# next might be characters, otherwise Reviews, Updated, Published, Words
@@ -190,12 +190,19 @@ class TheHexFilesNetAdapter(BaseSiteAdapter):
logging.debug('Getting chapter text from: %s' % url)
soup = bs.BeautifulStoneSoup(self._fetchUrl(url),
selfClosingTags=('br','hr')) # otherwise soup eats the br/hr tags.
for a in soup.findAll('table'):
a.extract()
selfClosingTags=('br','hr','img')) # otherwise soup eats the br/hr tags.
if None == soup:
raise exceptions.FailedToDownload("Error downloading Chapter: %s! Missing required element!" % url)
# Ugh. chapter html doesn't haven't anything useful around it to demarcate.
for a in soup.findAll('table'):
a.extract()
for a in soup.findAll('head'):
a.extract()
html = soup.find('html')
html.name='div'
return self.utf8FromSoup(url,soup)
+2 -2
View File
@@ -160,9 +160,9 @@ class BaseSiteAdapter(Configurable):
def _fetchUrlRaw(self, url, parameters=None):
if parameters != None:
return self.opener.open(url,urllib.urlencode(parameters)).read()
return self.opener.open(url.replace(' ','%20'),urllib.urlencode(parameters)).read()
else:
return self.opener.open(url).read()
return self.opener.open(url.replace(' ','%20')).read()
# parameters is a dict()
def _fetchUrl(self, url, parameters=None):