fix(cookie): get cookie and csrf-token
close: https://github.com/MainKronos/Sonarr-AnimeDownloader/issues/21
Con questa PR aggiungo il pacchetto requests-html che permette di renderizzare il js della pagina.
dopo aver renderizzato la pagina avvio uno script, che mi restituisce i dati richiesti.
Praticamente per renderizzare viene installato un browser headless → https://github.com/puppeteer/puppeteer
Ah ultima cosa non sono riuscito a testare in locale tutto, ma solo il fatto che prenda i cookie, quindi sarebbe meglio fare un test aggiuntivo.
@Simoneu01 complimenti per essere riuscito a ottenere SecurityAW e csfrToken.
Sto facendo un po' di test e comunque da errore, come se il codice SecurityAW non fosse valido e non capisco come sia possibile.
Chissà quanto tempo ci hanno impiegato quelli di AnimeWorld ad erigere questo groviglio di codice 😂.
Comunque, sto creando un unittest per debuggare più facilmente
ty, ora cerchiamo di far workare tutto, daje
A me in locale da questo errore, non so se è lo stesso tuo. Fammi sapere e ci lavoriamo:
File "/home/simo/code/AnimeWorld-API/test.py", line 5, in <module>
res = aw.find("No game no life")
File "/home/simo/code/AnimeWorld-API/animeworld/utility.py", line 73, in wrapper
raise e
File "/home/simo/code/AnimeWorld-API/animeworld/utility.py", line 68, in wrapper
return fun(*args, **kwargs)
File "/home/simo/code/AnimeWorld-API/animeworld/utility.py", line 128, in find
data = res.json()
File "/usr/lib/python3/dist-packages/requests/models.py", line 897, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/lib/python3/dist-packages/simplejson/__init__.py", line 518, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 370, in decode
obj, end = self.raw_decode(s)
File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 400, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Process finished with exit code 1
Ho aggiunto un unittest, da ampliare successivamente...
Se provi ad avviare il file test.py il subtest getName fallisce perchè la pagina web (questa) non è quella che dovrebbe essere, cioè è uguale a quella iniziale utilizzata per ottenere il SecurityAW...
Questo mi fà pensare che forse il SecurityAW non sia valido....
Inoltre ho aumentato il timeout (qui) perchè non riusciva a caricare in tempo e mi sollevava un eccezione
Mi correggo, per magia adesso funziona ma adesso vengono sollevate un sacco di eccezioni di Timeout non so... Accade anche a te?
Avevano messo il check con cloudflare sul sito, adesso lo hanno tolto. Se lo raggiungono l'unico modo è utilizzare flaresolverr
Se sei d'accordo lascerei questa richiesta di pull aperta nel caso (secondo me probabile) si ripresentasse lo stesso problema. Per ora preferisco non fare un merge perché l'utilizzo di requests-html renderebbe più lenta la libreria