From 6759803ccdb6bfaa43066d560ef3f2cb69711625 Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Sun, 4 Sep 2022 16:36:55 -0500 Subject: [PATCH] Add force_cover_image setting. --- fanficfare/adapters/base_adapter.py | 30 ++++++++++++++++++----------- fanficfare/configurable.py | 1 + fanficfare/writers/writer_epub.py | 3 ++- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/fanficfare/adapters/base_adapter.py b/fanficfare/adapters/base_adapter.py index a3df803a..6bd764e0 100644 --- a/fanficfare/adapters/base_adapter.py +++ b/fanficfare/adapters/base_adapter.py @@ -279,17 +279,25 @@ class BaseSiteAdapter(Requestable): self.storyDone = True # include image, but no cover from story, add default_cover_image cover. - if self.getConfig('include_images') and \ - not self.story.cover and \ - self.getConfig('default_cover_image'): - logger.debug('default_cover_image') - (src,longdesc) = self.story.addImgUrl(None, - self.story.formatFileName(self.getConfig('default_cover_image'), - self.getConfig('allow_unsafe_filename')), - self.get_request_raw, - cover=True) - if src and src != 'failedtoload': - self.story.setMetadata('cover_image','default') + if self.getConfig('include_images'): + cover_image_url = None + if self.getConfig('force_cover_image'): + cover_image_type = 'force' + cover_image_url = self.getConfig('force_cover_image') + logger.debug('force_cover_image') + elif not self.story.cover and \ + self.getConfig('default_cover_image'): + cover_image_type = 'default' + cover_image_url = self.getConfig('default_cover_image') + logger.debug('default_cover_image') + if cover_image_url: + (src,longdesc) = self.story.addImgUrl(None, + self.story.formatFileName(cover_image_url, + self.getConfig('allow_unsafe_filename')), + self.get_request_raw, + cover=True) + if src and src != 'failedtoload': + self.story.setMetadata('cover_image',cover_image_type) # copy oldcover tuple to story. self.story.oldcover = self.oldcover diff --git a/fanficfare/configurable.py b/fanficfare/configurable.py index 5fcafae8..c32dad2d 100644 --- a/fanficfare/configurable.py +++ b/fanficfare/configurable.py @@ -377,6 +377,7 @@ def get_valid_keywords(): 'datePublished_format', 'dateUpdated_format', 'default_cover_image', + 'force_cover_image', 'description_limit', 'do_update_hook', 'use_archived_author', diff --git a/fanficfare/writers/writer_epub.py b/fanficfare/writers/writer_epub.py index 2a99170b..69372c5e 100644 --- a/fanficfare/writers/writer_epub.py +++ b/fanficfare/writers/writer_epub.py @@ -304,7 +304,8 @@ div { margin: 0pt; padding: 0pt; } def writeStoryImpl(self, out): if self.story.oldcover and \ - ( self.getConfig('always_use_existing_cover') or not self.story.cover ): + ( (self.getConfig('always_use_existing_cover') and + self.story.getMetadata('cover_image') != 'force' ) or not self.story.cover ): logger.debug("use old cover always_use_existing_cover:%s"%self.getConfig('always_use_existing_cover')) self.use_oldcover = True self.story.setMetadata('cover_image','old')