aw-cli 1.7__tar.gz → 1.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
aw-cli-1.8/PKG-INFO ADDED
@@ -0,0 +1,181 @@
1
+ Metadata-Version: 2.1
2
+ Name: aw-cli
3
+ Version: 1.8
4
+ Summary: guarda anime dal terminale e molto altro!
5
+ Home-page: https://github.com/fexh10/aw-cli
6
+ Author: fexh10
7
+ License: GPL-3.0
8
+ Requires-Python: >3.10
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+ Requires-Dist: bs4
12
+ Requires-Dist: requests
13
+ Requires-Dist: lxml
14
+ Requires-Dist: pySmartDL
15
+ Requires-Dist: wheel
16
+ Requires-Dist: regex
17
+
18
+ # aw-cli
19
+ <h3 align="center">
20
+
21
+ Guarda anime dal terminale e molto altro!<br /> Gli anime vengono presi da <a href="https://www.animeworld.tv/">AnimeWorld</a>
22
+
23
+ </h3>
24
+
25
+ ## Anteprima
26
+ https://user-images.githubusercontent.com/90156014/210212814-e73ba7af-ce12-43ad-95ff-dcd85b39a45c.mp4
27
+
28
+ ## Indice
29
+
30
+ - [aw-cli](#aw-cli)
31
+ - [Anteprima](#anteprima)
32
+ - [Indice](#indice)
33
+ - [Installazione](#installazione)
34
+ - [Problemi noti](#problemi-noti)
35
+ - [Disinstallazione](#disinstallazione)
36
+ - [Utilizzo](#utilizzo)
37
+ - [Crediti](#crediti)
38
+
39
+
40
+ ## Installazione
41
+
42
+ Lo script funziona sia con [MPV](https://mpv.io/installation/) che con [VLC](https://www.videolan.org/vlc/index.it.html). <br />
43
+
44
+ <details><summary><b>Linux, MacOS</b></summary>
45
+ È possibile installare aw-cli da pip:
46
+
47
+ ```
48
+ python3 -m pip install aw-cli
49
+ ```
50
+ </details>
51
+
52
+ <details><summary><b>Windows</b></summary>
53
+ Attualmente, Windows presenta due versioni: la più recente, progettata per funzionare su WSL (Windows Subsystem for Linux), e una versione Legacy compatibile con PowerShell. La versione Legacy non riceverà ulteriori aggiornamenti, mentre l'altra sarà mantenuta costantemente.
54
+
55
+ <br>
56
+
57
+ <details><summary><b>Ultima Versione</b></summary>
58
+ L'ultima versione per Windows richiede installare <a href="https://learn.microsoft.com/it-it/windows/wsl/install">WSL</a>:
59
+
60
+ ```
61
+ wsl --install
62
+ ```
63
+ Per installare MPV su WSL, basta eseguire:
64
+ ```
65
+ sudo apt install mpv
66
+ ```
67
+
68
+ Per VLC:
69
+ ```
70
+ sudo apt install vlc
71
+ ```
72
+
73
+ Il programma dovrà essere installato e avviato da WSL:
74
+
75
+ ```
76
+ python3 -m pip install aw-cli
77
+ ```
78
+ </details>
79
+ <details><summary><b>Versione Legacy</b></summary>
80
+ Per installare la versione Legacy, è necessario avere <a href="https://www.git-scm.com/download/win">git</a>.
81
+
82
+
83
+ ```
84
+ python3 -m pip install git+https://github.com/fexh10/aw-cli.git@winLegacy
85
+ ```
86
+
87
+ </details>
88
+ </details>
89
+
90
+ <details><summary><b>Android</b></summary>
91
+ Android richiede l'installazione di <a href="https://github.com/termux/termux-app/releases/tag/v0.118.0">termux</a>. <br>
92
+
93
+ ```
94
+ pkg update && pkg upgrade
95
+ pkg install python python-pip libxml2 libxslt pkg-config
96
+ python3 -m pip install aw-cli
97
+ ```
98
+ </details>
99
+
100
+ <details><summary><b>iOS</b></summary>
101
+ La versione per iOS richiede <a href="https://apps.apple.com/it/app/ish-shell/id1436902243">iSH</a> e <a href="https://apps.apple.com/it/app/vlc-media-player/id650377962">VLC</a>.
102
+
103
+ ```
104
+ apk update
105
+ apk upgrade
106
+ apk add python3 python3-dev py3-pip gcc musl-dev git
107
+ python3 -m pip install git+https://github.com/fexh10/aw-cli.git@iosCompatibility
108
+ ```
109
+ Nota che la velocità di download e caricamento molto bassa è un problema di iSH e non di aw-cli.
110
+ </details>
111
+
112
+ ## Problemi noti
113
+ Se è impossibile avviare `aw-cli`, è possibile che non si abbia la cartella degli script Python aggiunta al path. <br />
114
+
115
+ <details> <summary><b>Linux/Windows WSL</b></summary>
116
+ Aggiungere la seguente linea al file di profilo (.bashrc, .zshrc, o altro):
117
+
118
+ ```
119
+ export PATH=$PATH:$HOME/.local/bin
120
+ ```
121
+ Riavviare il terminale o eseguire `source ~/.bashrc`.
122
+
123
+ </details>
124
+
125
+ <details> <summary><b>MacOS</b></summary>
126
+ Aggiungere la seguente linea al file di profilo (.bashrc, .zshrc, o altro):
127
+
128
+ ```
129
+ export PATH=$PATH:$HOME/Library/Python/3.x/bin
130
+ ```
131
+ Sostituire `3.x` con la propria versione di Python. <br>
132
+ Riavviare il terminale o eseguire `source ~/.bashrc`.
133
+ </details>
134
+
135
+ <details> <summary><b>Windows Legacy</b></summary>
136
+ Inserire da linea di comando:
137
+
138
+ ```
139
+ setx PATH "%PATH%;%APPDATA%\Local\Programs\Python\Python3x\Scripts
140
+ ```
141
+ Sostituire `3.x` con la propria versione di Python. <br/>
142
+ Se necessario, riavviare il sistema.
143
+ </details>
144
+
145
+ ## Disinstallazione
146
+
147
+ ```
148
+ python3 -m pip uninstall aw-cli
149
+ ```
150
+
151
+ ## Utilizzo
152
+ ```
153
+ usage: aw-cli [-h] [-v] [-c [{r}]] [-l [{a,s,d,t}]] [-i] [-s] [-d] [-o] [-p] [-u [UPDATE]] [-a]
154
+
155
+ Guarda anime dal terminale e molto altro!
156
+
157
+ Informazioni:
158
+ -h, --help mostra questo messaggio
159
+ -v, --versione stampa la versione del programma
160
+
161
+ Opzioni:
162
+ -c [{r}], --cronologia [{r}]
163
+ continua a guardare un anime dalla cronologia. 'r' per rimuovere un anime (opzionale)
164
+ -l [{a,s,d,t}], --lista [{a,s,d,t}]
165
+ lista degli ultimi anime usciti su AnimeWorld. a = all, s = sub, d = dub, t = tendenze. Default 'a'
166
+ -i, --info visualizza le informazioni e la trama di un anime
167
+ -s, --syncplay usa syncplay per guardare un anime insieme ai tuoi amici
168
+ -d, --download scarica gli episodi che preferisci
169
+ -o, --offline apri gli episodi scaricati precedentemente direttamente dal terminale
170
+ -p, --privato guarda un episodio senza che si aggiorni la cronologia o AniList
171
+ -u [UPDATE], --update [UPDATE]
172
+ aggiorna il programma
173
+
174
+ Configurazione:
175
+ -a, --configurazione avvia il menu di configurazione
176
+ ```
177
+
178
+ ## Crediti
179
+ Progetto ispirato a <a href="https://github.com/pystardust/ani-cli">ani-cli</a>.
180
+
181
+ Un ringraziamento speciale a <a href="https://github.com/axtrat">axtrat</a> per l'aiuto nella realizzazione del progetto.
aw-cli-1.8/README.md ADDED
@@ -0,0 +1,164 @@
1
+ # aw-cli
2
+ <h3 align="center">
3
+
4
+ Guarda anime dal terminale e molto altro!<br /> Gli anime vengono presi da <a href="https://www.animeworld.tv/">AnimeWorld</a>
5
+
6
+ </h3>
7
+
8
+ ## Anteprima
9
+ https://user-images.githubusercontent.com/90156014/210212814-e73ba7af-ce12-43ad-95ff-dcd85b39a45c.mp4
10
+
11
+ ## Indice
12
+
13
+ - [aw-cli](#aw-cli)
14
+ - [Anteprima](#anteprima)
15
+ - [Indice](#indice)
16
+ - [Installazione](#installazione)
17
+ - [Problemi noti](#problemi-noti)
18
+ - [Disinstallazione](#disinstallazione)
19
+ - [Utilizzo](#utilizzo)
20
+ - [Crediti](#crediti)
21
+
22
+
23
+ ## Installazione
24
+
25
+ Lo script funziona sia con [MPV](https://mpv.io/installation/) che con [VLC](https://www.videolan.org/vlc/index.it.html). <br />
26
+
27
+ <details><summary><b>Linux, MacOS</b></summary>
28
+ È possibile installare aw-cli da pip:
29
+
30
+ ```
31
+ python3 -m pip install aw-cli
32
+ ```
33
+ </details>
34
+
35
+ <details><summary><b>Windows</b></summary>
36
+ Attualmente, Windows presenta due versioni: la più recente, progettata per funzionare su WSL (Windows Subsystem for Linux), e una versione Legacy compatibile con PowerShell. La versione Legacy non riceverà ulteriori aggiornamenti, mentre l'altra sarà mantenuta costantemente.
37
+
38
+ <br>
39
+
40
+ <details><summary><b>Ultima Versione</b></summary>
41
+ L'ultima versione per Windows richiede installare <a href="https://learn.microsoft.com/it-it/windows/wsl/install">WSL</a>:
42
+
43
+ ```
44
+ wsl --install
45
+ ```
46
+ Per installare MPV su WSL, basta eseguire:
47
+ ```
48
+ sudo apt install mpv
49
+ ```
50
+
51
+ Per VLC:
52
+ ```
53
+ sudo apt install vlc
54
+ ```
55
+
56
+ Il programma dovrà essere installato e avviato da WSL:
57
+
58
+ ```
59
+ python3 -m pip install aw-cli
60
+ ```
61
+ </details>
62
+ <details><summary><b>Versione Legacy</b></summary>
63
+ Per installare la versione Legacy, è necessario avere <a href="https://www.git-scm.com/download/win">git</a>.
64
+
65
+
66
+ ```
67
+ python3 -m pip install git+https://github.com/fexh10/aw-cli.git@winLegacy
68
+ ```
69
+
70
+ </details>
71
+ </details>
72
+
73
+ <details><summary><b>Android</b></summary>
74
+ Android richiede l'installazione di <a href="https://github.com/termux/termux-app/releases/tag/v0.118.0">termux</a>. <br>
75
+
76
+ ```
77
+ pkg update && pkg upgrade
78
+ pkg install python python-pip libxml2 libxslt pkg-config
79
+ python3 -m pip install aw-cli
80
+ ```
81
+ </details>
82
+
83
+ <details><summary><b>iOS</b></summary>
84
+ La versione per iOS richiede <a href="https://apps.apple.com/it/app/ish-shell/id1436902243">iSH</a> e <a href="https://apps.apple.com/it/app/vlc-media-player/id650377962">VLC</a>.
85
+
86
+ ```
87
+ apk update
88
+ apk upgrade
89
+ apk add python3 python3-dev py3-pip gcc musl-dev git
90
+ python3 -m pip install git+https://github.com/fexh10/aw-cli.git@iosCompatibility
91
+ ```
92
+ Nota che la velocità di download e caricamento molto bassa è un problema di iSH e non di aw-cli.
93
+ </details>
94
+
95
+ ## Problemi noti
96
+ Se è impossibile avviare `aw-cli`, è possibile che non si abbia la cartella degli script Python aggiunta al path. <br />
97
+
98
+ <details> <summary><b>Linux/Windows WSL</b></summary>
99
+ Aggiungere la seguente linea al file di profilo (.bashrc, .zshrc, o altro):
100
+
101
+ ```
102
+ export PATH=$PATH:$HOME/.local/bin
103
+ ```
104
+ Riavviare il terminale o eseguire `source ~/.bashrc`.
105
+
106
+ </details>
107
+
108
+ <details> <summary><b>MacOS</b></summary>
109
+ Aggiungere la seguente linea al file di profilo (.bashrc, .zshrc, o altro):
110
+
111
+ ```
112
+ export PATH=$PATH:$HOME/Library/Python/3.x/bin
113
+ ```
114
+ Sostituire `3.x` con la propria versione di Python. <br>
115
+ Riavviare il terminale o eseguire `source ~/.bashrc`.
116
+ </details>
117
+
118
+ <details> <summary><b>Windows Legacy</b></summary>
119
+ Inserire da linea di comando:
120
+
121
+ ```
122
+ setx PATH "%PATH%;%APPDATA%\Local\Programs\Python\Python3x\Scripts
123
+ ```
124
+ Sostituire `3.x` con la propria versione di Python. <br/>
125
+ Se necessario, riavviare il sistema.
126
+ </details>
127
+
128
+ ## Disinstallazione
129
+
130
+ ```
131
+ python3 -m pip uninstall aw-cli
132
+ ```
133
+
134
+ ## Utilizzo
135
+ ```
136
+ usage: aw-cli [-h] [-v] [-c [{r}]] [-l [{a,s,d,t}]] [-i] [-s] [-d] [-o] [-p] [-u [UPDATE]] [-a]
137
+
138
+ Guarda anime dal terminale e molto altro!
139
+
140
+ Informazioni:
141
+ -h, --help mostra questo messaggio
142
+ -v, --versione stampa la versione del programma
143
+
144
+ Opzioni:
145
+ -c [{r}], --cronologia [{r}]
146
+ continua a guardare un anime dalla cronologia. 'r' per rimuovere un anime (opzionale)
147
+ -l [{a,s,d,t}], --lista [{a,s,d,t}]
148
+ lista degli ultimi anime usciti su AnimeWorld. a = all, s = sub, d = dub, t = tendenze. Default 'a'
149
+ -i, --info visualizza le informazioni e la trama di un anime
150
+ -s, --syncplay usa syncplay per guardare un anime insieme ai tuoi amici
151
+ -d, --download scarica gli episodi che preferisci
152
+ -o, --offline apri gli episodi scaricati precedentemente direttamente dal terminale
153
+ -p, --privato guarda un episodio senza che si aggiorni la cronologia o AniList
154
+ -u [UPDATE], --update [UPDATE]
155
+ aggiorna il programma
156
+
157
+ Configurazione:
158
+ -a, --configurazione avvia il menu di configurazione
159
+ ```
160
+
161
+ ## Crediti
162
+ Progetto ispirato a <a href="https://github.com/pystardust/ani-cli">ani-cli</a>.
163
+
164
+ Un ringraziamento speciale a <a href="https://github.com/axtrat">axtrat</a> per l'aiuto nella realizzazione del progetto.
@@ -0,0 +1,181 @@
1
+ Metadata-Version: 2.1
2
+ Name: aw-cli
3
+ Version: 1.8
4
+ Summary: guarda anime dal terminale e molto altro!
5
+ Home-page: https://github.com/fexh10/aw-cli
6
+ Author: fexh10
7
+ License: GPL-3.0
8
+ Requires-Python: >3.10
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+ Requires-Dist: bs4
12
+ Requires-Dist: requests
13
+ Requires-Dist: lxml
14
+ Requires-Dist: pySmartDL
15
+ Requires-Dist: wheel
16
+ Requires-Dist: regex
17
+
18
+ # aw-cli
19
+ <h3 align="center">
20
+
21
+ Guarda anime dal terminale e molto altro!<br /> Gli anime vengono presi da <a href="https://www.animeworld.tv/">AnimeWorld</a>
22
+
23
+ </h3>
24
+
25
+ ## Anteprima
26
+ https://user-images.githubusercontent.com/90156014/210212814-e73ba7af-ce12-43ad-95ff-dcd85b39a45c.mp4
27
+
28
+ ## Indice
29
+
30
+ - [aw-cli](#aw-cli)
31
+ - [Anteprima](#anteprima)
32
+ - [Indice](#indice)
33
+ - [Installazione](#installazione)
34
+ - [Problemi noti](#problemi-noti)
35
+ - [Disinstallazione](#disinstallazione)
36
+ - [Utilizzo](#utilizzo)
37
+ - [Crediti](#crediti)
38
+
39
+
40
+ ## Installazione
41
+
42
+ Lo script funziona sia con [MPV](https://mpv.io/installation/) che con [VLC](https://www.videolan.org/vlc/index.it.html). <br />
43
+
44
+ <details><summary><b>Linux, MacOS</b></summary>
45
+ È possibile installare aw-cli da pip:
46
+
47
+ ```
48
+ python3 -m pip install aw-cli
49
+ ```
50
+ </details>
51
+
52
+ <details><summary><b>Windows</b></summary>
53
+ Attualmente, Windows presenta due versioni: la più recente, progettata per funzionare su WSL (Windows Subsystem for Linux), e una versione Legacy compatibile con PowerShell. La versione Legacy non riceverà ulteriori aggiornamenti, mentre l'altra sarà mantenuta costantemente.
54
+
55
+ <br>
56
+
57
+ <details><summary><b>Ultima Versione</b></summary>
58
+ L'ultima versione per Windows richiede installare <a href="https://learn.microsoft.com/it-it/windows/wsl/install">WSL</a>:
59
+
60
+ ```
61
+ wsl --install
62
+ ```
63
+ Per installare MPV su WSL, basta eseguire:
64
+ ```
65
+ sudo apt install mpv
66
+ ```
67
+
68
+ Per VLC:
69
+ ```
70
+ sudo apt install vlc
71
+ ```
72
+
73
+ Il programma dovrà essere installato e avviato da WSL:
74
+
75
+ ```
76
+ python3 -m pip install aw-cli
77
+ ```
78
+ </details>
79
+ <details><summary><b>Versione Legacy</b></summary>
80
+ Per installare la versione Legacy, è necessario avere <a href="https://www.git-scm.com/download/win">git</a>.
81
+
82
+
83
+ ```
84
+ python3 -m pip install git+https://github.com/fexh10/aw-cli.git@winLegacy
85
+ ```
86
+
87
+ </details>
88
+ </details>
89
+
90
+ <details><summary><b>Android</b></summary>
91
+ Android richiede l'installazione di <a href="https://github.com/termux/termux-app/releases/tag/v0.118.0">termux</a>. <br>
92
+
93
+ ```
94
+ pkg update && pkg upgrade
95
+ pkg install python python-pip libxml2 libxslt pkg-config
96
+ python3 -m pip install aw-cli
97
+ ```
98
+ </details>
99
+
100
+ <details><summary><b>iOS</b></summary>
101
+ La versione per iOS richiede <a href="https://apps.apple.com/it/app/ish-shell/id1436902243">iSH</a> e <a href="https://apps.apple.com/it/app/vlc-media-player/id650377962">VLC</a>.
102
+
103
+ ```
104
+ apk update
105
+ apk upgrade
106
+ apk add python3 python3-dev py3-pip gcc musl-dev git
107
+ python3 -m pip install git+https://github.com/fexh10/aw-cli.git@iosCompatibility
108
+ ```
109
+ Nota che la velocità di download e caricamento molto bassa è un problema di iSH e non di aw-cli.
110
+ </details>
111
+
112
+ ## Problemi noti
113
+ Se è impossibile avviare `aw-cli`, è possibile che non si abbia la cartella degli script Python aggiunta al path. <br />
114
+
115
+ <details> <summary><b>Linux/Windows WSL</b></summary>
116
+ Aggiungere la seguente linea al file di profilo (.bashrc, .zshrc, o altro):
117
+
118
+ ```
119
+ export PATH=$PATH:$HOME/.local/bin
120
+ ```
121
+ Riavviare il terminale o eseguire `source ~/.bashrc`.
122
+
123
+ </details>
124
+
125
+ <details> <summary><b>MacOS</b></summary>
126
+ Aggiungere la seguente linea al file di profilo (.bashrc, .zshrc, o altro):
127
+
128
+ ```
129
+ export PATH=$PATH:$HOME/Library/Python/3.x/bin
130
+ ```
131
+ Sostituire `3.x` con la propria versione di Python. <br>
132
+ Riavviare il terminale o eseguire `source ~/.bashrc`.
133
+ </details>
134
+
135
+ <details> <summary><b>Windows Legacy</b></summary>
136
+ Inserire da linea di comando:
137
+
138
+ ```
139
+ setx PATH "%PATH%;%APPDATA%\Local\Programs\Python\Python3x\Scripts
140
+ ```
141
+ Sostituire `3.x` con la propria versione di Python. <br/>
142
+ Se necessario, riavviare il sistema.
143
+ </details>
144
+
145
+ ## Disinstallazione
146
+
147
+ ```
148
+ python3 -m pip uninstall aw-cli
149
+ ```
150
+
151
+ ## Utilizzo
152
+ ```
153
+ usage: aw-cli [-h] [-v] [-c [{r}]] [-l [{a,s,d,t}]] [-i] [-s] [-d] [-o] [-p] [-u [UPDATE]] [-a]
154
+
155
+ Guarda anime dal terminale e molto altro!
156
+
157
+ Informazioni:
158
+ -h, --help mostra questo messaggio
159
+ -v, --versione stampa la versione del programma
160
+
161
+ Opzioni:
162
+ -c [{r}], --cronologia [{r}]
163
+ continua a guardare un anime dalla cronologia. 'r' per rimuovere un anime (opzionale)
164
+ -l [{a,s,d,t}], --lista [{a,s,d,t}]
165
+ lista degli ultimi anime usciti su AnimeWorld. a = all, s = sub, d = dub, t = tendenze. Default 'a'
166
+ -i, --info visualizza le informazioni e la trama di un anime
167
+ -s, --syncplay usa syncplay per guardare un anime insieme ai tuoi amici
168
+ -d, --download scarica gli episodi che preferisci
169
+ -o, --offline apri gli episodi scaricati precedentemente direttamente dal terminale
170
+ -p, --privato guarda un episodio senza che si aggiorni la cronologia o AniList
171
+ -u [UPDATE], --update [UPDATE]
172
+ aggiorna il programma
173
+
174
+ Configurazione:
175
+ -a, --configurazione avvia il menu di configurazione
176
+ ```
177
+
178
+ ## Crediti
179
+ Progetto ispirato a <a href="https://github.com/pystardust/ani-cli">ani-cli</a>.
180
+
181
+ Un ringraziamento speciale a <a href="https://github.com/axtrat">axtrat</a> per l'aiuto nella realizzazione del progetto.
@@ -8,7 +8,12 @@ aw_cli.egg-info/entry_points.txt
8
8
  aw_cli.egg-info/requires.txt
9
9
  aw_cli.egg-info/top_level.txt
10
10
  awcli/__init__.py
11
+ awcli/anilist.py
12
+ awcli/anime.py
13
+ awcli/arg_parser.py
11
14
  awcli/run.py
12
15
  awcli/utilities.py
16
+ awcli/version.py
17
+ tests/test_anime.py
13
18
  tests/test_run.py
14
19
  tests/test_utilities.py
@@ -0,0 +1,162 @@
1
+ import requests
2
+
3
+ tokenAnilist = "tokenAnilist: False"
4
+ user_id = 0
5
+ ratingAnilist = False
6
+ preferitoAnilist = False
7
+ dropAnilist = False
8
+
9
+ class TokenError(Exception):
10
+ pass
11
+
12
+
13
+ def addToAnilistFavourite(id_anilist: int, ep: int, voto: float):
14
+ """
15
+ Collegamento alle API di AniList per aggiornare
16
+ automaticamente gli anime.
17
+
18
+ Args:
19
+ id_anilist (int): l'id dell'anime su AniList.
20
+ ep (int): il numero dell'episodio visualizzato.
21
+ voto (float): il voto dell'anime.
22
+ """
23
+
24
+ query = """
25
+ mutation ($idAnime: Int, $status: MediaListStatus, $episodio : Int, $score: Float) {
26
+ SaveMediaListEntry (mediaId: $idAnime, status: $status, progress : $episodio, score: $score) {
27
+ status
28
+ progress
29
+ score
30
+ },
31
+ ToggleFavourite(animeId:$idAnime){
32
+ anime {
33
+ nodes {
34
+ id
35
+ }
36
+ }
37
+ }
38
+ }
39
+ """
40
+
41
+ var = {
42
+ "idAnime": id_anilist,
43
+ "status": "COMPLETED",
44
+ "episodio": ep,
45
+ "score": voto
46
+ }
47
+
48
+ requestModifyAnilist(query, var)
49
+
50
+
51
+ def addToAnilist(id_anilist: int, ep: int, status_list: str, voto: float) -> None:
52
+ """
53
+ Collegamento alle API di AniList per aggiornare
54
+ automaticamente gli anime.
55
+
56
+ Args:
57
+ id_anilist (int): l'id dell'anime su AniList.
58
+ ep (int): il numero dell'episodio visualizzato.
59
+ voto (float): il voto dell'anime.
60
+ status_list (str): lo stato dell'anime per l'utente. Se è in corso verrà impostato su "CURRENT", se completato su "COMPLETED".
61
+ """
62
+
63
+ query = """
64
+ mutation ($idAnime: Int, $status: MediaListStatus, $episodio : Int, $score: Float) {
65
+ SaveMediaListEntry (mediaId: $idAnime, status: $status, progress : $episodio, score: $score) {
66
+ status
67
+ progress
68
+ score
69
+ }
70
+ }
71
+ """
72
+
73
+ var = {
74
+ "idAnime": id_anilist,
75
+ "status": status_list,
76
+ "episodio": ep,
77
+ }
78
+
79
+ if voto != 0:
80
+ var["score"] = voto
81
+
82
+ requestModifyAnilist(query, var)
83
+
84
+
85
+ def getAnilistUserId() -> int:
86
+ """
87
+ Collegamento alle API di AniList per trovare
88
+ l'id dell'utente in base al token AniList dell'utente.
89
+
90
+ Returns:
91
+ int: l'id dell'utente.
92
+ """
93
+
94
+ query = """
95
+ query {
96
+ Viewer {
97
+ id
98
+ }
99
+ }
100
+ """
101
+
102
+ header_anilist = {'Authorization': 'Bearer ' + tokenAnilist, 'Content-Type': 'application/json', 'Accept': 'application/json'}
103
+ risposta = requests.post('https://graphql.anilist.co',headers=header_anilist,json={'query' : query})
104
+ if risposta.status_code != 200:
105
+ raise TokenError("Errore: Token AniList sbagliato")
106
+
107
+ user_id = int(risposta.json()["data"]["Viewer"]["id"])
108
+
109
+ return user_id
110
+
111
+
112
+ def getAnimePrivateRating(id_anime: int) -> int:
113
+ """
114
+ Collegamento alle API di AniList per trovare
115
+ il voto dato all'anime dall'utente.
116
+
117
+ Args:
118
+ id_anime (int): l'id dell'anime su Anilist.
119
+
120
+ Returns:
121
+ int: il voto dell'utente.
122
+ """
123
+
124
+ query = """
125
+ query ($idAnime: Int, $userId: Int) {
126
+ MediaList(userId: $userId, mediaId: $idAnime) {
127
+ score
128
+ }
129
+ }
130
+ """
131
+ var = {
132
+ "idAnime": id_anime,
133
+ "userId": user_id
134
+ }
135
+
136
+ header_anilist = {
137
+ 'Authorization': 'Bearer ' + tokenAnilist,
138
+ 'Content-Type': 'application/json', 'Accept': 'application/json'
139
+ }
140
+
141
+ risposta = requests.post('https://graphql.anilist.co',headers=header_anilist, json={'query': query, 'variables': var})
142
+ if risposta.status_code != 200:
143
+ return 0
144
+
145
+ return str(risposta.json()["data"]["MediaList"]["score"])
146
+
147
+
148
+ def requestModifyAnilist(query: str, var: dict):
149
+ """
150
+ Request alle API di Anilist.
151
+ Se la richiesta non va a buon fine, viene stampato un errore.
152
+
153
+ Args:
154
+ query (str): la stringa che contiene la query.
155
+ var (dict): dizionario che contiene le variabili da passare alla query.
156
+ """
157
+
158
+ header_anilist = {'Authorization': 'Bearer ' + tokenAnilist, 'Content-Type': 'application/json', 'Accept': 'application/json'}
159
+ risposta = requests.post('https://graphql.anilist.co',headers=header_anilist,json={'query' : query, 'variables' : var})
160
+
161
+ if risposta.status_code != 200:
162
+ print("Impossibile aggiornare AniList!")