aboutsummaryrefslogtreecommitdiff
path: root/src/due/anilist/utilities.py
blob: 033939e147c87acd5c9f94a1e4b9fe4d7f322e0d (plain) (blame)
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
import requests


def user_id(anilist):
    viewer = requests.post(
        "https://graphql.anilist.co",
        json={"query": "{ Viewer { id } }"},
        headers={
            "Authorization": anilist["token_type"] + " " + anilist["access_token"],
            "Content-Type": "application/json",
            "Accept": "application/json",
        },
    ).json()["data"]["Viewer"]

    if viewer is None:
        return -1

    return int(viewer["id"])


def last_activity(id):
    return int(
        requests.post(
            "https://graphql.anilist.co",
            json={
                "query": f"""{{ Activity(userId: {id}, type: MEDIA_LIST, sort: ID_DESC) {{
                    __typename ... on ListActivity {{ createdAt }}
                }} }}"""
            },
            headers={
                "Content-Type": "application/json",
                "Accept": "application/json",
            },
        ).json()["data"]["Activity"]["createdAt"]
    )


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"]
    )