def import_actor(start, end):
    person_list = []
    for i in range(start, end):
        try:
            p = Person().details(i)
            tmdb_id = p.id
            imdb_id = p.imdb_id
            name = p.name
            biography = p.biography
            profile_path = p.profile_path
            gender = "Other"  # 0 - Not specified 1 - Female 2 - Male 3 - no binary
            if p.gender == 2:
                gender = "Male"
            elif p.gender == 1:
                gender = "Female"
            date_birth = p.birthday
            actor = DbActor(tmdb_id, imdb_id, name, biography, profile_path,
                            gender, date_birth)
            person_list.append(actor)
            print(actor.tmdb_id, actor.imdb_id, actor.name, actor.profile_path,
                  actor.gender, actor.date_birth)
            # print(actor.biography)
        except TMDbException:
            pass
    return person_list
Beispiel #2
0
def tmdb_get_metadata(config_path, data, type):
    # Instantiate TMDB objects
    tmdb_id = int(data)

    api_key = config_tools.TMDB(config_path).apikey
    language = config_tools.TMDB(config_path).language
    is_movie = config_tools.Plex(config_path).library_type == "movie"

    if type in ["overview", "poster", "backdrop"]:
        collection = Collection()
        collection.api_key = api_key
        collection.language = language
        try:
            if type == "overview":
                meta = collection.details(tmdb_id).overview
            elif type == "poster":
                meta = collection.details(tmdb_id).poster_path
            elif type == "backdrop":
                meta = collection.details(tmdb_id).backdrop_path
        except AttributeError:
            media = Movie() if is_movie else TV()
            media.api_key = api_key
            media.language = language
            try:
                if type == "overview":
                    meta = media.details(tmdb_id).overview
                elif type == "poster":
                    meta = media.details(tmdb_id).poster_path
                elif type == "backdrop":
                    meta = media.details(tmdb_id).backdrop_path
            except AttributeError:
                raise ValueError(
                    "| TMDb Error: TMBd {} ID: {} not found".format(
                        "Movie/Collection" if is_movie else "Show", tmdb_id))
    elif type in ["biography", "profile", "name"]:
        person = Person()
        person.api_key = api_key
        person.language = language
        try:
            if type == "biography":
                meta = person.details(tmdb_id).biography
            elif type == "profile":
                meta = person.details(tmdb_id).profile_path
            elif type == "name":
                meta = person.details(tmdb_id).name
        except AttributeError:
            raise ValueError(
                "| TMDb Error: TMBd Actor ID: {} not found".format(tmdb_id))
    else:
        raise RuntimeError(
            "type {} not yet supported in tmdb_get_metadata".format(type))

    if meta is None:
        raise ValueError("| TMDb Error: TMDB ID {} has no {}".format(
            tmdb_id, type))
    elif type in ["profile", "poster", "backdrop"]:
        return "https://image.tmdb.org/t/p/original" + meta
    else:
        return meta
Beispiel #3
0
 def setUp(self):
     self.tmdb = TMDb()
     self.tmdb.api_key = os.environ['TMDB_API_KEY']
     self.tmdb.language = "en"
     self.tmdb.debug = True
     self.tmdb.wait_on_rate_limit = True
     self.tmdb.cache = False
     self.person = Person()
Beispiel #4
0
 def setUp(self):
     self.tmdb = TMDb()
     self.tmdb.api_key = os.environ['api_key']
     self.movie = Movie()
     self.discover = Discover()
     self.tv = TV()
     self.person = Person()
     self.collection = Collection()
     self.company = Company()
     self.season = Season()
def tmdb_get_summary(data, type):
    collection = Collection()
    person = Person()
    collection.api_key = config_tools.TMDB().apikey
    person.api_key = collection.api_key
    collection.language = config_tools.TMDB().language
    person.language = collection.language

    if type == "overview":
        return collection.details(data).overview
    elif type == "biography":
        return person.details(data).biography
Beispiel #6
0
 def setUp(self):
     self.tmdb = TMDb()
     self.tmdb.api_key = os.environ['TMDB_API_KEY']
     self.tmdb.language = 'en'
     self.tmdb.debug = True
     self.tmdb.wait_on_rate_limit = True
     self.movie = Movie()
     self.discover = Discover()
     self.tv = TV()
     self.person = Person()
     self.collection = Collection()
     self.company = Company()
     self.season = Season()
