Remove 'Update EPUB Cover?' download up, add Cover New Only instead.

This commit is contained in:
Jim Miller 2022-09-02 18:15:09 -05:00
parent f99889d5e8
commit a1f3349da0
5 changed files with 35 additions and 37 deletions

View file

@ -278,7 +278,6 @@ class ConfigWidget(QWidget):
prefs['collision'] = save_collisions[unicode(self.basic_tab.collision.currentText())]
prefs['updatemeta'] = self.basic_tab.updatemeta.isChecked()
prefs['bgmeta'] = self.basic_tab.bgmeta.isChecked()
prefs['updateepubcover'] = self.basic_tab.updateepubcover.isChecked()
prefs['keeptags'] = self.basic_tab.keeptags.isChecked()
prefs['mark'] = self.basic_tab.mark.isChecked()
prefs['mark_success'] = self.basic_tab.mark_success.isChecked()
@ -333,6 +332,7 @@ class ConfigWidget(QWidget):
prefs['calibre_gen_cover'] = self.calibrecover_tab.calibre_gen_cover.isChecked()
prefs['plugin_gen_cover'] = self.calibrecover_tab.plugin_gen_cover.isChecked()
prefs['gcnewonly'] = self.calibrecover_tab.gcnewonly.isChecked()
prefs['covernewonly'] = self.calibrecover_tab.covernewonly.isChecked()
gc_site_settings = {}
for (site,combo) in six.iteritems(self.calibrecover_tab.gc_dropdowns):
val = unicode(combo.itemData(combo.currentIndex()))
@ -482,11 +482,6 @@ class BasicTab(QWidget):
self.updatemeta.setChecked(prefs['updatemeta'])
horz.addWidget(self.updatemeta)
self.updateepubcover = QCheckBox(_('Default Update EPUB Cover when Updating EPUB?'),self)
self.updateepubcover.setToolTip(_("On each download, FanFicFare offers an option to update the book cover image <i>inside</i> the EPUB from the web site when the EPUB is updated.<br />This sets whether that will default to on or off."))
self.updateepubcover.setChecked(prefs['updateepubcover'])
horz.addWidget(self.updateepubcover)
self.bgmeta = QCheckBox(_('Default Background Metadata?'),self)
self.bgmeta.setToolTip(_("On each download, FanFicFare offers an option to Collect Metadata from sites in a Background process.<br />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.<br />Only available for Update/Overwrite of existing books in case URL given isn't canonical or matches to existing book by Title/Author."))
self.bgmeta.setChecked(prefs['bgmeta'])
@ -997,7 +992,7 @@ class CalibreCoverTab(QWidget):
self.gencov_elements=[] ## used to disable/enable when gen
## cover is off/on. This is more
## about being a visual que than real
## about being a visual cue than real
## necessary function.
topl = self.l = QVBoxLayout()
@ -1018,6 +1013,12 @@ class CalibreCoverTab(QWidget):
self.l.addWidget(label)
self.l.addSpacing(5)
self.covernewonly = QCheckBox(_("Set Covers Only for New Books"),self)
self.covernewonly.setToolTip(_("Set or generate a Calibre cover only for new books, never for updated books."))
self.covernewonly.setChecked(prefs['covernewonly'])
self.l.addWidget(self.covernewonly)
self.l.addSpacing(5)
tooltip = _("Update Calibre book cover image from EPUB when Calibre metadata is updated.\n"
"Doesn't go looking for new images on 'Update Calibre Metadata Only'.\n"
"Cover in EPUB could be from site or previously injected into the EPUB.\n"

View file

@ -314,12 +314,6 @@ class AddNewDialog(SizePersistedDialog):
self.mergehide.append(self.updatemeta)
self.mergeupdateshow.append(self.updatemeta)
self.updateepubcover = QCheckBox(_('Update EPUB Cover?'),self)
self.updateepubcover.setToolTip(_('Update book cover image from site or defaults (if found) <i>inside</i> the EPUB when EPUB is updated.'))
self.updateepubcover.setChecked(self.prefs['updateepubcover'])
horz.addWidget(self.updateepubcover)
self.mergehide.append(self.updateepubcover)
self.gbl.addLayout(horz)
## bgmeta not used with Add New because of stories that change
@ -449,9 +443,6 @@ class AddNewDialog(SizePersistedDialog):
self.updatemeta.setChecked(self.prefs['updatemeta'])
# self.bgmeta.setChecked(self.prefs['bgmeta'])
if not self.merge:
self.updateepubcover.setChecked(self.prefs['updateepubcover'])
self.url.setText(url_list_text)
if url_list_text:
self.button_box.button(QDialogButtonBox.Ok).setFocus()
@ -489,14 +480,12 @@ class AddNewDialog(SizePersistedDialog):
'collision': unicode(self.collision.currentText()),
'updatemeta': self.updatemeta.isChecked(),
'bgmeta': False, # self.bgmeta.isChecked(),
'updateepubcover': self.updateepubcover.isChecked(),
'smarten_punctuation':self.prefs['smarten_punctuation'],
'do_wordcount':self.prefs['do_wordcount'],
}
if self.merge:
retval['fileform']=='epub'
retval['updateepubcover']=True
if self.newmerge:
retval['updatemeta']=True
retval['collision']=ADDNEW
@ -891,11 +880,6 @@ class UpdateExistingDialog(SizePersistedDialog):
self.updatemeta.setChecked(self.prefs['updatemeta'])
horz.addWidget(self.updatemeta)
self.updateepubcover = QCheckBox(_('Update EPUB Cover?'),self)
self.updateepubcover.setToolTip(_('Update book cover image from site or defaults (if found) <i>inside</i> the EPUB when EPUB is updated.'))
self.updateepubcover.setChecked(self.prefs['updateepubcover'])
horz.addWidget(self.updateepubcover)
self.bgmeta = QCheckBox(_('Background Metadata?'),self)
self.bgmeta.setToolTip(_("Collect Metadata from sites in a Background process.<br />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."))
self.bgmeta.setChecked(self.prefs['bgmeta'])
@ -947,7 +931,6 @@ class UpdateExistingDialog(SizePersistedDialog):
'collision': unicode(self.collision.currentText()),
'updatemeta': self.updatemeta.isChecked(),
'bgmeta': self.bgmeta.isChecked(),
'updateepubcover': self.updateepubcover.isChecked(),
'smarten_punctuation':self.prefs['smarten_punctuation'],
'do_wordcount':self.prefs['do_wordcount'],
}

