|
|
#11431 | |
|
Junior Member
![]() Posts: 5
Karma: 10
Join Date: Feb 2024
Device: Thinkpad laptop T480
|
Quote:
|
|
|
|
|
|
|
#11432 |
|
Plugin Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 7,136
Karma: 5005503
Join Date: Dec 2011
Location: Midwest USA
Device: Kobo Clara Colour running KOReader
|
You're on the last released version. Current test version is fixed for this.
|
|
|
|
| Advert | |
|
|
|
|
#11433 |
|
Plugin Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 7,136
Karma: 5005503
Join Date: Dec 2011
Location: Midwest USA
Device: Kobo Clara Colour running KOReader
|
New Test Version Posted
2025-11-02 - writer_epub: Only do svg check for epub3 So people using epub2 (the default) don't pay the extra processing penalty. |
|
|
|
|
|
#11434 | |
|
Junior Member
![]() Posts: 5
Karma: 10
Join Date: Feb 2024
Device: Thinkpad laptop T480
|
Quote:
calibre 8.13 embedded-python: True Windows-10-10.0.26100-SP0 Windows ('64bit', 'WindowsPE') ('Windows', '10', '10.0.26100') Python 3.11.14 Windows: ('10', '10.0.26100', 'SP0', 'Multiprocessor Free') Interface language: None EXE path: C:\Program Files\Calibre2\calibre.exe Successfully initialized third party plugins: FanFicFare (4, 50, 0) Traceback (most recent call last): File "calibre_plugins.fanficfare_plugin.fff_plugin" , line 712, in get_urls_from_page_menu File "calibre_plugins.fanficfare_plugin.fff_plugin" , line 735, in get_urls_from_page File "C:\Users\Robin\AppData\Roaming\calibre\plugins\Fa nFicFare.zip\fanficfare\geturls.py", line 44, in get_urls_from_page File "C:\Users\Robin\AppData\Roaming\calibre\plugins\Fa nFicFare.zip\fanficfare\adapters\base_adapter.py", line 504, in get_urls_from_page File "C:\Users\Robin\AppData\Roaming\calibre\plugins\Fa nFicFare.zip\fanficfare\adapters\base_otw_adapter. py", line 688, in get_series_from_page File "C:\Users\Robin\AppData\Roaming\calibre\plugins\Fa nFicFare.zip\fanficfare\adapters\base_otw_adapter. py", line 688, in <listcomp> File "bs4\element.py", line 1573, in __getitem__ KeyError: 'href' |
|
|
|
|
|
|
#11435 | |
|
Plugin Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 7,136
Karma: 5005503
Join Date: Dec 2011
Location: Midwest USA
Device: Kobo Clara Colour running KOReader
|
Quote:
The posted test version, 4.50.4, has that fix already. See link in my signature or see the second post of the thread. If you are unable or unwilling to download and install the test version, you will have to wait until the next release. We're a little off the regular schedule right now, so that may be a bit yet. I want to give the epub output changes some time for testing before releasing again. |
|
|
|
|
| Advert | |
|
|
|
|
#11436 | |
|
Junior Member
![]() Posts: 5
Karma: 10
Join Date: Feb 2024
Device: Thinkpad laptop T480
|
Quote:
|
|
|
|
|
|
|
#11437 | |
|
Member
![]() Posts: 11
Karma: 10
Join Date: May 2025
Device: none
|
Quote:
). I did notice one small issue: the manifest item for the actual cover image loses properties="cover-image" during update. This happens with both SVG and non-SVG covers. Since epub 2 fallbacks are being added (which is a bonus as far as I'm concerned!), thumbnails are still showing fine. But I’m worried that without the epub 3 cover property they might be a little flaky. I think Apple Books in particular suffers from the curse of the disappearing thumbnail (ask me how I know). Would it be possible for FFF to keep or re-add properties="cover-image" on the cover image item during update? *Minor technical note: I also noticed that the update process removes the calibre prefix from the package header. This triggers an 'Undeclared prefix' error in EPUBCheck. From my understanding, there's no real functional impact, but just wanted to mention it. |
|
|
|
|
|
|
#11438 | ||
|
Plugin Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 7,136
Karma: 5005503
Join Date: Dec 2011
Location: Midwest USA
Device: Kobo Clara Colour running KOReader
|
New Test Version Posted
2025-11-02 - writer_epub: Only do svg check for epub3 - writer_epub: More epub3 - prefix & prop cover-image - Don't include default_cover_image with use_old_cover with a different name. Quote:
Quote:
While testing these changes, I also found that if you had both default_cover_image and use_old_cover set, and injected a cover (changing the cover name), FFF was still downloading and including the default_cover_image, just without anything referring to it. |
||
|
|
|
|
|
#11439 |
|
Junior Member
![]() Posts: 4
Karma: 10
Join Date: Nov 2025
Device: Kindle Paperwhite
|
AO3 403 error
Hi,
first off, thank you a LOT for your work on this. It's fantastic! So, for the past... at least four days, I've been getting consistent 403 errors whenever I tried to update or download anything from AO3 via the plugin. Doesn't matter if the story is adult, locked, or publicly accessible, or even whether it's an update or an entirely new download that's not in my library yet. I've been on version 4.50.0 for the most of that. Installed 4.50.5 just now and am still seeing the same response. The funny thing is, I installed the CLI via pip, and that has been just fine (at least downloading fresh, since I don't think that integrates with Calibre?) with one of the story URLs from AO3. Which is telling me it's version 4.50.0, btw. I copied the personal.ini from Calibre to test the CLI, so I know that part is all the same. I've also run Calibre in debug mode, will drop the stack trace from that down here along with the salient bits from my personal.ini. Any help or advice you could provide would be great! personal.ini: Code:
[defaults] is_adult:true [epub] include_images:true make_firstimage_cover:false [archiveofourown.org] always_login:true username:XXXXXXXX password:XXXXXXXX collect_series:true Code:
FFF: DEBUG: 2025-11-03 10:18:14,677: configurable.py(643): config site:test1.com
FFF: DEBUG: 2025-11-03 10:18:23,366: calibre_plugins.fanficfare_plugin.fff_plugin(1163): FanFicFare v4.50.0
FFF: DEBUG: 2025-11-03 10:18:23,469: configurable.py(643): config site:archiveofourown.org
FFF: DEBUG: 2025-11-03 10:18:23,484: configurable.py(1110): use_browser_cache:False
FFF: DEBUG: 2025-11-03 10:18:23,485: configurable.py(1131): use_basic_cache:False
FFF: INFO: 2025-11-03 10:18:23,485: base_otw_adapter.py(193): url: https://archiveofourown.org/works/71694856/navigate?view_adult=true
FFF: INFO: 2025-11-03 10:18:23,485: base_otw_adapter.py(194): metaurl: https://archiveofourown.org/works/71694856?view_adult=true
FFF: DEBUG: 2025-11-03 10:18:23,486: fetcher_requests.py(114):
---------- REQ (GET) RequestsFetcher
https://archiveofourown.org/works/71694856/navigate?view_adult=true
FFF: DEBUG: 2025-11-03 10:18:23,588: fetcher_requests.py(127): response code:403
FFF: ERROR: 2025-11-03 10:18:23,589: calibre_plugins.fanficfare_plugin.dialogs(791): Exception: {'title': 'Ionic Bonds', 'author_sort': 'Tales_of_Reqine', 'author': ['Tales_of_Reqine'], 'comments': '', 'good': False, 'status': 'Error', 'showerror': True, 'calibre_id': 693, 'begin': None, 'end': None, 'comment': "HTTP Error in FFF '403 Client Error: Forbidden for url: https://archiveofourown.org/works/71694856/navigate?view_adult=true'(403)", 'url': 'https://archiveofourown.org/works/71694856', 'site': 'archiveofourown.org', 'series': '', 'added': False, 'pubdate': None, 'publisher': 'archiveofourown.org', 'listorder': 0, 'collision': 'Update EPUB if New Chapters'}:HTTP Error in FFF '403 Client Error: Forbidden for url: https://archiveofourown.org/works/71694856/navigate?view_adult=true'(403)
Traceback (most recent call last):
File "$HOME/.config/calibre/plugins/FanFicFare.zip/fanficfare/fetchers/fetcher_requests.py", line 128, in request
resp.raise_for_status() # raises RequestsHTTPError if error code.
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/requests/models.py", line 1021, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://archiveofourown.org/works/71694856/navigate?view_adult=true
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "calibre_plugins.fanficfare_plugin.dialogs", line 778, in do_loop
self.foreach_function(book)
File "calibre_plugins.fanficfare_plugin.fff_plugin", line 1376, in prep_download_loop
story = self.get_story_metadata_only(adapter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "calibre_plugins.fanficfare_plugin.fff_plugin", line 1249, in get_story_metadata_only
adapter.getStoryMetadataOnly(get_cover=False)
File "$HOME/.config/calibre/plugins/FanFicFare.zip/fanficfare/adapters/base_adapter.py", line 368, in getStoryMetadataOnly
self.doExtractChapterUrlsAndMetadata(get_cover=get_cover)
File "$HOME/.config/calibre/plugins/FanFicFare.zip/fanficfare/adapters/base_adapter.py", line 472, in doExtractChapterUrlsAndMetadata
return self.extractChapterUrlsAndMetadata()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "$HOME/.config/calibre/plugins/FanFicFare.zip/fanficfare/adapters/base_otw_adapter.py", line 196, in extractChapterUrlsAndMetadata
data = self.get_request(url)
^^^^^^^^^^^^^^^^^^^^^
File "$HOME/.config/calibre/plugins/FanFicFare.zip/fanficfare/requestable.py", line 122, in get_request
return self.get_request_redirected(self.mod_url_request(url),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "$HOME/.config/calibre/plugins/FanFicFare.zip/fanficfare/requestable.py", line 114, in get_request_redirected
(data,rurl) = self.configuration.get_fetcher().get_request_redirected(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "$HOME/.config/calibre/plugins/FanFicFare.zip/fanficfare/fetchers/base_fetcher.py", line 137, in get_request_redirected
fetchresp = self.do_request('GET',
^^^^^^^^^^^^^^^^^^^^^^
File "$HOME/.config/calibre/plugins/FanFicFare.zip/fanficfare/fetchers/decorators.py", line 107, in fetcher_do_request
fetchresp = chainfn(
^^^^^^^^
File "$HOME/.config/calibre/plugins/FanFicFare.zip/fanficfare/fetchers/base_fetcher.py", line 109, in do_request
fetchresp = self.request(method,url,
^^^^^^^^^^^^^^^^^^^^^^^^
File "$HOME/.config/calibre/plugins/FanFicFare.zip/fanficfare/fetchers/fetcher_requests.py", line 149, in request
raise exceptions.HTTPErrorFFF(
fanficfare.exceptions.HTTPErrorFFF: HTTP Error in FFF '403 Client Error: Forbidden for url: https://archiveofourown.org/works/71694856/navigate?view_adult=true'(403)
Also, just for the heck of it, I tried to downgrade to calibre plugin 4.49.0, but got the same 403. For comparison, here's the debug output using the FFF CLI version 4.50.0: Code:
FFF: DEBUG: 2025-11-03 10:43:46,368: cli.py(230): OS Version:Linux-6.8.0-86-generic-x86_64-with-glibc2.39 FFF: DEBUG: 2025-11-03 10:43:46,368: cli.py(231): Python Version:3.14.0 (main, Oct 7 2025, 09:34:52) [GCC 12.3.0] FFF: DEBUG: 2025-11-03 10:43:46,368: cli.py(232): FFF Version:4.50.0 FFF: DEBUG: 2025-11-03 10:43:46,368: configurable.py(643): config site:archiveofourown.org FFF: DEBUG: 2025-11-03 10:43:46,396: configurable.py(1110): use_browser_cache: FFF: DEBUG: 2025-11-03 10:43:46,396: configurable.py(1131): use_basic_cache:true You have include_images enabled, but PIL/Pillow (Python Image Library) isn't found. Images will be included full size in original format. Continue? (y/n)? y FFF: INFO: 2025-11-03 10:43:52,600: base_otw_adapter.py(193): url: https://archiveofourown.org/works/71694856/navigate?view_adult=true FFF: INFO: 2025-11-03 10:43:52,600: base_otw_adapter.py(194): metaurl: https://archiveofourown.org/works/71694856?view_adult=true FFF: DEBUG: 2025-11-03 10:43:52,602: cache_basic.py(117): ========== MISS (GET) BasicCache https://archiveofourown.org/works/71694856/navigate?view_adult=true FFF: DEBUG: 2025-11-03 10:43:52,602: fetcher_requests.py(114): ---------- REQ (GET) RequestsFetcher https://archiveofourown.org/works/71694856/navigate?view_adult=true FFF: DEBUG: 2025-11-03 10:43:52,845: fetcher_requests.py(127): response code:200 FFF: DEBUG: 2025-11-03 10:43:52,845: decorators.py(118): fromcache:False FFF: DEBUG: 2025-11-03 10:43:52,846: decorators.py(129): random sleep(2.00-6.00):3.13 FFF: DEBUG: 2025-11-03 10:43:55,976: requestable.py(55): Encoding:utf8 FFF: DEBUG: 2025-11-03 10:43:55,977: cache_basic.py(117): ========== MISS (GET) BasicCache https://archiveofourown.org/works/71694856?view_adult=true FFF: DEBUG: 2025-11-03 10:43:55,978: fetcher_requests.py(114): ---------- REQ (GET) RequestsFetcher https://archiveofourown.org/works/71694856?view_adult=true FFF: DEBUG: 2025-11-03 10:43:56,143: fetcher_requests.py(127): response code:200 FFF: DEBUG: 2025-11-03 10:43:56,143: decorators.py(118): fromcache:False FFF: DEBUG: 2025-11-03 10:43:56,144: decorators.py(129): random sleep(2.00-6.00):2.92 FFF: DEBUG: 2025-11-03 10:43:59,064: requestable.py(55): Encoding:utf8 FFF: DEBUG: 2025-11-03 10:43:59,066: cache_basic.py(117): ========== MISS (GET) BasicCache https://archiveofourown.org/token_dispenser.json FFF: DEBUG: 2025-11-03 10:43:59,066: fetcher_requests.py(114): ---------- REQ (GET) RequestsFetcher https://archiveofourown.org/token_dispenser.json FFF: DEBUG: 2025-11-03 10:43:59,138: fetcher_requests.py(127): response code:200 FFF: DEBUG: 2025-11-03 10:43:59,138: decorators.py(118): fromcache:False FFF: DEBUG: 2025-11-03 10:43:59,139: decorators.py(129): random sleep(2.00-6.00):2.43 FFF: DEBUG: 2025-11-03 10:44:01,573: requestable.py(55): Encoding:utf8 FFF: INFO: 2025-11-03 10:44:01,574: base_otw_adapter.py(138): Will now login to URL (https://archiveofourown.org/users/login) as (XXXXXXX) FFF: DEBUG: 2025-11-03 10:44:01,574: cache_basic.py(117): ========== MISS (POST) BasicCache https://archiveofourown.org/users/login FFF: DEBUG: 2025-11-03 10:44:01,575: fetcher_requests.py(114): ---------- REQ (POST) RequestsFetcher https://archiveofourown.org/users/login FFF: DEBUG: 2025-11-03 10:44:03,178: fetcher_requests.py(127): response code:200 FFF: DEBUG: 2025-11-03 10:44:03,178: decorators.py(118): fromcache:False FFF: DEBUG: 2025-11-03 10:44:03,179: decorators.py(129): random sleep(2.00-6.00):4.45 FFF: DEBUG: 2025-11-03 10:44:07,626: requestable.py(55): Encoding:utf8 FFF: DEBUG: 2025-11-03 10:44:07,627: cache_basic.py(117): ========== MISS (GET) BasicCache https://archiveofourown.org/works/71694856/navigate?view_adult=true FFF: DEBUG: 2025-11-03 10:44:07,628: fetcher_requests.py(114): ---------- REQ (GET) RequestsFetcher https://archiveofourown.org/works/71694856/navigate?view_adult=true FFF: DEBUG: 2025-11-03 10:44:07,735: fetcher_requests.py(127): response code:200 FFF: DEBUG: 2025-11-03 10:44:07,735: decorators.py(118): fromcache:False FFF: DEBUG: 2025-11-03 10:44:07,736: decorators.py(129): random sleep(2.00-6.00):5.87 FFF: DEBUG: 2025-11-03 10:44:13,608: requestable.py(55): Encoding:utf8 FFF: DEBUG: 2025-11-03 10:44:13,610: cache_basic.py(117): ========== MISS (GET) BasicCache https://archiveofourown.org/works/71694856?view_adult=true FFF: DEBUG: 2025-11-03 10:44:13,610: fetcher_requests.py(114): ---------- REQ (GET) RequestsFetcher https://archiveofourown.org/works/71694856?view_adult=true FFF: DEBUG: 2025-11-03 10:44:13,907: fetcher_requests.py(127): response code:200 FFF: DEBUG: 2025-11-03 10:44:13,907: decorators.py(118): fromcache:False FFF: DEBUG: 2025-11-03 10:44:13,907: decorators.py(129): random sleep(2.00-6.00):5.41 FFF: DEBUG: 2025-11-03 10:44:19,320: requestable.py(55): Encoding:utf8 FFF: DEBUG: 2025-11-03 10:44:19,432: base_otw_adapter.py(324): numChapters: (3) FFF: INFO: 2025-11-03 10:44:19,561: base_writer.py(194): Save directly to file: Ionic Bonds-ao3_71694856.epub FFF: DEBUG: 2025-11-03 10:44:19,562: base_otw_adapter.py(486): Getting chapter text for: https://archiveofourown.org/works/71694856/chapters/186628311 index: 0 FFF: DEBUG: 2025-11-03 10:44:19,563: base_otw_adapter.py(500): USE view_full_work FFF: DEBUG: 2025-11-03 10:44:19,564: cache_basic.py(117): ========== MISS (GET) BasicCache https://archiveofourown.org/works/71694856?view_full_work=true&view_adult=true FFF: DEBUG: 2025-11-03 10:44:19,564: fetcher_requests.py(114): ---------- REQ (GET) RequestsFetcher https://archiveofourown.org/works/71694856?view_full_work=true&view_adult=true FFF: DEBUG: 2025-11-03 10:44:19,798: fetcher_requests.py(127): response code:200 FFF: DEBUG: 2025-11-03 10:44:19,798: decorators.py(118): fromcache:False FFF: DEBUG: 2025-11-03 10:44:19,798: decorators.py(129): random sleep(2.00-6.00):4.38 FFF: DEBUG: 2025-11-03 10:44:24,184: requestable.py(55): Encoding:utf8 FFF: DEBUG: 2025-11-03 10:44:24,319: base_otw_adapter.py(486): Getting chapter text for: https://archiveofourown.org/works/71694856/chapters/189126896 index: 1 FFF: DEBUG: 2025-11-03 10:44:24,320: base_otw_adapter.py(500): USE view_full_work FFF: DEBUG: 2025-11-03 10:44:24,354: base_otw_adapter.py(486): Getting chapter text for: https://archiveofourown.org/works/71694856/chapters/191625151 index: 2 FFF: DEBUG: 2025-11-03 10:44:24,356: base_otw_adapter.py(500): USE view_full_work FFF: INFO: 2025-11-03 10:44:24,404: writer_epub.py(395): Saving EPUB Version 2.0 FFF: DEBUG: 2025-11-03 10:44:24,488: cli.py(63): Successfully wrote 'Ionic Bonds-ao3_71694856.epub' (Side note: in the plugin log above, I had basic cache turned off explicitly during one of my attempts, but it was the same behavior with it on.) All requests are coming from the same machine, no VPN or other shenanigans involved. I can log in to AO3 just fine from my browser using the same account, so I'm not inclined to believe that I've been blocked due to excessive traffic. Haven't even downloaded masses of stories recently, so I don't know why that would be the case. |
|
|
|
|
|
#11440 | |
|
Plugin Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 7,136
Karma: 5005503
Join Date: Dec 2011
Location: Midwest USA
Device: Kobo Clara Colour running KOReader
|
Quote:
I suggest reading the FFF ProblematicSites wiki page for the workarounds we've found. I'd try the use_archiveofourown_gay:true setting first. |
|
|
|
|
|
|
#11441 |
|
Junior Member
![]() Posts: 4
Karma: 10
Join Date: Nov 2025
Device: Kindle Paperwhite
|
Yeah, I’ve been through those as well. Only tried using the .gay mirror because the other one doesn’t allow logging in anyway, and I follow more than a few locked stories, so one that wouldn’t let me access those isn’t a viable workaround. Is there some kind of cache folder that might have a faulty login stored on my disk for the plugin that I could try to clear? The 403 response is near instantaneous when it attempts to download the first round of metadata. I’ve also tried to play with the user agent to no avail, setting that to a more common chrome-like value in my personal.ini.
Browser cache would probably work, but be a bit of a pain tbh. I’ve had success with that on ffnet, since that’s the only viable solution there and most of the stories I read have migrated to ao3, so doing that every now and then for one story is okay, but would be annoying to do long term for everything. That said, it worked with Firefox, but not in a chromium derivative that I’ve been using more recently. For some reason, that one doesn’t seem to be caching to disk, but that’s not an issue for this thread… lol |
|
|
|
|
|
#11442 |
|
Member
![]() Posts: 11
Karma: 10
Join Date: May 2025
Device: none
|
|
|
|
|
|
|
#11443 |
|
Junior Member
![]() Posts: 4
Karma: 10
Join Date: Nov 2025
Device: Kindle Paperwhite
|
Grr. Just had the thought to try it from a different machine... and wouldn't you know? It works there. Which is nice, I can sync that, but it also makes me a little mad that something seems to be up on my primary machine. Whatever that may be... It's macOS vs Linux, apparently Calibre 8 (on Mac) vs 7 (on Linux).
Thanks for trying anyway, we'll see if it magically clears up on its own. |
|
|
|
|
|
#11444 |
|
Junior Member
![]() Posts: 4
Karma: 10
Join Date: Nov 2025
Device: Kindle Paperwhite
|
Welp... I can confirm that this is not an issue with FFF but with an outdated version of Calibre (thanks, Ubuntu). Manually installed the latest version and now it works just peachy.
|
|
|
|
![]() |
| Tags |
| fanfiction |
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| [GUI Plugin] KindleUnpack - The Plugin | DiapDealer | Plugins | 527 | 08-15-2025 02:36 PM |
| [GUI Plugin] Open With | kiwidude | Plugins | 404 | 02-21-2025 06:42 AM |
| [GUI Plugin] Marvin XD | Philantrop | Plugins | 126 | 01-29-2017 01:48 PM |
| [GUI Plugin] KiNotes | -axel- | Plugins | 0 | 07-14-2013 07:39 PM |
| [GUI Plugin] Plugin Updater **Deprecated** | kiwidude | Plugins | 159 | 06-19-2011 01:27 PM |