MainKronos / Sonarr-AnimeDownloader

It is a Docker Container that uses Sonarr to download anime from AnimeWorld site (ITALY).
https://mainkronos.github.io/Sonarr-AnimeDownloader/
MIT License
43 stars 10 forks source link

[BUG] Sonarr V4 #108

Closed EffeF closed 11 months ago

EffeF commented 12 months ago

Livello di Errore:

Messaggio di Errore

⚠️ Errore di connessione. (Expecting value: line 1 column 1 (char 0))

Informazioni generali

Descrizione

Dopo aver aggiornato alla versione 4 di Sonnar ottengo solo ed esclusivamente il messaggio di errore qua sopra. Nel dubbio ho installato anche una seconda istanza di Sonnar v3 e funziona correttamente, quindi immagino che il problema sia effettivamente la v4.

File log

log.log

MainKronos commented 12 months ago

Probabilmente hanno cambiato le api. Ci do un occhiata

MainKronos commented 12 months ago

Nella v4 hanno rimosso le APIv2 e probabilmente anche quelle che avevano nelle prime versioni (APIv1) (qui il post).

Devo quindi modificare il file sonarr.py per allinearlo con le APIv3 (qui la documentazione)

Visto che la v4 è ancora in beta la modifica avverrà fra qualche settimana (cioè appena ho un attimo di tempo o qualcuno fà una richiesta di pull)

bonny1992 commented 12 months ago

Dandoci un'occhiata velocissima, sembra che sostituendo negli urls /api/ con /api/v3/ funzioni correttamente. Oh ed aggiungendo il parametro includeSeries=true per l'endpoint wanted/missing. Sto provando ma avendo un sacco di serie ci sta mettendo tantino.

bonny1992 commented 12 months ago

Piccolo update: Sembra che le modifiche fatte al file funzionino correttamente (almeno in parte).

Provandolo sulle mie serie di Sonarr (915 serie di anime) ci mette un bel po' ogni run, ma si interrompe spesso e volentieri (non sono sicuro se sempre allo stesso punto) con questo errore:

Traceback (most recent call last):
  File "/script/utility/functions.py", line 144, in converting
    link = linkSearch(anime["title"], season["num"], anime["tvdbID"])
  File "/script/utility/functions.py", line 62, in linkSearch
    result = bindAnime(title, int(season), tvdbID)
  File "/script/utility/functions.py", line 212, in bindAnime
    ids = [
  File "/script/utility/functions.py", line 215, in <listcomp>
    "mal_id": elem["mal_id"]
KeyError: 'mal_id'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/script/job.py", line 32, in job
    series = fun.converting(raw_series)
  File "/script/utility/functions.py", line 156, in converting
    raise TableFormattingError
other.exceptions.TableFormattingError: Errore al file table.json.

È collegato alle nuove API e devo investigare oppure è un altro problema?

Se lo facesse su tutte le serie sarei sicuro che fosse questo il caso.

MainKronos commented 12 months ago

Non è un problema collegato alle APIv3. È un problema riguardante la ricerca automatica per trovare il corrispettivo link di animeworld di una serie.

Mi sono dimenticato di verificare se la chiave mal_id effettivamente esiste nel dizionario, probabilmente avevo dato per scontato la sua esistenza...

Lo correggo subito

bonny1992 commented 11 months ago

Grazie per il fix.

Non ne so molto di git ma dovrei essere riuscito a fare una pull request ( #109 ).

Il mio sta ancora eseguendo la scansione ed il download, ma per il momento sembra funzionare tutto (più di 28000 episodi secondo l'endpoint wanted/missing)

EffeF commented 11 months ago

Appena aggiornato, sembra funzionare bene adesso.

bonny1992 commented 11 months ago

Stavo pensando, penso sarebbe meglio aggiungere una variabile d'ambiente per selezionare se Sonarr è v3 oppure v4, così da lasciare la possibilità all'utente di scegliere. Penso sia utile visto che v4 è ancora in beta. Che ne dite?

MainKronos commented 11 months ago

@bonny1992 Cosa cambierebbe dal punto di vista del codice se si trova ad interagire con Sonarrv3 o Sonarrv4?

In ogni caso, momentaneamente, preferirei non modificare troppo il codice, perché lo sto riscrivendo da zero per renderlo più leggibile in preparazione all'hacktoberfest (branch dev)

bonny1992 commented 11 months ago

@MainKronos L'unica differenza sono gli endpoint che c'erano già, prima della mia modifica. Magari allora non sarebbe male fare una immagine docker con il vecchio file e lasciare un tag fisso (tipo latest-v3 o simili). Che ne dici?

MainKronos commented 11 months ago

Non capisco una cosa, perché qualcuno verrebbe scegliere di usare delle api deprecate quando le APIv3 funzionano sia per Sonarrv3 che Sonarr4?

bonny1992 commented 11 months ago

Oh, a dirla tutta non sapevo che le api v3 funzionassero con Sonarr v3. Ero convinto che fossero una prerogativa di Sonarr v4 che è ancora in beta. Se è così allora niente, chiedo scusa!

MainKronos commented 11 months ago

Ah, ok. ahaahhaha Infatti non capivo 😅. Ti posso garantire che le APIv3 funzionano con Sonarr v3, perchè ancora non ho aggiornato Sonarr alla v4 e sto usando il docker con la tua modifica.