diff options
| author | Fuwn <[email protected]> | 2023-07-28 21:34:34 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2023-07-28 21:34:34 -0700 |
| commit | c32dd8832580d5850dbe6d2146a0d1d50a14756d (patch) | |
| tree | 15f7abd8d2315f53624a9ff28a73b003e1953c7d /src/due/anilist/utilities.py | |
| parent | feat(index): username route (diff) | |
| download | old.due.moe-c32dd8832580d5850dbe6d2146a0d1d50a14756d.tar.xz old.due.moe-c32dd8832580d5850dbe6d2146a0d1d50a14756d.zip | |
refactor(due): like-functions to modules
Diffstat (limited to 'src/due/anilist/utilities.py')
| -rw-r--r-- | src/due/anilist/utilities.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/due/anilist/utilities.py b/src/due/anilist/utilities.py new file mode 100644 index 0000000..033939e --- /dev/null +++ b/src/due/anilist/utilities.py @@ -0,0 +1,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"] + ) |