Vai al contenuto

QuickStart

Utilizzo

Per avviare il container è possibile farlo attraverso docker cli o tramite docker-compose.

Docker Compose

version: '3.9'
services:
  mainkronos:
    container_name: AnimeDownloader
    volumes:
      - '/path/to/data:/src/database'
      - '/path/to/animeSeries:/tv'
      - '/path/to/downloads:/downloads'
      - '/path/to/connections:/src/script'
    ports:
      - 'port:5000'
    environment:
      - 'SONARR_URL=http://url:port'
      - 'API_KEY=1234567890abcdefghijklmn'
      - 'TZ=Europe/Rome'
      - 'PUID=1000'
      - 'PGID=1000'
    image: 'ghcr.io/mainkronos/anime_downloader:latest'

Docker CLI

Note

In ambiente Windows è utilizzato il carattere ^ per fare un comando su più righe, in ambiente Linux è utilizzato il carattere \.

docker run -d \
    --name=AnimeDownloader \
    -v /path/to/data:/src/database \
    -v /path/to/animeSeries:/tv \
    -v /path/to/downloads:/downloads \
    -v /path/to/connections:/src/script \
    -p port:5000 \
    --env SONARR_URL='http://url:port' \
    --env API_KEY='1234567890abcdefghijklmn' \
    --env TZ=Europe/Rome \
    --env PUID=1000 \
    --env PGID=1000 \
    ghcr.io/mainkronos/anime_downloader:latest

Parametri

Le immagini del Docker Container vengono configurate utilizzando i parametri passati in fase di esecuzione (come quelli sopra). Questi parametri sono separati da due punti e indicano rispettivamente <esterno>:<interno> al Container.

Tip

Ad esempio, -v /path/to/data:/src/database indica che la cartella nella posizione /path/to/data si trova in /src/database all'interno del Container, quindi tutto il contento di /path/to/data è anche in /src/database all'interno del Container.

Parametro Necessario Funzione
--name Indica il nome del Container, può essere qualsiasi cosa
-v /tv Posizione della libreria Anime su disco, vedi sotto per ulteriori informazioni
-v /src/database Contiene file di configurazione
-v /downloads Cartella dove verranno scaricati tutti gli episodi (poi verranno spostati nella giusta cartella di destinazione)
-v /src/script Contiene file di configurazione per le Connections
-p {port}:5000 La porta per la pagina web
--env SONARR_URL Url di Sonarr es. http://localhost:8989
--env API_KEY Api key di sonarr, vedi sotto per ulteriori informazioni
--env TZ Specifica un fuso orario, è necessario per il corretto funzionamento del Container
--env PUID Specifica UserID. Vedi sotto per maggiori informazioni
--env PGID Specifica GroupID. Vedi sotto per maggiori informazioni

Volume /tv

È importante, per il corretto funzionamento del container, che il volume legato alla directory /tv sia identico a quello usato per la configurazione di Sonarr. Esempio

linuxserver/sonarr
docker run -d \
  --name=sonarr \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -p 8989:8989 \
  -v /path/to/data:/config \
  -v /path/to/tvseries:/tv \ # <----- IMPORTANTE
  -v /path/to/downloadclient-downloads:/downloads \
  --restart unless-stopped \
  ghcr.io/linuxserver/sonarr

Tip

Ad esempio se su Sonarr la cartella tv è mappata così: -v /path/to/tvseries:/tv allora su anime_downloader sarà -v /path/to/animeSeries:/tv, oppure se è -v /path/to/tvseries:/miatv/perf/miacartella diventerà -v /path/to/animeSeries:/miatv/perf/miacartella...

User / Group Identifiers

Quando si utilizzano i volumi (-v flag) possono sorgere dei problemi di autorizzazione tra il sistema operativo host e il contenitore, il problema può essere evitato specificando il PUID utente e il PGID di gruppo.

Assicurati che tutte le directory di volume sull'host siano di proprietà dello stesso utente che hai specificato e qualsiasi problema di autorizzazione svanirà come per magia.

In questo caso PUID=1000 e PGID=1000, per trovare il tuo usa id user come di seguito:

$ id username
  uid=1000(dockeruser) gid=1000(dockeruser) groups=1000(dockeruser)

Avvio

Tabella di Conversione

Il programma, per funzionare, necessita di un file che si chiama table.json, si trova nella cartella /src/database all'interno del Container. Questo file indica al programma a quale nome di AnimeWorld corrisponde il titolo della serie su Sonarr.

Per esempio abbiamo che il titolo del nostro anime su AnimeWorld è Sword Art Online 3: Alicization, mentre su Sonarr è indicato come stagione 3 di Sword Art Online, tale informazione deve essere formattata e inserita nel file table.json in modo tale che il programma riesca a capire dove andare a cercare gli episodi su AnimeWorld.

Non preoccuparti, è molto semplice, basta inserire il titolo di Sonarr, il link di AnimeWorld e la stagione di riferimento attraverso l'interfaccia, e il programma si occuperà di tutto il resto.

Interfaccia

È altamente consigliato usare la pagina web alla porta 5000 per l'inserimento di queste informazioni.

Tabella Di Conversione

In ogni caso la formattazione di come sono inserite le informazioni nel file table.json sono riportate quà sotto, sottoforma di esempio:

[
    ...
    {   
        "absolute": false,
        "title": "Sword Art Online",
        "seasons": {
            "1": [
                "https://www.animeworld.so/play/sword-art-online.N0onT"
            ],
            "2": [
                "https://www.animeworld.so/play/sword-art-online-2._NcG6"
            ]     
        }
    },
    ...
]

Tip

Ho caricato anche la mia configurazione che utilizzo, può essere trovata qui. Questa table.json può essere usata come esempio o come prorio database da aggiornare poi personalmente con i propri Anime.

Struttura Interna

La struttura interna del Container è così strutturata:

/
 ├── start.bin                 ### File di avvio
 ├── downloads                 ### Cartella di download
 ├── src
 │   ├── components
 │   │   ├── backend           ### Core del programma
 │   │   └── frontend          ### Interfaccia Web
 │   │
 │   ├── database
 │   │    ├── settings.json    ### Impostazioni
 │   │    ├── table.json       ### Tabella di conversione
 │   │    ├── connections.json ### Conections
 │   │    └── tags.json        ### Tag
 │   │                      
 │   ├── script
 │   │    ├── telegram.sh      ### Connessione a Telegram
 │   │   ...                   ### Altre Connessioni          
 │   │ 
 │  ...                        ### Altri file utili
...  

Problemi

In caso di problemi o errori controllare prima di tutto i log del Container, di solito lì è indicato il problema.

Controllare la sezione FAQ per vedere se è già stato risolto, altrimenti segnalarlo su GitHub in questo repository sotto la sezione Issues.

Libreria AnimeWorld-API

Se visualizzate questo tipo di errore:

🅰🅻🅴🆁🆃: Il sito è cambiato, di conseguenza la libreria è DEPRECATA.
Riguarda un problema della libreria AnimeWorld-API, quindi segnalatelo il prima possibile sotto la sezione Issues della libreria, in modo tale che possa risolverlo al più presto.


Ultimo aggiornamento: 1 ottobre 2023