comparison getlist.py @ 32:fdbafd3e86d9

add tmdb to getlist.py
author Paper <mrpapersonic@gmail.com>
date Sun, 13 Jun 2021 14:59:37 -0400
parents b5cf08125fd5
children 2aa9614cb39a
comparison
equal deleted inserted replaced
31:b5cf08125fd5 32:fdbafd3e86d9
1 import urllib.request, json, re, sys 1 import urllib.request, json, re, sys
2 2
3 id = sys.argv[1] 3 # Initialize variables
4 key = "f090bb54758cabf231fb605d3e3e0468" # https://github.com/xbmc/metadata.themoviedb.org.python/blob/master/python/lib/tmdbscraper/tmdbapi.py#L36
5
6 # Ask for source
7 if not 2 >= len(sys.argv): source = sys.argv[1]
8 if not 'source' in locals() or not 'source' in globals():
9 source = input("Which website would you like to pull titles from? [tmdb, mal]: ")
10 while source not in ["tmdb", "mal"]:
11 print("Not a valid source! Exiting.")
12 sys.exit()
13
14 # Ask for ID
15 if not 3 >= len(sys.argv): source = sys.argv[2]
4 if not 'id' in locals() or not 'id' in globals(): 16 if not 'id' in locals() or not 'id' in globals():
5 id = input("What is the MyAnimeList ID for your anime?: ") 17 id = input("What is the ID for your show?: ")
6 try: 18 try:
7 temp = int(id) 19 temp = int(id)
8 except: 20 except:
9 print("Not a valid MyAnimeList ID! Exiting.") 21 print("Not a valid ID! Exiting.")
10 sys.exit() 22 sys.exit()
11 23
12 with urllib.request.urlopen(f"https://api.jikan.moe/v3/anime/{str(id)}/episodes") as url: 24 # Scrapers
13 data = json.loads(url.read().decode()) 25 if source == 'tmdb':
14 count = 0 26 season = input("Which season do you want?: ") # required because api is... odd
27 try:
28 temp = int(season)
29 except:
30 print("Not a valid season! Exiting.")
31 sys.exit()
32 data = json.loads(urllib.request.urlopen(f'https://api.themoviedb.org/3/tv/{str(id)}?api_key={key}').read().decode())
33 amount = data["number_of_episodes"]
15 f = open("list.txt", "w", encoding="utf-8") 34 f = open("list.txt", "w", encoding="utf-8")
16 f.write("") 35 f.write("")
17 f.close() 36 f.close()
18 for i in range(len(data["episodes"])): 37 count = 1
19 f = open("list.txt", "a", encoding="utf-8") 38 for i in range(amount): # this may count as spamming the api but i don't care lol
20 """ 39 with urllib.request.urlopen(f'https://api.themoviedb.org/3/tv/{str(id)}/season/{season}/episode/{count}?api_key={key}') as url:
21 this is really hard to read at first glance so i'll break it down 40 data = json.loads(url.read().decode())
22 it replaces "?" and ":" with legal counterparts so windows stops screaming 41 f = open("list.txt", "a", encoding="utf-8")
23 then strips among a dash (which usually shows different parts in an episode) 42 f.write(data["name"].replace("?", "?").replace(":", "꞉").replace('"', "“").split("/")[0].rstrip() + "\n")
24 it then removes the last part of the string cause most, if not of MAL's have spaces before slashes 43 count += 1
25 """ 44 f.close()
26 f.write(data["episodes"][count]["title"].replace("?", "?").replace(":", "꞉").replace('"', "“").split("/")[0].rstrip() + "\n") 45 if source == 'mal':
27 count += 1 46 with urllib.request.urlopen(f"https://api.jikan.moe/v3/anime/{str(id)}/episodes") as url:
47 data = json.loads(url.read().decode())
48 count = 0
49 f = open("list.txt", "w", encoding="utf-8")
50 f.write("")
28 f.close() 51 f.close()
52 for i in range(len(data["episodes"])):
53 f = open("list.txt", "a", encoding="utf-8")
54 f.write(data["episodes"][count]["title"].replace("?", "?").replace(":", "꞉").replace('"', "“").split("/")[0].rstrip() + "\n")
55 count += 1
56 f.close()