diff --git a/calibre-plugin/fff_plugin.py b/calibre-plugin/fff_plugin.py index 23ce65e0..98536bc1 100644 --- a/calibre-plugin/fff_plugin.py +++ b/calibre-plugin/fff_plugin.py @@ -111,7 +111,8 @@ from calibre_plugins.fanficfare_plugin.dialogs import ( LoopProgressDialog, UserPassDialog, AboutDialog, CollectURLDialog, RejectListDialog, EmailPassDialog, TOTPDialog, save_collisions, question_dialog_all, - NotGoingToDownload, RejectUrlEntry, IniTextDialog) + NotGoingToDownload, RejectUrlEntry, IniTextDialog, + EditTextDialog) # 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, @@ -429,7 +430,21 @@ class FanFicFarePlugin(InterfaceAction): self.reject_list_action = self.create_menu_item_ex(self.menu, _('Reject Selected Books'), unique_name='Reject Selected Books', image='rotate-right.png', triggered=self.reject_list_urls) + + self.add_reject_urls_action = self.create_menu_item_ex(self.menu, _('Add Reject URLs'), + image='rotate-right.png', + unique_name='Add Reject URLs', + shortcut_name=_('Add Reject URLs'), + triggered=self.add_reject_urls) + + self.edit_reject_urls_action = self.create_menu_item_ex(self.menu, _('Edit Reject URLs'), + image='rotate-right.png', + unique_name='Edit Reject URLs', + shortcut_name=_('Edit Reject URLs'), + triggered=self.edit_reject_urls) + self.menu.addSeparator() + self.editpersonalini_action = self.create_menu_item_ex(self.menu, _('Edit personal.ini'), image= 'config.png', unique_name='Edit personal.ini', @@ -447,7 +462,6 @@ class FanFicFarePlugin(InterfaceAction): unique_name='About FanFicFare', shortcut_name=_('About FanFicFare'), triggered=self.about) - self.gui.keyboard.finalize() def about(self,checked): @@ -483,6 +497,35 @@ class FanFicFarePlugin(InterfaceAction): prefs['personal.ini'] = get_resources('plugin-example.ini') prefs.save_to_db() + def add_reject_urls(self): + d = EditTextDialog(self.gui, + "http://example.com/story.php?sid=5,"+_("Reason why I rejected it")+"\nhttp://example.com/story.php?sid=6,"+_("Title by Author")+" - "+_("Reason why I rejected it"), + # icon=self.windowIcon(), + title=_("FanFicFare"), + label=_("Add Reject URLs. Use: http://...,note or http://...,title by author - note
Invalid story URLs will be ignored."), + tooltip=_("One URL per line:\nhttp://...,note\nhttp://...,title by author - note"), + rejectreasons=rejecturllist.get_reject_reasons(), + reasonslabel=_('Add this reason to all URLs added:'), + accept_storyurls=True, + save_size_name='fff:Add Reject List') + d.exec_() + if d.result() == d.Accepted: + rejecturllist.add_text(d.get_plain_text(),d.get_reason_text()) + + def edit_reject_urls(self): + with busy_cursor(): + d = RejectListDialog(self.gui, + rejecturllist.get_list(), + rejectreasons=rejecturllist.get_reject_reasons(), + header=_("Edit Reject URLs List"), + show_delete=False, + show_all_reasons=False) + d.exec_() + if d.result() != d.Accepted: + return + with busy_cursor(): + rejecturllist.add(d.get_reject_list(),clear=True) + def create_menu_item_ex(self, parent_menu, menu_text, image=None, tooltip=None, shortcut=None, triggered=None, is_checked=None, shortcut_name=None, unique_name=None):