aboutsummaryrefslogtreecommitdiff
path: root/src/due
diff options
context:
space:
mode:
Diffstat (limited to 'src/due')
-rw-r--r--src/due/media.py26
-rw-r--r--src/due/routes/index.py9
2 files changed, 29 insertions, 6 deletions
diff --git a/src/due/media.py b/src/due/media.py
index cefc1c0..c4be6c9 100644
--- a/src/due/media.py
+++ b/src/due/media.py
@@ -15,8 +15,21 @@ def user_id(anilist):
)
-def create_collection(anilist, type):
- current_collection = media_list_collection(anilist, type)
+def user_name_to_id(name):
+ return int(
+ requests.post(
+ "https://graphql.anilist.co",
+ json={"query": f'{{ User(name: "{name}") {{ id }} }}'},
+ headers={
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+ },
+ ).json()["data"]["User"]["id"]
+ )
+
+
+def create_collection(anilist, type, username=None):
+ current_collection = media_list_collection(anilist, type, username)
current = []
for list in current_collection["MediaListCollection"]["lists"]:
@@ -56,10 +69,15 @@ def create_collection(anilist, type):
# }}"""
-def media_list_collection(anilist, type):
+def media_list_collection(anilist, type, username=None):
return requests.post(
"https://graphql.anilist.co",
- json={"query": media_list_collection_query(user_id(anilist), type)},
+ 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",
diff --git a/src/due/routes/index.py b/src/due/routes/index.py
index 9899b5b..408678c 100644
--- a/src/due/routes/index.py
+++ b/src/due/routes/index.py
@@ -49,7 +49,10 @@ def home():
if request.cookies.get("anilist"):
anilist = json.loads(request.cookies.get("anilist"))
start = time.time()
- (current_anime, name) = create_collection(anilist, "ANIME")
+ (current_anime, name) = create_collection(
+ anilist, "ANIME", request.args.get("username")
+ )
+
releasing_anime = [
media for media in current_anime if media["media"]["status"] == "RELEASING"
]
@@ -73,7 +76,9 @@ def home():
manga_body = '<a href="/?show_manga">Show manga</a>'
if not disable_manga:
- (current_manga, _) = create_collection(anilist, "MANGA")
+ (current_manga, _) = create_collection(
+ anilist, "MANGA", request.args.get("username")
+ )
releasing_manga = [
media
for media in current_manga