Beispiel #7
0
def makeWebhookResult(data):
    print("starting makeWebhookResult...")

    res = data['results']
    result = res[0]
    id = result['id']
    person = Person()
    p = person.details(id)

    speech = "Here is a short biography of " + p.name + ": \n\n" + p.biography

    print("Response:")
    print(speech)

    return {"fulfillmentText": speech, "source": "apiai-movie-webhook-sample"}
Beispiel #8
0
 def setUp(self):
     self.tmdb = TMDb()
     self.tmdb.api_key = os.environ["TMDB_API_KEY"]
     self.tmdb.language = "en"
     self.tmdb.debug = True
     self.tmdb.wait_on_rate_limit = True
     self.movie = Movie()
     self.discover = Discover()
     self.tv = TV()
     self.person = Person()
     self.collection = Collection()
     self.company = Company()
     self.network = Network()
     self.search = Search()
     self.season = Season()
     self.list = List()
def tmdb_get_summary(config_path, data, type):
    # Instantiate TMDB objects
    collection = Collection()
    collection.api_key = config_tools.TMDB(config_path).apikey
    collection.language = config_tools.TMDB(config_path).language
    
    person = Person()
    person.api_key = collection.api_key
    person.language = collection.language

    # Return object based on type
    if type == "overview":          return collection.details(data).overview
    elif type == "biography":       return person.details(data).biography
    elif type == "poster_path":     return collection.details(data).poster_path
    elif type == "profile_path":    return person.details(data).profile_path
    else: raise RuntimeError("type not yet supported in tmdb_get_summary")
Beispiel #10
0
def clean_votes(award, vote_list):
	actor_contain = 'performance' in award or 'director' in award or 'screenplay' in award or 'score' in award or 'actor' in award or 'actress' in award
	if(not actor_contain):
		actor_contain = award in PEOPLE_AWARDS
	mov_contain = 'motion picture' in award or 'feature' in award or 'film' in award
	if(not mov_contain):
		mov_contain = award in ENTITY_AWARDS
	tv_contain = 'television' in award
	cleaned_votes = []
	if(actor_contain):
		for vote in vote_list:
			text = vote[0]
			person = Person()
			result = person.search(text)
			if(len(result) > 0):
				res = str(result[0])
				ind = get_curr_index(res, cleaned_votes)
				if(ind != -1):
					cleaned_votes[ind][1] = cleaned_votes[ind][1] + vote[1]
				else:
					cleaned_votes.append([res, vote[1]])
	elif(mov_contain):
		for vote in vote_list:
			text = vote[0]
			movie = Movie()
			result = movie.search(text)
			if(len(result) > 0):
				res = str(result[0])
				ind = get_curr_index(res, cleaned_votes)
				if(ind != -1):
					cleaned_votes[ind][1] = cleaned_votes[ind][1] + vote[1]
				else:
					cleaned_votes.append([res, vote[1]])
	if(tv_contain and not actor_contain):
		for vote in vote_list:
			text = vote[0]
			tv = TV()
			result = tv.search(text)
			if(len(result) > 0):
				res = str(result[0])
				ind = get_curr_index(res, cleaned_votes)
				if(ind != -1):
					cleaned_votes[ind][1] = cleaned_votes[ind][1] + vote[1]
				else:
					cleaned_votes.append([res, vote[1]])
	return cleaned_votes
Beispiel #11
0
def present_voter(tweets, award, nom_list):
	
	curr_votes_list = []
	for tweet in tweets:
		tweet_text = tweet["text"]
		tweet_tags = tweet["tags"]
		people = tweet_tags[0]
		# contains = award in tweet_text
		contains = partial_award_check(award.lower(), tweet_text)
		if(contains):
			for person in people:
				ind = get_curr_index(person, curr_votes_list)
				if(ind != -1):
					curr_votes_list[ind][1] = curr_votes_list[ind][1] + 1
				else:
					curr_votes_list.append([person, 1])
	cleaned_votes = []
	for vote in curr_votes_list:
		text = vote[0]
		person = Person()
		result = person.search(text)
		if(len(result) > 0):
			res = str(result[0])
			if(res in nom_list):
				continue
			ind = get_curr_index(res, cleaned_votes)
			if(ind != -1):
				cleaned_votes[ind][1] = cleaned_votes[ind][1] + vote[1]
			else:
				cleaned_votes.append([res, vote[1]])

	cleaned_votes.sort(key=vote_sort, reverse=True)
	count = 0
	presenters_list = []
	for vote in cleaned_votes:
		if(count == 1):
			break
		presenters_list.append(vote[0])
		count += 1
	return presenters_list