View file

@ -25,7 +25,6 @@ from fanficfare.six import ensure_text, string_types, text_type as unicode
# profile.print_stats()
# return profiled_func
import logging
logger = logging.getLogger(__name__)
@ -116,6 +115,20 @@ from calibre_plugins.fanficfare_plugin.dialogs import (
save_collisions, question_dialog_all,
NotGoingToDownload, RejectUrlEntry )
from calibre.gui2.ui import get_gui
def do_updateepubcover_warning(func):
def profiled_func(*args, **kwargs):
if prefs['updateepubcover'] == False:
confirm('<p>'+_("FanFicFare's <i>Update EPUB Cover?</i> Download Options checkbox has been removed.")+'<\p>'+
'<p>'+_("It was a very old setting that didn't quite do what users expected.")+'<\p>'+
'<p>'+_("You are getting this warning because you had <i>Default Update EPUB Cover when Updating EPUB?</i> unchecked.")+'<\p>'+
'<p>'+_("To keep the same behavior, you can add these lines to your personal.ini:")+'<\p>'+
'<p><b>[overrides]<br>never_make_cover:true<\p>'+
'<p>'+_("Click <a href='https://github.com/JimmXinu/FanFicFare'>this link</a> for more information.")+'<\p>',
'fff_updateepubcover_removed', get_gui(), show_cancel_button=False, title=_("FanFicFare Warning"))
return func(*args, **kwargs)
return profiled_func
# because calibre immediately transforms html into zip and don't want
# to have an 'if html'. db.has_format is cool with the case mismatch,
# but if I'm doing it anyway...
@ -597,7 +610,6 @@ class FanFicFarePlugin(InterfaceAction):
'collision': extraoptions.get('collision',save_collisions[prefs['collision']]),
'updatemeta': prefs['updatemeta'],
'bgmeta': False,
'updateepubcover': prefs['updateepubcover'],
'smarten_punctuation':prefs['smarten_punctuation'],
'do_wordcount':prefs['do_wordcount'],
'add_tag':prefs['imaptags'],
@ -866,6 +878,7 @@ class FanFicFarePlugin(InterfaceAction):
if confirm(message,'fff_reject_non_fanfiction', self.gui):
self.gui.iactions['Remove Books'].delete_books()
@do_updateepubcover_warning
def add_dialog(self,
checked,
url_list_text=None,
@ -1235,8 +1248,7 @@ class FanFicFarePlugin(InterfaceAction):
options={'fileform':'epub',
'collision':ADDNEW,
'updatemeta':True,
'bgmeta':False,
'updateepubcover':True},
'bgmeta':False},
merge=False):
'''
Update passed in book dict with metadata from website and
@ -1258,7 +1270,6 @@ class FanFicFarePlugin(InterfaceAction):
collision = book['collision'] = options['collision']
updatemeta= options['updatemeta']
bgmeta= options['bgmeta']
updateepubcover= options['updateepubcover']
## Check reject list. Redundant with below for when story URL
## changes, but also kept here to avoid network hit in most
@ -1666,8 +1677,7 @@ class FanFicFarePlugin(InterfaceAction):
options={'fileform':'epub',
'collision':ADDNEW,
'updatemeta':True,
'bgmeta':False,
'updateepubcover':True},
'bgmeta':False},
merge=False):
'''
Called by LoopProgressDialog to start story downloads BG processing.
@ -1796,8 +1806,7 @@ class FanFicFarePlugin(InterfaceAction):
options={'fileform':'epub',
'collision':ADDNEW,
'updatemeta':True,
'bgmeta':False,
'updateepubcover':True},
'bgmeta':False},
errorcol_label=None,
lastcheckedcol_label=None):
@ -2464,6 +2473,11 @@ class FanFicFarePlugin(InterfaceAction):
db.commit()
# First, should cover generation happen at all?
# everything after here is cover processing.
if not book['added'] and prefs['covernewonly']:
return
logger.info("cover_image:%s"%book['all_metadata']['cover_image'])
# updating calibre cover from book.
if options['fileform'] == 'epub' and (
@ -2479,7 +2493,6 @@ class FanFicFarePlugin(InterfaceAction):
except:
logger.info("Failed to set_cover, skipping")
# First, should cover generation happen at all?
# logger.debug("book['all_metadata']['cover_image']:%s"%book['all_metadata']['cover_image'])
if (book['added'] or not prefs['gcnewonly']) and ( # skip if not new book and gcnewonly is True
prefs['gencalcover'] == SAVE_YES ## yes, always

View file

@ -222,8 +222,8 @@ def do_download_for_worker(book,options,merge,notification=lambda x,y:x):
options['fileform'],
options['personal.ini'])
if not options['updateepubcover'] and 'epub_for_update' in book and book['collision'] in (UPDATE, UPDATEALWAYS):
configuration.set("overrides","never_make_cover","true")
# if not options['updateepubcover'] and 'epub_for_update' in book and book['collision'] in (UPDATE, UPDATEALWAYS):
# configuration.set("overrides","never_make_cover","true")
# images only for epub, html, even if the user mistakenly
# turned it on else where.

View file

@ -120,7 +120,7 @@ default_prefs['reject_delete_default'] = True
default_prefs['updatemeta'] = True
default_prefs['bgmeta'] = False
default_prefs['updateepubcover'] = False
default_prefs['updateepubcover'] = True # removed in favor of always True Sep 2022
default_prefs['keeptags'] = False
default_prefs['suppressauthorsort'] = False
default_prefs['suppresstitlesort'] = False
@ -158,6 +158,7 @@ default_prefs['addtoreadlists'] = False
default_prefs['addtolistsonread'] = False
default_prefs['autounnew'] = False
default_prefs['covernewonly'] = False
default_prefs['updatecalcover'] = SAVE_YES_IF_IMG
default_prefs['gencalcover'] = SAVE_YES
default_prefs['updatecover'] = False