1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
import requests
from .utilities import user_id, user_name_to_id
def create_collection(anilist, type, username=None):
current_collection = media_list_collection(anilist, type, username)
current = []
for list in current_collection["MediaListCollection"]["lists"]:
current += list["entries"]
return (current, current_collection["MediaListCollection"]["user"]["name"])
def media_list_collection(anilist, type, username=None):
return requests.post(
"https://graphql.anilist.co",
json={
"query": media_list_collection_query(
user_id(anilist) if username is None else user_name_to_id(username),
type,
)
},
headers={
"Authorization": anilist["token_type"] + " " + anilist["access_token"],
"Content-Type": "application/json",
"Accept": "application/json",
},
).json()["data"]
def media_list_collection_query(user_id: int, type) -> str:
return f"""{{
MediaListCollection(userId: {user_id}, type: {"ANIME" if type == "ANIME" else "MANGA"}, status_not_in: [COMPLETED]) {{
hasNextChunk
lists {{
entries {{
media {{
id
status
type
episodes
format
title {{ romaji english native }}
nextAiringEpisode {{ episode timeUntilAiring }}
mediaListEntry {{ progress }}
startDate {{ year }}
}}
}}
}}
user {{ name }}
}}
}}"""
|