commit python-fanficfare for openSUSE:Factory
Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-fanficfare for openSUSE:Factory checked in at 2022-10-25 11:20:04 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-fanficfare (Old) and /work/SRC/openSUSE:Factory/.python-fanficfare.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "python-fanficfare" Tue Oct 25 11:20:04 2022 rev:44 rq:1030937 version:4.17.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-fanficfare/python-fanficfare.changes 2022-09-20 19:24:16.906594179 +0200 +++ /work/SRC/openSUSE:Factory/.python-fanficfare.new.2275/python-fanficfare.changes 2022-10-25 11:20:29.182200339 +0200 @@ -1,0 +2,15 @@ +Mon Oct 24 17:22:25 UTC 2022 - Matej Cepl <mcepl@suse.com> + +- Update to 4.17.0: + - Update Translations + - Fix site name fanfiction.tenhawkpresents.ink + - Flaresolverr v3 beta using 'expiry' cookie key, was + 'expires'. + - Flaresolverr v3 beta doesn't have 'headers'?? + - adapter_adultfanfictionorg: Fixes for site changes. + - Disable Cancel during metadata update ProgBar. + - adapter_chosentwofanficcom: Site has several links to each + story in a series page. + - Fixes for add_category/genre_when_multi_category settings. + +------------------------------------------------------------------- Old: ---- FanFicFare-4.16.0.tar.gz _service _servicedata New: ---- FanFicFare-4.17.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-fanficfare.spec ++++++ --- /var/tmp/diff_new_pack.2Tct66/_old 2022-10-25 11:20:32.154206927 +0200 +++ /var/tmp/diff_new_pack.2Tct66/_new 2022-10-25 11:20:32.162206944 +0200 @@ -21,14 +21,13 @@ %define skip_python2 1 %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-fanficfare -Version: 4.16.0 +Version: 4.17.0 Release: 0 Summary: Tool for making eBooks from stories on fanfiction and other web sites License: GPL-3.0-only Group: Development/Languages/Python URL: https://github.com/JimmXinu/FanFicFare Source: https://github.com/JimmXinu/%{modname}/archive/v%{version}/%{modname}-%{version}.tar.gz -# Source: %%{modname}-%%{version}.tar.gz BuildRequires: %{python_module beautifulsoup4} BuildRequires: %{python_module chardet} BuildRequires: %{python_module cloudscraper} @@ -93,6 +92,7 @@ %license LICENSE %doc DESCRIPTION.rst README.md %python_alternative %{_bindir}/%{modnamedown} -%{python_sitelib}/* +%{python_sitelib}/%{modname}-%{version}*-info +%{python_sitelib}/%{modnamedown} %changelog ++++++ FanFicFare-4.16.0.tar.gz -> FanFicFare-4.17.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FanFicFare-4.16.0/calibre-plugin/__init__.py new/FanFicFare-4.17.0/calibre-plugin/__init__.py --- old/FanFicFare-4.16.0/calibre-plugin/__init__.py 2022-09-19 19:20:42.000000000 +0200 +++ new/FanFicFare-4.17.0/calibre-plugin/__init__.py 2022-10-18 18:47:27.000000000 +0200 @@ -33,7 +33,7 @@ from calibre.customize import InterfaceActionBase # pulled out from FanFicFareBase for saving in prefs.py -__version__ = (4, 16, 0) +__version__ = (4, 17, 0) ## Apparently the name for this class doesn't matter--it was still ## 'demo' for the first few versions. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FanFicFare-4.16.0/calibre-plugin/dialogs.py new/FanFicFare-4.17.0/calibre-plugin/dialogs.py --- old/FanFicFare-4.16.0/calibre-plugin/dialogs.py 2022-09-19 19:20:42.000000000 +0200 +++ new/FanFicFare-4.17.0/calibre-plugin/dialogs.py 2022-10-18 18:47:27.000000000 +0200 @@ -634,13 +634,15 @@ finish_function, init_label=_("Fetching metadata for stories..."), win_title=_("Downloading metadata for stories"), - status_prefix=_("Fetched metadata for")): + status_prefix=_("Fetched metadata for"), + disable_cancel=False): ld = _LoopProgressDialog(gui, book_list, foreach_function, init_label, win_title, - status_prefix) + status_prefix, + disable_cancel) # Mac OS X gets upset if the finish_function is called from inside # the real _LoopProgressDialog class. @@ -658,7 +660,8 @@ foreach_function, init_label=_("Fetching metadata for stories..."), win_title=_("Downloading metadata for stories"), - status_prefix=_("Fetched metadata for")): + status_prefix=_("Fetched metadata for"), + disable_cancel=False): QProgressDialog.__init__(self, init_label, _('Cancel'), 0, len(book_list), gui) @@ -677,6 +680,11 @@ self.setLabelText('%s %d / %d' % (self.status_prefix, self.i, len(self.book_list))) self.setValue(self.i) + if disable_cancel: + self.setCancelButton(None) + self.reject = self.disabled_reject + self.closeEvent = self.disabled_closeEvent + ## self.do_loop does QTimer.singleShot on self.do_loop also. ## A weird way to do a loop, but that was the example I had. ## 100 instead of 0 on the first go due to Win10(and later @@ -684,6 +692,15 @@ QTimer.singleShot(100, self.do_loop) self.exec_() + # used when disable_cancel = True + def disabled_reject(self): + pass + + # used when disable_cancel = True + def disabled_closeEvent(self, event): + if event.spontaneous(): + event.ignore() + def updateStatus(self): remaining_time_string = '' if self.show_est_time and self.i > -1: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FanFicFare-4.16.0/calibre-plugin/fff_plugin.py new/FanFicFare-4.17.0/calibre-plugin/fff_plugin.py --- old/FanFicFare-4.16.0/calibre-plugin/fff_plugin.py 2022-09-19 19:20:42.000000000 +0200 +++ new/FanFicFare-4.17.0/calibre-plugin/fff_plugin.py 2022-10-18 18:47:27.000000000 +0200 @@ -2139,7 +2139,8 @@ partial(self.update_books_finish, options=options), init_label=_("Updating calibre for FanFiction stories..."), win_title=_("Update calibre for FanFiction stories"), - status_prefix=_("Updated")) + status_prefix=_("Updated"), + disable_cancel=True) def update_error_column(self,payload): '''Update custom error column if configured.''' @@ -2155,7 +2156,8 @@ partial(self.update_books_finish, options=options), init_label=_("Updating calibre for BAD FanFiction stories..."), win_title=_("Update calibre for BAD FanFiction stories"), - status_prefix=_("Updated")) + status_prefix=_("Updated"), + disable_cancel=True) def update_error_column_loop(self,book,db=None,errorcol_label=None,lastcheckedcol_label=None): if book['calibre_id'] and errorcol_label: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FanFicFare-4.16.0/calibre-plugin/plugin-defaults.ini new/FanFicFare-4.17.0/calibre-plugin/plugin-defaults.ini --- old/FanFicFare-4.16.0/calibre-plugin/plugin-defaults.ini 2022-09-19 19:20:42.000000000 +0200 +++ new/FanFicFare-4.17.0/calibre-plugin/plugin-defaults.ini 2022-10-18 18:47:27.000000000 +0200 @@ -1761,7 +1761,7 @@ website_encodings:Windows-1252,utf8 -[fanfic.tenhawkpresents.ink] +[fanfiction.tenhawkpresents.ink] use_basic_cache:true ## Some sites require login (or login for some rated stories) The ## program can prompt you, or you can save it in config. In diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FanFicFare-4.16.0/calibre-plugin/translations/de.po new/FanFicFare-4.17.0/calibre-plugin/translations/de.po --- old/FanFicFare-4.16.0/calibre-plugin/translations/de.po 2022-09-19 19:20:42.000000000 +0200 +++ new/FanFicFare-4.17.0/calibre-plugin/translations/de.po 2022-10-18 18:47:27.000000000 +0200 @@ -2,6 +2,7 @@ # Copyright (C) YEAR ORGANIZATION # # Translators: +# Dustin Steiner, 2022 # Ettore Atalan <atalanttore@googlemail.com>, 2014-2016,2018,2020 # ILB, 2014-2017,2020-2022 # Johannes Sch��pp <mail@jschpp.de>, 2020 @@ -18,7 +19,7 @@ "Project-Id-Version: calibre-plugins\n" "POT-Creation-Date: 2022-07-06 11:14-0500\n" "PO-Revision-Date: 2014-06-19 22:55+0000\n" -"Last-Translator: ILB, 2014-2017,2020-2022\n" +"Last-Translator: Dustin Steiner, 2022\n" "Language-Team: German (http://www.transifex.com/calibre/calibre-plugins/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1572,7 +1573,7 @@ #: dialogs.py:1036 msgid "Are you sure you want to remove the selected %d books from the list?" -msgstr "Sind sie sicher, dass sie die ausgew��hlten B��cher von der Liste l��schen wollen?" +msgstr "Sind Sie sicher, dass Sie die %d ausgew��hlten B��cher von der Liste l��schen wollen?" #: dialogs.py:1062 msgid "Note" @@ -1588,7 +1589,7 @@ #: dialogs.py:1112 msgid "Are you sure you want to remove the %d selected URLs from the list?" -msgstr "Sind sie sicher, dass sie die %d ausgew��hlten URLs von der Liste l��schen m��chten?" +msgstr "Sind Sie sicher, dass Sie die %d ausgew��hlten URLs von der Liste l��schen m��chten?" #: dialogs.py:1130 msgid "List of Books to Reject" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FanFicFare-4.16.0/calibre-plugin/translations/ko.po new/FanFicFare-4.17.0/calibre-plugin/translations/ko.po --- old/FanFicFare-4.16.0/calibre-plugin/translations/ko.po 2022-09-19 19:20:42.000000000 +0200 +++ new/FanFicFare-4.17.0/calibre-plugin/translations/ko.po 2022-10-18 18:47:27.000000000 +0200 @@ -2,14 +2,14 @@ # Copyright (C) YEAR ORGANIZATION # # Translators: -# Junghee Lee <daemul72@gmail.com>, 2022 -# Junghee Lee <daemul72@gmail.com>, 2021 +# JungHee Lee <daemul72@gmail.com>, 2022 +# JungHee Lee <daemul72@gmail.com>, 2021 msgid "" msgstr "" "Project-Id-Version: calibre-plugins\n" "POT-Creation-Date: 2022-07-06 11:14-0500\n" "PO-Revision-Date: 2014-06-19 22:55+0000\n" -"Last-Translator: Junghee Lee <daemul72@gmail.com>, 2022\n" +"Last-Translator: JungHee Lee <daemul72@gmail.com>, 2022\n" "Language-Team: Korean (http://www.transifex.com/calibre/calibre-plugins/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FanFicFare-4.16.0/calibre-plugin/translations/pl.po new/FanFicFare-4.17.0/calibre-plugin/translations/pl.po --- old/FanFicFare-4.16.0/calibre-plugin/translations/pl.po 2022-09-19 19:20:42.000000000 +0200 +++ new/FanFicFare-4.17.0/calibre-plugin/translations/pl.po 2022-10-18 18:47:27.000000000 +0200 @@ -6,12 +6,13 @@ # Marcin Kozio�� <koziol.martin@gmail.com>, 2019-2020 # Ola Kleniewska <anyzeklove@gmail.com>, 2016 # Piotr Str��bski <strebski@gmail.com>, 2015 +# The Name <moje.konto+transifex@posteo.org>, 2022 msgid "" msgstr "" "Project-Id-Version: calibre-plugins\n" "POT-Creation-Date: 2022-07-06 11:14-0500\n" "PO-Revision-Date: 2014-06-19 22:55+0000\n" -"Last-Translator: Marcin Kozio�� <koziol.martin@gmail.com>, 2019-2020\n" +"Last-Translator: The Name <moje.konto+transifex@posteo.org>, 2022\n" "Language-Team: Polish (http://www.transifex.com/calibre/calibre-plugins/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -307,7 +308,7 @@ #: config.py:563 msgid "Success" -msgstr "" +msgstr "Sukces" #: config.py:564 msgid "Mark successfully downloaded or updated books." @@ -315,7 +316,7 @@ #: config.py:569 msgid "Failed" -msgstr "" +msgstr "Nie powiod��o si��" #: config.py:570 msgid "Mark failed downloaded or updated books." @@ -323,7 +324,7 @@ #: config.py:575 msgid "Chapter Error" -msgstr "" +msgstr "B����d Rozdzia��u" #: config.py:576 msgid "" @@ -1824,7 +1825,7 @@ #: fff_plugin.py:614 fff_plugin.py:1960 fff_plugin.py:2584 fff_plugin.py:2596 #: fff_plugin.py:2607 fff_plugin.py:2613 fff_plugin.py:2626 msgid "Warning" -msgstr "" +msgstr "Ostrze��enie" #: fff_plugin.py:622 msgid "(%d Story URLs Skipped, on Rejected URL List)" @@ -2231,7 +2232,7 @@ #: fff_plugin.py:1788 msgid "Info" -msgstr "" +msgstr "Informacja" #: fff_plugin.py:1830 msgid "Story Details:" @@ -2271,7 +2272,7 @@ #: fff_plugin.py:1964 msgid "FanFicFare: " -msgstr "" +msgstr "FanFicFare:" #: fff_plugin.py:1964 msgid "No Good Stories for Anthology" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FanFicFare-4.16.0/calibre-plugin/translations/uk.po new/FanFicFare-4.17.0/calibre-plugin/translations/uk.po --- old/FanFicFare-4.16.0/calibre-plugin/translations/uk.po 2022-09-19 19:20:42.000000000 +0200 +++ new/FanFicFare-4.17.0/calibre-plugin/translations/uk.po 2022-10-18 18:47:27.000000000 +0200 @@ -32,11 +32,11 @@ #: common_utils.py:250 msgid "Keyboard shortcuts" -msgstr "���������������������� ������������ ��������������" +msgstr "���������������������� ��������������������" #: common_utils.py:279 msgid "Prefs Viewer dialog" -msgstr "������������������������ ���������� ������������������" +msgstr "���������� ������������������ ����������������������" #: common_utils.py:280 msgid "Preferences for: " @@ -48,7 +48,7 @@ #: common_utils.py:313 msgid "Clear all settings for this plugin" -msgstr "���������������� ������ ������������������������ ������ ���������� ��������������" +msgstr "���������������� ������ ������������������������ ������ ���������� ��������������" #: common_utils.py:317 msgid "Edit" @@ -84,11 +84,11 @@ msgid "" "Any settings in other libraries or stored in a JSON file in your calibre " "plugins folder will not be touched." -msgstr "��������-������ ������������������������ �� ���������� ����������������������, ������ ������������������ �� ���������� JSON �� ���������� ���������� ���������������� ���� ������������ ��������������." +msgstr "��������-������ ������������������������ �� ���������� ���������������������� ������ ������������������ �� ���������� JSON �� ���������� �������� ���������������� calibre ���� ������������ ��������������." #: common_utils.py:363 common_utils.py:391 msgid "You must restart calibre afterwards." -msgstr "���������� ���������� ���� �������������� ������������������������������ Calibre." +msgstr "���������� ���������� ���� �������������� ������������������������������ calibre." #: common_utils.py:371 msgid "All settings for this plugin in this library have been saved." @@ -96,21 +96,21 @@ #: common_utils.py:372 common_utils.py:401 msgid "Please restart calibre now." -msgstr "��������-���������� ���������������������������� Calibre." +msgstr "�������� ���������� ���������������������������� Calibre." #: common_utils.py:374 common_utils.py:403 msgid "Restart calibre now" -msgstr "������������������������������ Calibre" +msgstr "������������������������������ calibre" #: common_utils.py:389 msgid "" "Are you sure you want to clear your settings in this library for this " "plugin?" -msgstr "���� ����������������, ���� �������������� ���������������� �������� ������������������������ �� ������ ���������������������� ������ ������������ ��������������?" +msgstr "���� ����������������, ���� �������������� ���������������� �������� ������������������������ �� ������ �������������������� ������ ���������� ��������������?" #: common_utils.py:400 msgid "All settings for this plugin in this library have been cleared." -msgstr "������ ������������������������ ������ ���������� �������������� �� ������ �������������������� �������� ��������������." +msgstr "������ ������������������������ ������ ���������� �������������� �� ������ �������������������� �������� ��������������." #: config.py:225 msgid "List of Supported Sites" @@ -138,7 +138,7 @@ #: config.py:267 msgid "Email Settings" -msgstr "������������������������ ����������" +msgstr "������������������ ����������" #: config.py:270 msgid "Other" @@ -250,7 +250,7 @@ #: config.py:516 config.py:688 msgid "Reject Without Confirmation?" -msgstr "������������������ ������ ��������������������������" +msgstr "������������������ ������ ��������������������������?" #: config.py:517 msgid "" @@ -365,7 +365,7 @@ #: config.py:616 msgid "Automatically Convert new/update books?" -msgstr "���������������������� ������������������������ ��������/������������������ ������������?" +msgstr "���������������������� �������������������������� ��������/���������������� ����������?" #: config.py:617 msgid "" @@ -380,11 +380,11 @@ #: config.py:625 msgid "Take URLs from Clipboard?" -msgstr "�������������������� URL-������������ �� ������������ ������������?" +msgstr "�������������������� ������������ �� ������������ ������������?" #: config.py:626 msgid "Prefill URLs from valid URLs in Clipboard when Adding New." -msgstr "������������������ �������������������� URL-���������� �� �������������� URL-���������� �� ������������ ������������ ������ ������������������ ����������." +msgstr "������������������ �������������������� ���������� �� ������������������ ���������� �� ������������ ������������ ������ ������������������ ����������." #: config.py:630 msgid "FanFicFare button opens menu?" @@ -398,7 +398,7 @@ #: config.py:635 msgid "Default to Update when books selected?" -msgstr "���� �������������������������� ����������������, �������� ���������� ������������?" +msgstr "������������ ��������������������, �������� ���������� ������������������?" #: config.py:636 msgid "" @@ -451,11 +451,11 @@ #: config.py:669 msgid "Reject List" -msgstr "������������ ����������������������" +msgstr "������������ ��������������������" #: config.py:673 msgid "Edit Reject URL List" -msgstr "�������������������������� ������������ �������������������� ����������������" +msgstr "�������������� ������������ ����������, ������ �������� ������������������" #: config.py:674 msgid "Edit list of URLs FanFicFare will automatically Reject." @@ -463,15 +463,15 @@ #: config.py:678 config.py:757 msgid "Add Reject URLs" -msgstr "������������ ������������������ ������������������" +msgstr "������������ ������������ ��������������������" #: config.py:679 msgid "Add additional URLs to Reject as text." -msgstr "������������ ������������������ ������������������ ���� ����������, ������ ���������������� ������������������ " +msgstr "������������ ������������������ ������������ ������ �������������������� ���� ����������." #: config.py:683 msgid "Edit Reject Reasons List" -msgstr "�������������������������� ������������ ������������ ������ ��������������������" +msgstr "�������������� ������������ ������������ ������ ��������������������" #: config.py:684 config.py:747 msgid "Customize the Reasons presented when Rejecting URLs" @@ -491,7 +491,7 @@ #: config.py:732 msgid "Edit Reject URLs List" -msgstr "�������������������������� ������������ �������������������� ����������������" +msgstr "�������������� ������������ ���������� ������������������������������������" #: config.py:745 msgid "Reject Reasons" @@ -603,11 +603,11 @@ #: config.py:873 msgid "Plugin Defaults" -msgstr "������������ ������������������������ ��������������" +msgstr "������������ ������������������������ ��������������" #: config.py:874 msgid "Plugin Defaults (%s) (Read-Only)" -msgstr "������������ ������������������������ �������������� (%s) (������������ ��������������������)" +msgstr "������������ ������������������������ �������������� (%s) (�������� ��������������)" #: config.py:885 msgid "View 'Safe' personal.ini" @@ -1113,13 +1113,13 @@ #: config.py:1565 msgid "Force Title into Title Sort?" -msgstr "������������������ ������������������������ ���������������� ���������� �� �������������������������� ��������?" +msgstr "������������������ ������������������������ ���������� ������ �������������������������� ���� ��������������?" #: config.py:1566 msgid "" "If checked, the title as given will be used for the Title Sort, too.\n" "If not checked, calibre will apply it's built in algorithm which makes 'The Title' sort as 'Title, The', etc." -msgstr "�������� ������������������ ������������������������, ���������� ���������� �������� ���������������������������������� ������ �������������������������� ��������.\n�������� ���� ����������������������, calibre �������� �������������������������� �������������������� �� ���������� ����������������, �������� ������������ ���������� 'The Title', ���� 'Title, The' �� ��.��." +msgstr "�������� ������������������ ������������������������, ���������� ���������� �������� ���������������������������������� ������ �������������������������� ���� ��������������.\n�������� ���� ����������������������, calibre �������� �������������������������� �������������������� �� ���������� ����������������, �������� �������������������� ���������� ��The Title�� ���� ��Title, The�� ��������." #: config.py:1569 msgid "Fix Title Case?" @@ -2417,7 +2417,7 @@ #: jobs.py:85 msgid "Downloading FanFiction Stories" -msgstr "������������������������ FanFiction ��������������" +msgstr "������������������������ ������������������ FanFiction" #: jobs.py:105 msgid "%(count)d of %(total)d stories finished downloading" @@ -2462,7 +2462,7 @@ #: prefs.py:27 msgid "Add New Book" -msgstr "������������ �������� ����������" +msgstr "������������ �������� ����������" #: prefs.py:28 msgid "Update EPUB if New Chapters" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FanFicFare-4.16.0/fanficfare/adapters/adapter_adultfanfictionorg.py new/FanFicFare-4.17.0/fanficfare/adapters/adapter_adultfanfictionorg.py --- old/FanFicFare-4.16.0/fanficfare/adapters/adapter_adultfanfictionorg.py 2022-09-19 19:20:42.000000000 +0200 +++ new/FanFicFare-4.17.0/fanficfare/adapters/adapter_adultfanfictionorg.py 2022-10-18 18:47:27.000000000 +0200 @@ -258,18 +258,23 @@ asoup = self.make_soup(adata) - ##Getting the number of pages - pages=asoup.find('div',{'class' : 'pagination'}).findAll('li')[-1].find('a') - if not pages == None: - pages = pages['href'].split('=')[-1] - else: - pages = 0 + ##Getting the number of author pages + pages = 0 + pagination=asoup.find('ul',{'class' : 'pagination'}) + if pagination: + pages = pagination.findAll('li')[-1].find('a') + if not pages == None: + pages = pages['href'].split('=')[-1] + else: + pages = 0 + storya = None ##If there is only 1 page of stories, check it to get the Metadata, if pages == 0: a = asoup.findAll('li') for lc2 in a: if lc2.find('a', href=re.compile(r'story.php\?no='+self.story.getMetadata('storyId')+"$")): + storya = lc2 break ## otherwise go through the pages else: @@ -293,6 +298,7 @@ for lc2 in a: if lc2.find('a', href=re.compile(r'story.php\?no='+self.story.getMetadata('storyId')+"$")): i=1 + storya = lc2 break page = page + 1 if page > int(pages): @@ -305,14 +311,14 @@ ##There is also a double <br/>, so we have to fix that, then remove the leading and trailing '-:-'. ##They are always in the same order. ## EDIT 09/26/2016: Had some trouble with unicode errors... so I had to put in the decode/encode parts to fix it - liMetadata = unicode(lc2).replace('\n','').replace('\r','').replace('\t',' ').replace(' ',' ').replace(' ',' ').replace(' ',' ') + liMetadata = unicode(storya).replace('\n','').replace('\r','').replace('\t',' ').replace(' ',' ').replace(' ',' ').replace(' ',' ') liMetadata = stripHTML(liMetadata.replace(r'<br/>','-:-').replace('<!-- <br /-->','-:-')) liMetadata = liMetadata.strip('-:-').strip('-:-').encode('utf-8') for i, value in enumerate(liMetadata.decode('utf-8').split('-:-')): if i == 0: # The value for the title has been manipulated, so may not be the same as gotten at the start. - # I'm going to use the href from the lc2 retrieved from the author's page to determine if it is correct. - if lc2.find('a', href=re.compile(r'story.php\?no='+self.story.getMetadata('storyId')+"$"))['href'] != url: + # I'm going to use the href from the storya retrieved from the author's page to determine if it is correct. + if storya.find('a', href=re.compile(r'story.php\?no='+self.story.getMetadata('storyId')+"$"))['href'] != url: raise exceptions.StoryDoesNotExist('Did not find story in author story list: {0}'.format(author_Url)) elif i == 1: ##Get the description diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FanFicFare-4.16.0/fanficfare/adapters/adapter_chosentwofanficcom.py new/FanFicFare-4.17.0/fanficfare/adapters/adapter_chosentwofanficcom.py --- old/FanFicFare-4.16.0/fanficfare/adapters/adapter_chosentwofanficcom.py 2022-09-19 19:20:42.000000000 +0200 +++ new/FanFicFare-4.17.0/fanficfare/adapters/adapter_chosentwofanficcom.py 2022-10-18 18:47:27.000000000 +0200 @@ -199,9 +199,9 @@ storyas = seriessoup.findAll('a', href=re.compile(r'viewstory.php\?sid=\d+')) i=1 for a in storyas: - # skip 'report this' and 'TOC' links - if 'contact.php' not in a['href'] and 'index' not in a['href']: - if a['href'] == ('viewstory.php?sid='+self.story.getMetadata('storyId')): + # this site has several links to each story. + if a.text == 'Latest Chapter': + if ('viewstory.php?sid='+self.story.getMetadata('storyId')) in a['href']: self.setSeries(series_name, i) self.story.setMetadata('seriesUrl',series_url) break diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FanFicFare-4.16.0/fanficfare/adapters/adapter_tenhawkpresents.py new/FanFicFare-4.17.0/fanficfare/adapters/adapter_tenhawkpresents.py --- old/FanFicFare-4.16.0/fanficfare/adapters/adapter_tenhawkpresents.py 2022-09-19 19:20:42.000000000 +0200 +++ new/FanFicFare-4.17.0/fanficfare/adapters/adapter_tenhawkpresents.py 2022-10-18 18:47:27.000000000 +0200 @@ -48,7 +48,7 @@ @staticmethod def getSiteDomain(): - return 'fanfic.tenhawkpresents.ink' + return 'fanfiction.tenhawkpresents.ink' @classmethod def getSiteExampleURLs(cls): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FanFicFare-4.16.0/fanficfare/cli.py new/FanFicFare-4.17.0/fanficfare/cli.py --- old/FanFicFare-4.16.0/fanficfare/cli.py 2022-09-19 19:20:42.000000000 +0200 +++ new/FanFicFare-4.17.0/fanficfare/cli.py 2022-10-18 18:47:27.000000000 +0200 @@ -28,7 +28,7 @@ import os, sys, platform -version="4.16.0" +version="4.17.0" os.environ['CURRENT_VERSION_ID']=version global_cache = 'global_cache' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FanFicFare-4.16.0/fanficfare/defaults.ini new/FanFicFare-4.17.0/fanficfare/defaults.ini --- old/FanFicFare-4.16.0/fanficfare/defaults.ini 2022-09-19 19:20:42.000000000 +0200 +++ new/FanFicFare-4.17.0/fanficfare/defaults.ini 2022-10-18 18:47:27.000000000 +0200 @@ -1782,7 +1782,7 @@ website_encodings:Windows-1252,utf8 -[fanfic.tenhawkpresents.ink] +[fanfiction.tenhawkpresents.ink] use_basic_cache:true ## Some sites require login (or login for some rated stories) The ## program can prompt you, or you can save it in config. In diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FanFicFare-4.16.0/fanficfare/flaresolverr_proxy.py new/FanFicFare-4.17.0/fanficfare/flaresolverr_proxy.py --- old/FanFicFare-4.16.0/fanficfare/flaresolverr_proxy.py 2022-09-19 19:20:42.000000000 +0200 +++ new/FanFicFare-4.17.0/fanficfare/flaresolverr_proxy.py 2022-10-18 18:47:27.000000000 +0200 @@ -131,7 +131,9 @@ if data is None: # Without download (or with FlareSolverr v2), don't # need base64 decode, and image downloads won't work. - if 'image' in resp.json['solution']['headers']['content-type']: + if 'headers' in resp.json['solution'] and \ + 'content-type' in resp.json['solution']['headers'] and \ + 'image' in resp.json['solution']['headers']['content-type']: raise exceptions.HTTPErrorFFF( url, 428, # 404 & 410 trip StoryDoesNotExist @@ -183,12 +185,13 @@ ## 30000000000 == 2920-08-30 05:20:00. If 900 years isn't ## enough, somebody can fix it then. ## (current global_cookie/ - # logger.debug(c['expires']) - if c['expires'] > 30000000000: - c['expires'] = 30000000000 + expireKey = 'expires' if 'expires' in c else 'expiry' + logger.debug("expireKey:%s"%expireKey) + if c[expireKey] > 30000000000: + c[expireKey] = 30000000000 # logger.debug(c['name']) # import datetime - # logger.debug(datetime.datetime.utcfromtimestamp(c['expires'])) + # logger.debug(datetime.datetime.utcfromtimestamp(c[expireKey])) retval.append(Cookie(0, # version c['name'], @@ -201,8 +204,8 @@ c['path'], c['path'] == None or c['path'] == '', # path_specified, c['secure'], - c['expires'], - c['expires'] == -1, # discard + c[expireKey], + c[expireKey] == -1, # discard None, # comment, None, # comment_url, {}, # rest diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FanFicFare-4.16.0/fanficfare/story.py new/FanFicFare-4.17.0/fanficfare/story.py --- old/FanFicFare-4.16.0/fanficfare/story.py 2022-09-19 19:20:42.000000000 +0200 +++ new/FanFicFare-4.17.0/fanficfare/story.py 2022-10-18 18:47:27.000000000 +0200 @@ -1079,14 +1079,16 @@ ## there's more than one category value. Does not work ## consistently well if you try to include_in_ chain genre ## back into category--breaks with fandoms sites like AO3 - if listname == 'genre' and self.getConfig('add_genre_when_multi_category') and len(self.getList('category', - removeallentities=False, - # to avoid inf loops if genre/cat substs - includelist=includelist+[listname], - doreplacements=False, - skip_cache=True, - seen_list=seen_list - )) > 1: + if( listname == 'genre' and self.getConfig('add_genre_when_multi_category') + and len(self.getList('category', + removeallentities=False, + # to avoid inf loops if genre/cat substs + includelist=includelist+[listname], + doreplacements=False, + skip_cache=True, + seen_list=seen_list + )) > 1 + and self.getConfig('add_genre_when_multi_category') not in retlist ): retlist.append(self.getConfig('add_genre_when_multi_category')) if retlist: @@ -1111,15 +1113,24 @@ # remove dups and sort. retlist = sorted(list(set(retlist))) - ## Add value of add_genre_when_multi_category to - ## category if there's more than one category - ## value (before this, obviously). Applied - ## *after* doReplacements. For normalization - ## crusaders who want Crossover as a category - ## instead of genre. Moved after dedup'ing so - ## consolidated category values don't count. - if listname == 'category' and self.getConfig('add_category_when_multi_category') and len(retlist) > 1: - retlist.append(self.getConfig('add_category_when_multi_category')) + ## Add value of add_genre_when_multi_category to + ## category if there's more than one category + ## value (before this, obviously). Applied + ## *after* doReplacements. For normalization + ## crusaders who want Crossover as a category + ## instead of genre. Moved after dedup'ing so + ## consolidated category values don't count. + if( listname == 'category' + and self.getConfig('add_category_when_multi_category') + and len(retlist) > 1 + and self.getConfig('add_category_when_multi_category') not in retlist ): + retlist.append(self.getConfig('add_category_when_multi_category')) + ## same sort as above, but has to be after due to + ## changing list. unique filter not needed: 'not + ## in retlist' check + if not (listname in ('author','authorUrl','authorId') or self.getConfig('keep_in_order_'+listname)): + retlist = sorted(list(set(retlist))) + else: retlist = [] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FanFicFare-4.16.0/setup.py new/FanFicFare-4.17.0/setup.py --- old/FanFicFare-4.16.0/setup.py 2022-09-19 19:20:42.000000000 +0200 +++ new/FanFicFare-4.17.0/setup.py 2022-10-18 18:47:27.000000000 +0200 @@ -26,7 +26,7 @@ name=package_name, # Versions should comply with PEP440. - version="4.16.0", + version="4.17.0", description='A tool for downloading fanfiction to eBook formats', long_description=long_description,
participants (1)
-
Source-Sync