Exemple #1
0
    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:
Exemple #2
0
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