JimmXinu / FanFicFare

FanFicFare is a tool for making eBooks from stories on fanfiction and other web sites.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DeviantArt login stopped working

jherazob opened this issue · comments

At some point since last week, the DeviantArt login stopped working, now when it tries it instead shows:

adapter_deviantartcom.py(99): Failed to login to deviantArt as username

On Calibre it ends prompting for user/pass, which does the same thing, something must have changed in the procedure.

Have tried with both the current version and the test version, same result, as well as the commandline tool installed via pip. All with the same result.

Story URL? I don't read that site, so I don't have any examples handy.

Here's a NSFW labeled story from a buddy, and here's the full commandline tool's output when i try to get it:

$ fanficfare --debug --config=~/.fanficfare/personal.ini https://www.deviantart.com/knightofneverwhere/art/The-Outcast-of-Ayena-Chapter-1-964165524
FFF: DEBUG: 2024-01-30 15:54:20,382: cli.py(230):     OS Version:Linux-5.15.0-92-generic-x86_64-with-glibc2.29
FFF: DEBUG: 2024-01-30 15:54:20,382: cli.py(231): Python Version:3.8.10 (default, Nov 22 2023, 10:22:35) 
[GCC 9.4.0]
FFF: DEBUG: 2024-01-30 15:54:20,382: cli.py(232):    FFF Version:4.30.0
FFF: DEBUG: 2024-01-30 15:54:20,393: configurable.py(1078): use_browser_cache:
FFF: DEBUG: 2024-01-30 15:54:20,394: configurable.py(1098): use_basic_cache:true
FFF: DEBUG: 2024-01-30 15:54:20,401: adapter_deviantartcom.py(121): URL: https://www.deviantart.com/knightofneverwhere/art/The-Outcast-of-Ayena-Chapter-1-964165524
FFF: DEBUG: 2024-01-30 15:54:20,401: cache_basic.py(116): 
========== MISS (GET) BasicCache
https://www.deviantart.com/knightofneverwhere/art/The-Outcast-of-Ayena-Chapter-1-964165524
FFF: DEBUG: 2024-01-30 15:54:20,402: fetcher_requests.py(114): 
---------- REQ (GET) RequestsFetcher
https://www.deviantart.com/knightofneverwhere/art/The-Outcast-of-Ayena-Chapter-1-964165524
FFF: DEBUG: 2024-01-30 15:54:21,697: fetcher_requests.py(127): response code:200
FFF: DEBUG: 2024-01-30 15:54:21,697: decorators.py(112): fromcache:False
FFF: DEBUG: 2024-01-30 15:54:21,697: requestable.py(55): Encoding:utf8
FFF: DEBUG: 2024-01-30 15:54:21,877: cache_basic.py(116): 
========== MISS (GET) BasicCache
https://www.deviantart.com/users/login
FFF: DEBUG: 2024-01-30 15:54:21,877: fetcher_requests.py(114): 
---------- REQ (GET) RequestsFetcher
https://www.deviantart.com/users/login
FFF: DEBUG: 2024-01-30 15:54:22,785: fetcher_requests.py(127): response code:200
FFF: DEBUG: 2024-01-30 15:54:22,785: decorators.py(112): fromcache:False
FFF: DEBUG: 2024-01-30 15:54:22,786: requestable.py(55): Encoding:utf8
FFF: DEBUG: 2024-01-30 15:54:22,848: adapter_deviantartcom.py(94): Will now login to deviantARt as (jherazob)
FFF: DEBUG: 2024-01-30 15:54:22,849: cache_basic.py(116): 
========== MISS (POST) BasicCache
https://www.deviantart.com/_sisu/do/signin
FFF: DEBUG: 2024-01-30 15:54:22,849: fetcher_requests.py(114): 
---------- REQ (POST) RequestsFetcher
https://www.deviantart.com/_sisu/do/signin
FFF: DEBUG: 2024-01-30 15:54:23,713: fetcher_requests.py(127): response code:200
FFF: DEBUG: 2024-01-30 15:54:23,713: decorators.py(112): fromcache:False
FFF: DEBUG: 2024-01-30 15:54:23,713: requestable.py(55): Encoding:utf8
FFF: ERROR: 2024-01-30 15:54:23,714: adapter_deviantartcom.py(99): Failed to login to deviantArt as jherazob
Login Failed, Need Username/Password.

