diff --git a/calibre-plugin/jobs.py b/calibre-plugin/jobs.py index b962d9e2..de8e017e 100644 --- a/calibre-plugin/jobs.py +++ b/calibre-plugin/jobs.py @@ -193,7 +193,8 @@ def do_download_for_worker(book,options,notification=lambda x,y:x): adapter.oldcover, adapter.calibrebookmark, adapter.logfile, - adapter.oldchaptersmap) = get_update_data(book['epub_for_update'])[0:8] + adapter.oldchaptersmap, + adapter.oldchaptersdata) = get_update_data(book['epub_for_update'])[0:9] # dup handling from fff_plugin needed for anthology updates. if options['collision'] == UPDATE: diff --git a/fanficfare/adapters/base_adapter.py b/fanficfare/adapters/base_adapter.py index aebf330e..9375aca1 100644 --- a/fanficfare/adapters/base_adapter.py +++ b/fanficfare/adapters/base_adapter.py @@ -105,6 +105,7 @@ class BaseSiteAdapter(Configurable): self.chapterLast = None self.oldchapters = None self.oldchaptersmap = None + self.oldchaptersdata = None self.oldimgs = None self.oldcover = None # (data of existing cover html, data of existing cover image) self.calibrebookmark = None @@ -361,7 +362,7 @@ class BaseSiteAdapter(Configurable): self.getStoryMetadataOnly(get_cover=True) for index, (title,url) in enumerate(self.chapterUrls): - marknewchap = False + newchap = False if (self.chapterFirst!=None and index < self.chapterFirst) or \ (self.chapterLast!=None and index > self.chapterLast): self.story.addChapter(url, @@ -378,14 +379,21 @@ class BaseSiteAdapter(Configurable): data = self.utf8FromSoup(None, self.oldchapters[index], partial(cachedfetch,self._fetchUrlRaw,self.oldimgs)) + + newchap = (self.oldchaptersdata and + url in self.oldchaptersdata and ( + self.oldchaptersdata[url]['chapterorigtitle'] != + self.oldchaptersdata[url]['chaptertitle']) ) + if not data: data = self.getChapterText(url) # if configured and has existing chapters - marknewchap = (self.getConfig('mark_new_chapters')=='true' and self.oldchapters or self.oldchaptersmap) + newchap = (self.oldchapters or self.oldchaptersmap) + self.story.addChapter(url, removeEntities(title), removeEntities(data), - marknewchap) + newchap) self.storyDone = True # include image, but no cover from story, add default_cover_image cover. diff --git a/fanficfare/cli.py b/fanficfare/cli.py index f9ab6d3e..d1ecefd4 100644 --- a/fanficfare/cli.py +++ b/fanficfare/cli.py @@ -339,7 +339,8 @@ def do_download(arg, adapter.oldcover, adapter.calibrebookmark, adapter.logfile, - adapter.oldchaptersmap) = (get_update_data(output_filename))[0:8] + adapter.oldchaptersmap, + adapter.oldchaptersdata) = (get_update_data(output_filename))[0:9] print 'Do update - epub(%d) vs url(%d)' % (chaptercount, urlchaptercount) diff --git a/fanficfare/epubutils.py b/fanficfare/epubutils.py index 5f021113..45fb65de 100644 --- a/fanficfare/epubutils.py +++ b/fanficfare/epubutils.py @@ -267,8 +267,8 @@ def reset_orig_chapters_epub(inputio,outfile): origtocncx = tocncx # print("\n%s\n%s\n"%(chapterorigtitle,chaptertitle)) # changed = True - # data = data.replace(u'', - # u''+chapterorigtitle+u'') + data = data.replace(u'', + u'') data = data.replace(u'