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

Tag Personalizzati #81

Closed SavvyMeat closed 1 year ago

SavvyMeat commented 1 year ago

Ho aggiunto la funzionalità di inserimento tag personalizzato per escludere/includere solo alcuni anime. La regola per cui le serie devono soddisfare la condizione "seriesType" == "anime" è rimasta. Ho riportato le modifiche anche nelle pagine della demo. Sentiti libero di modificare tutto come meglio credi. 🙂

Sono apprezzate le etichette per l'Hacktoberfest 🙄

MainKronos commented 1 year ago

Mi ci vorrà un po' di tempo per revisionare il tutto 😂 Mi potresti scrivere:

E ovviamente grazie mille per il contributo 👍

SavvyMeat commented 1 year ago

La modalità d'uso è simile alla funzionalità delle Connections, ho creato un json dove salvare un array di Tag che possono essere inclusivi o esclusivi.

Funzionamento

Nel momento in cui vengono recuperate le serie mancanti vengono sincronizzati i Tag con Sonarr ( per disattivare i Tag che su Sonarr sono stati eliminati ). Una volta ottenuta la serie viene verificato se deve essere considerata o no. Se il file tags.json è vuoto viene considerata la regola precedente in cui vengono considerate valide tutte le serie con tipologia anime. Per ogni serie vengono effettuati questi controlli:

  1. Se tra i Tag nel file tags.json ne è presente almeno uno che abbia inclusive == True il comportamento di default è che venga scartata.
  2. Se tra i Tag associati alla serie esiste un Tag che abbia inclusive == True viene considerata valida.
  3. Se tra i Tag associati alla serie esiste un Tag che abbia inclusive == False questa viene scartata, anche se aveva passato il controllo al punto 2.

File JSON

I parametri in ogni record nel file json sono:

Creazione Tag

Il Tag si può creare dalla pagina delle impostazioni, deve essere fornito un name che deve essere univoco e deve combaciare con uno dei Tag presenti su Sonarr. Per la gestione dei Tag ho seguito la struttura che avevi già utilizzato per le Connections ( endpoint in file api.py, file tags.py per inserimento e modifica nel file tags.json ). Per quanto riguarda il css invece, dato che volevo utilizzare la stessa grafica, ho reso un po' più generici i nomi delle classi.

Ho sfruttato il tuo progetto per sperimentare Python e React, quindi non escludo di non averlo fatto alla perfezione, però l'ho testato un po' e il suo lo fa. 🙂