The personal.ini is a manual copy of the Calibre one (not sure where's the physical file for the addon so just copied it myself), both have this section:

[www.deviantart.com]
is_adult:true
username:jherazob
password:[REDACTED]
include_titlepage:false

At this point it just waits forever for the credentials. On Calibre instead it just keeps popping up a login dialogbox forever, same case in both (login fails so they just keep asking for it forever). Double-checked the credentials just in case but were correct, plus the config file was untouched since the last time it worked.

If you need some more info lemme know, i hope i gave enough info this time.

The site has switched to a 2 step login process. I've made changes to address that and a (possible) issue with metadata parsing.

I've uploaded a test version to testpypi

Assumed fixed.

Good afternoon! Seems like DA NSFW login is again failing (or failing in a different way, pretty sure it was working after the fix), today i went to update the same story from a buddy and it seems to be generating exceptions, here's the relevant output from the commandline tool (the plugin just announces it failed with the exception text):

$ fanficfare --debug --config=~/.fanficfare/personal.ini https://www.deviantart.com/knightofneverwhere/art/The-Outcast-of-Ayena-Chapter-1-964165524
FFF: DEBUG: 2024-02-27 18:46:08,732: cli.py(230):     OS Version:Linux-5.15.0-97-generic-x86_64-with-glibc2.29
FFF: DEBUG: 2024-02-27 18:46:08,732: cli.py(231): Python Version:3.8.10 (default, Nov 22 2023, 10:22:35) 
[GCC 9.4.0]
FFF: DEBUG: 2024-02-27 18:46:08,732: cli.py(232):    FFF Version:4.31.0
FFF: DEBUG: 2024-02-27 18:46:08,743: configurable.py(1078): use_browser_cache:
FFF: DEBUG: 2024-02-27 18:46:08,744: configurable.py(1098): use_basic_cache:true
FFF: DEBUG: 2024-02-27 18:46:08,750: adapter_deviantartcom.py(144): URL: https://www.deviantart.com/knightofneverwhere/art/The-Outcast-of-Ayena-Chapter-1-964165524
FFF: DEBUG: 2024-02-27 18:46:08,751: cache_basic.py(116): 
========== MISS (GET) BasicCache
https://www.deviantart.com/knightofneverwhere/art/The-Outcast-of-Ayena-Chapter-1-964165524
FFF: DEBUG: 2024-02-27 18:46:08,751: fetcher_requests.py(114): 
---------- REQ (GET) RequestsFetcher
https://www.deviantart.com/knightofneverwhere/art/The-Outcast-of-Ayena-Chapter-1-964165524
FFF: DEBUG: 2024-02-27 18:46:09,628: fetcher_requests.py(127): response code:200
FFF: DEBUG: 2024-02-27 18:46:09,628: decorators.py(112): fromcache:False
FFF: DEBUG: 2024-02-27 18:46:09,629: requestable.py(55): Encoding:utf8
FFF: DEBUG: 2024-02-27 18:46:09,784: cache_basic.py(116): 
========== MISS (GET) BasicCache
https://www.deviantart.com/users/login
FFF: DEBUG: 2024-02-27 18:46:09,784: fetcher_requests.py(114): 
---------- REQ (GET) RequestsFetcher
https://www.deviantart.com/users/login
FFF: DEBUG: 2024-02-27 18:46:10,956: fetcher_requests.py(127): response code:200
FFF: DEBUG: 2024-02-27 18:46:10,956: decorators.py(112): fromcache:False
FFF: DEBUG: 2024-02-27 18:46:10,957: requestable.py(55): Encoding:utf8
FFF: DEBUG: 2024-02-27 18:46:11,027: adapter_deviantartcom.py(96): Will now login to deviantARt as (jherazob)
FFF: DEBUG: 2024-02-27 18:46:11,027: cache_basic.py(116): 
========== MISS (POST) BasicCache
https://www.deviantart.com/_sisu/do/step2
FFF: DEBUG: 2024-02-27 18:46:11,027: fetcher_requests.py(114): 
---------- REQ (POST) RequestsFetcher
https://www.deviantart.com/_sisu/do/step2
FFF: DEBUG: 2024-02-27 18:46:12,071: fetcher_requests.py(127): response code:200
FFF: DEBUG: 2024-02-27 18:46:12,071: decorators.py(112): fromcache:False
FFF: DEBUG: 2024-02-27 18:46:12,072: requestable.py(55): Encoding:utf8
FFF: DEBUG: 2024-02-27 18:46:12,144: adapter_deviantartcom.py(117): Will now send password to deviantARt
FFF: DEBUG: 2024-02-27 18:46:12,144: cache_basic.py(116): 
========== MISS (POST) BasicCache
https://www.deviantart.com/_sisu/do/signin
FFF: DEBUG: 2024-02-27 18:46:12,145: fetcher_requests.py(114): 
---------- REQ (POST) RequestsFetcher
https://www.deviantart.com/_sisu/do/signin
FFF: DEBUG: 2024-02-27 18:46:15,063: fetcher_requests.py(127): response code:200
FFF: DEBUG: 2024-02-27 18:46:15,064: decorators.py(112): fromcache:False
FFF: DEBUG: 2024-02-27 18:46:15,064: requestable.py(55): Encoding:utf8
FFF: DEBUG: 2024-02-27 18:46:15,068: cache_basic.py(116): 
========== MISS (GET) BasicCache
https://www.deviantart.com/knightofneverwhere/art/The-Outcast-of-Ayena-Chapter-1-964165524
FFF: DEBUG: 2024-02-27 18:46:15,068: fetcher_requests.py(114): 
---------- REQ (GET) RequestsFetcher
https://www.deviantart.com/knightofneverwhere/art/The-Outcast-of-Ayena-Chapter-1-964165524
FFF: DEBUG: 2024-02-27 18:46:16,372: fetcher_requests.py(127): response code:200
FFF: DEBUG: 2024-02-27 18:46:16,372: decorators.py(112): fromcache:False
FFF: DEBUG: 2024-02-27 18:46:16,373: requestable.py(55): Encoding:utf8
Traceback (most recent call last):
  File "/usr/local/bin/fanficfare", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.8/dist-packages/fanficfare/cli.py", line 346, in main
    dispatch(options, urls, passed_defaultsini, passed_personalini, warn, fail)
  File "/usr/local/lib/python3.8/dist-packages/fanficfare/cli.py", line 322, in dispatch
    do_download(url,
  File "/usr/local/lib/python3.8/dist-packages/fanficfare/cli.py", line 437, in do_download
    adapter.getStoryMetadataOnly()
  File "/usr/local/lib/python3.8/dist-packages/fanficfare/adapters/base_adapter.py", line 325, in getStoryMetadataOnly
    self.doExtractChapterUrlsAndMetadata(get_cover=get_cover)
  File "/usr/local/lib/python3.8/dist-packages/fanficfare/adapters/base_adapter.py", line 429, in doExtractChapterUrlsAndMetadata
    return self.extractChapterUrlsAndMetadata()
  File "/usr/local/lib/python3.8/dist-packages/fanficfare/adapters/adapter_deviantartcom.py", line 176, in extractChapterUrlsAndMetadata
    appurl = soup.select_one('meta[property="da:appurl"]')['content']
TypeError: 'NoneType' object is not subscriptable

It's working for using the latest test version. https://test.pypi.org/project/FanFicFare/

Confirmed! Thanks! I assume this fix will eventually arrive at the plugin, right?

Available in test version and released at the end of the month.
https://github.com/JimmXinu/FanFicFare#test-versions