count += 1 print(count) if series: try: title = re.sub(r"\B([A-Z])", r" \1", series) k = imdb.search_for_title(title) b = k[0]['imdb_id'] year = k[0]['year'] try: genre = imdb.get_title_genres(b)['genres'] genre_dict[series] = genre except LookupError: print('LookupError for {}', series) genre_dict[series] = 'unknown' try: eps = len(imdb.get_title_episodes(b)['seasons']) seasons_dict[series] = eps except LookupError: print('LookupError for {}', series) seasons_dict[series] = 1 except LookupError: print('LookupError for {}', series) except TimeoutError: print('TimeoutError for {}', series) with open('gen.csv', 'w') as csv_file: writer = csv.writer(csv_file) for key, value in genre_dict.items(): writer.writerow([key, value]) with open('sea.csv', 'w') as csv_file:
def test_get_title_episodes_raises_when_exclude_episodes_enabled(): client = Imdb(exclude_episodes=True) with pytest.raises(ValueError): client.get_title_episodes('tt0303461')
def moviedetails(sresult, seasonnum): imdbp = Imdb() tv_result = ia.search_movie(sresult) print("sresult", sresult, tv_result) for item in tv_result: print("--------MOVIE DETAILS IMDB---------------") #print(type(item)) i.update(item) #print(item) print(item['long imdb title'], item.movieID) #print(ia.get_movie[item.movieID]) print(sresult) print((item['long imdb title'])) #ia.update(item) try: m = imdbp.get_title_episodes(str("tt" + item.movieID)) except: continue #m=(i.get_movie(item.movieID)) print("ID FOR TV and SEASON", m, seasonnum) if m == None or math.isnan(seasonnum): continue print("Updating episodes") seasonnum = int(seasonnum) - 1 g.write(str(sresult) + ";" + str(seasonnum + 1)) g.write("\n") try: #print(item['long imdb title']) print("______________EPISODES_______________\n") #print(m['episodes']) #for t in m['seasons'][seasonnum]: if 'seasons' in m.keys(): if 'episodes' in m['seasons'][seasonnum].keys(): for u in range(0, len(m['seasons'][seasonnum]['episodes'])): e = m['seasons'][seasonnum]['episodes'][u]['title'] g.write("\n") g.write(str(e) + "%") g.write("\n") print(str(e)) match = re.search( '/title/(.*)/', m['seasons'][seasonnum]['episodes'][u]['id']) titleid = match.group(1) #i.update(e) #details = i.get_movie(e.movieID) #i.update(details,'all') #print("DETAILS KEYS",details.keys()) #x = i.get_movie_infoset() #print("INFOSET",x) #print("MOVIE WRITER",details['writer']) #print("MOVIE DIRECTOR",details['director']) print("MOVIE ID", titleid) persondetail = imdbp.get_title_credits(str(titleid)) if 'writer' in persondetail['credits'].keys(): for index, item in enumerate( persondetail['credits']['writer']): #if persondetail['credits']['writer'][index]['job']=='written by': if 'job' in persondetail['credits']['writer'][ index].keys(): g.write( str(persondetail['credits']['writer'] [index]['name']) + ";" + str(persondetail['credits']['writer'] [index]['job'])) else: g.write( str(persondetail['credits']['writer'] [index]['name']) + ";" + "writer") match = re.search( '/name/nm(.*)/', persondetail['credits'] ['writer'][index]['id']) idofactor = match.group(1) persondetails( str(persondetail['credits']['writer'] [index]['name']), idofactor, 'crew') g.write("\n") if 'director' in persondetail['credits'].keys(): for index, item in enumerate( persondetail['credits']['director']): if persondetail['credits']['director'][index][ 'category'] == 'director': g.write( str(persondetail['credits']['director'] [index]['name']) + ";" + "director") match = re.search( '/name/nm(.*)/', persondetail['credits']['director'] [index]['id']) idofactor = match.group(1) persondetails( str(persondetail['credits']['director'] [index]['name']), idofactor, 'crew') g.write("\n") if 'producer' in persondetail['credits'].keys(): for index, item in enumerate( persondetail['credits']['producer']): #if persondetail['credits']['producer'][index]['job']=='producer' or persondetail['credits']['producer'][index]['job']=='executive producer': if 'job' in persondetail['credits'][ 'producer'][index].keys(): g.write( str(persondetail['credits']['producer'] [index]['name']) + ";" + str(persondetail['credits']['producer'] [index]['job'])) else: g.write( str(persondetail['credits']['producer'] [index]['name']) + ";" + "producer") match = re.search( '/name/nm(.*)/', persondetail['credits'] ['producer'][index]['id']) idofactor = match.group(1) persondetails( str(persondetail['credits']['producer'] [index]['name']), idofactor, 'crew') g.write("\n") #break print("_______END EPISODES___________\n") except UnicodeEncodeError as ude: continue