From 9d423cd4d31851c5d58a16ede9b38cacb1ae0dd6 Mon Sep 17 00:00:00 2001 From: Daniel Tam Date: Wed, 26 Jul 2023 00:24:30 -0500 Subject: [PATCH] update tools, update return list --- app/routers/animeguess.py | 4 ++-- tools/get-mal.py | 10 ++++++---- tools/mal.py | 13 +++++++++++++ tools/match-mal-offlinedb.py | 2 ++ tools/parse-anime.py | 4 +++- 5 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 tools/mal.py diff --git a/app/routers/animeguess.py b/app/routers/animeguess.py index 28de59c..cea3d5b 100644 --- a/app/routers/animeguess.py +++ b/app/routers/animeguess.py @@ -167,7 +167,7 @@ async def ag_list(): metadata = json.loads(metadata_file) if metadata['answer'].lower() == metadata['eng_title'].lower(): - anime_titles.append({'title': f'{metadata["answer"]} ({metadata["difficulty"]})') + anime_titles.append({'title': f'{metadata["answer"]} ({metadata["difficulty"]})'}) else: anime_titles.append({'title': f'{metadata["answer"]} [{metadata["eng_title"]}] ({metadata["difficulty"]})'}) @@ -180,7 +180,7 @@ async def ag_list(): metadata = json.loads(metadata_file) if metadata['answer'].lower() == metadata['eng_title'].lower(): - anime_titles.append({'title': metadata['answer'] ({metadata["difficulty"]})}) + anime_titles.append({'title': f'{metadata["answer"]} ({metadata["difficulty"]})'}) else: anime_titles.append({'title': f'{metadata["answer"]} [{metadata["eng_title"]}] ({metadata["difficulty"]})'}) diff --git a/tools/get-mal.py b/tools/get-mal.py index e2215b0..e38ead2 100644 --- a/tools/get-mal.py +++ b/tools/get-mal.py @@ -11,7 +11,7 @@ anime_list = [] while offset < 5000: # Can only get 500 at a time - url = f'https://api.myanimelist.net/v2/anime/ranking?ranking_type=tv&limit=500&offset={offset}' + url = f'https://api.myanimelist.net/v2/anime/ranking?ranking_type=tv&fields=id,title,alternative_titles&limit=500&offset={offset}' resp = requests.get(url, headers={ 'X-MAL-CLIENT-ID': CLIENT_ID }) @@ -19,7 +19,9 @@ while offset < 5000: # Add into our list for node in anime['data']: - anime_list.append({'title': node['node']['title'], 'id': node['node']['id']}) + anime_item = {'title': node['node']['title'], 'id': node['node']['id']} + anime_list.append({'title': node['node']['title'], 'id': node['node']['id'], 'en': node['node']['alternative_titles']['en']}) + # Start at the next 500 offset = offset + 500 @@ -32,7 +34,7 @@ offset = 0 while offset < 250: # Limit to 250 entries at a time - url = f'https://api.myanimelist.net/v2/anime/ranking?ranking_type=movie&limit=250&offset={offset}' + url = f'https://api.myanimelist.net/v2/anime/ranking?ranking_type=movie&fields=id,title,alternative_titles&limit=250&offset={offset}' resp = requests.get(url, headers={ 'X-MAL-CLIENT-ID': CLIENT_ID }) @@ -40,7 +42,7 @@ while offset < 250: # Add into our list for node in anime['data']: - anime_list.append({'title': node['node']['title'], 'id': node['node']['id']}) + anime_list.append({'title': node['node']['title'], 'id': node['node']['id'], 'en': node['node']['alternative_titles']['en']}) # Start at the next 250 offset = offset + 250 diff --git a/tools/mal.py b/tools/mal.py new file mode 100644 index 0000000..b109e3d --- /dev/null +++ b/tools/mal.py @@ -0,0 +1,13 @@ +import requests +import os +import json + +CLIENT_ID = os.getenv('MAL_CLIENT_ID') + +url = f'https://api.myanimelist.net/v2/anime/37450?fields=id,title,main_picture,alternative_titles,start_date,end_date,synopsis,mean,rank,popularity,num_list_users,num_scoring_users,nsfw,created_at,updated_at,media_type,status,genres,my_list_status,num_episodes,start_season,broadcast,source,average_episode_duration,rating,pictures,background,related_anime,related_manga,recommendations,studios,statistics' + +resp = requests.get(url, headers={ + 'X-MAL-CLIENT-ID': CLIENT_ID +}) + +print(json.dumps(resp.json(), indent=2)) \ No newline at end of file diff --git a/tools/match-mal-offlinedb.py b/tools/match-mal-offlinedb.py index d143b09..e73a7b8 100644 --- a/tools/match-mal-offlinedb.py +++ b/tools/match-mal-offlinedb.py @@ -19,6 +19,8 @@ for mal in mal_anime: for anime in anime_db['data']: if anime['title'] == mal['title']: anime['mal_id'] = mal['id'] + anime['en'] = mal['en'] + matched_list['data'].append(anime) found = True break diff --git a/tools/parse-anime.py b/tools/parse-anime.py index d664e84..4cf790c 100644 --- a/tools/parse-anime.py +++ b/tools/parse-anime.py @@ -144,6 +144,7 @@ remove_anime = [ "Yuru Camp\u25b3 Movie", "The First Slam Dunk", "Kaguya-sama wa Kokurasetai: First Kiss wa Owaranai", + "White Album" # Similar synonyms "Shi Er Shengxiao: Fuxing Gao Zhao Zhu Xiao Ba", @@ -301,7 +302,8 @@ skip_seasons_entries = [ # Exclude from removal exclude_from_removal = [ - "Kara no Kyoukai Movie: Mirai Fukuin" + "Kara no Kyoukai Movie: Mirai Fukuin", + "White Album 2" ] f = open('matched-anime-list.json')