Beispiel #12
0
    def __init__(self):
        api_key = "e9ee4dd66aa205b259f29ccb98e9a989"
        self.tmdb = TMDb()
        self.tmdb.api_key = api_key
        self.tmdb.language = 'en'
        self.tmdb.debug = True

        self.movie = Movie(self.tmdb)
        self.discover = Discover(self.tmdb)

        # build the genre database
        self.genre = Genre(self.tmdb)
        genres = self.genre.movie_list()  # list
        self.genres_dict = {}  # a dict with keys: genre names and values: id
        for g in genres:
            self.genres_dict[g.name] = g.id

        # build the language database (ISO 639-1)
        self.language_dict = {}
        with open('./csv/language-codes_csv.csv', newline='') as csvfile:
            reader = csv.reader(csvfile, delimiter=',')
            for row in reader:
                self.language_dict[row[1]] = row[0]

        self.person = Person(self.tmdb)
        self.company = Company(self.tmdb)

        # initialize the searching attributes
        self.search_genre = None
        self.search_without_genre = None
        self.search_cast = None
        self.search_crew = None
        self.search_people = None
        self.search_company = None
        self.search_year = None
        self.search_upper_year = None
        self.search_lower_year = None
        self.search_rating = None
        self.search_language = None
def options_tmdb():
    print("")
    print("Type 0 to go exit the program.")
    print("Type 1 to get a list of the top 20 popular movies.")
    print("Type 2 to search for a movie.")
    print("Type 3 to see movie details by ID.")
    print("Type 4 to search for a serie.")
    print("Type 5 to search for information about a actor or actress.")
    TMDB_options = input(
        "What do you want to do on The movie database? Type a number from one of the options above.    "
    )
    print("")
    if (TMDB_options == "0"):
        exit()

    if (TMDB_options == "1"):
        popular = movie.popular()
        for p in popular:
            print("ID:", p.id)
            print("Title:", p.title)
            print("__________________________________________________")
            print("")
        time.sleep(3)
        options_tmdb()

    if (TMDB_options == "2"):
        search_input = input(
            "Type here the name of the movie you want to search:   ")
        search_movie = movie.search(search_input)
        for res in search_movie:
            print("Movie ID:", res.id)
            print("Movie Title:", res.title)
            print("Average rating movie:", res.vote_average)
            print("__________________________________________________")
            print("")
        time.sleep(3)
        options_tmdb()

    if (TMDB_options == "3"):
        input_id = input(
            "What is the ID of the movie you want to know more about?   ")
        m = movie.details(input_id)
        print("Movie title:", m.title)
        print("")
        print("Movie description:")
        print(m.overview)
        print("__________________________________________________")
        print("")
        time.sleep(3)
        options_tmdb()

    if (TMDB_options == "4"):
        show_input = input(
            "Type here the name of the serie you want to search:   ")
        show = tv.search(show_input)
        for result in show:
            print("Serie title:", result.name)
            print("")
            print("Serie description:")
            print(result.overview)
            print("__________________________________________________")
            print("")
        time.sleep(3)
        options_tmdb()

    if (TMDB_options == "5"):
        print(
            "Who do you want to search? Please fill in the firstname and surname of the actor or actress."
        )
        firstname = input("Firstname:  ")
        surname = input("Surname:  ")
        print("")
        fullname = firstname + "+" + surname
        url = "https://api.themoviedb.org/3/search/person?api_key=" + tmdb.api_key + "&query=" + fullname

        actordata = requests.get(url)
        x = actordata.text

        idfront = x.index("id") + 4
        idback = x.index("known") - 2
        id = x[idfront:idback]

        person = Person()
        p = person.details(id)
        print("Name actor/actress:", p.name)
        print("")
        print("Biography actor/actress:")
        print(p.biography)
        print("")
        time.sleep(3)
        options_tmdb()

    else:
        print(
            "You didn't type in one of the numbers in the list, Please try again."
        )
        options_tmdb()
# import of python modules
import configparser
import time
import requests

# import of the movie database module
from tmdbv3api import TMDb
from tmdbv3api import Movie
from tmdbv3api import TV
from tmdbv3api import Person

# variables for the movie database module
tmdb = TMDb()
movie = Movie()
tv = TV()
person = Person()

# reading the ini files for the offline genres of movies and series
config = configparser.ConfigParser()
config.read("moviegenre.ini")
config.read("seriegenre.ini")


# start by asking The movie database account or not
def start():
    TMDB_or_not = input(
        "Do you have an account for The movie database? type 'y' for yes and 'n' for no   "
    )
    if (TMDB_or_not == "y"):
        print(
            "You selected yes, you will be directed to The movie database login."