예제 #1
0
def create_match_genre_tvseries(tv_series_id):                  

    series_details  = get_details_tmdb_tv_series(tv_series_id, language)
    tv_json  = replace_none_with_empty_str(series_details)

    genres = tv_json['genres']
    
    for g in genres:
        genre = g     
        params = {}
        if 'id' in tv_json:
            params['id'] = str(tv_json['id'])
        if 'name' in genre:
            params['name'] = genre['name']
        if 'id' in genre:
            params['genre_id'] = str(genre['id'])
            #print(params)
        
        payload={"query" : "MERGE(n:Genre{name:{name},genre_id:{genre_id}}) RETURN n"}
        payload['params'] = params
        response_json = callNeo4j(payload, headers)
        if response_json is not None:
            payload={"query" :"MATCH (t:TvSeries),(n:Genre) WHERE t.id ={id} AND n.genre_id = {genre_id} MERGE (t)-[r:OF_GENRE]->(n) RETURN r"}
            params = {}
            params['id'] = str(tv_json['id'])
            params['genre_id'] = str(genre['id'])
            tv_series_id = str(tv_json['id'])
            genre_id =  str(genre['id'])
            payload['params'] = params
            #print(params)
            match_response_json = callNeo4j(payload, headers)
예제 #2
0
def last_episode(tv_series_id):
    #tv_series_id = '40075'
    tvseries = get_details_tmdb_tv_series(str(tv_series_id), language)
    tv_json = replace_none_with_empty_str(tvseries)
    last_episode_to_air = tv_json['last_episode_to_air']
    params = {}
    if str(last_episode_to_air) != '':
        if 'id' in tv_json:
            params['id'] = str(tv_json['id'])

        if 'air_date' in last_episode_to_air:
            params['last_episode_to_air_air_date'] = last_episode_to_air['air_date']
    
        if 'episode_number' in last_episode_to_air:
            params['last_episode_to_air_episode_number'] = last_episode_to_air['episode_number'] 
        if 'id' in last_episode_to_air:
            params['last_episode_to_air_id'] = str(last_episode_to_air['id'])
        if 'name' in last_episode_to_air:
            params['last_episode_to_air_name'] = last_episode_to_air['name'] 
        if 'overview' in last_episode_to_air:
            params['last_episode_to_air_overview'] = last_episode_to_air['overview']
        if 'production_code' in last_episode_to_air:
            params['last_episode_to_air_production_code'] = last_episode_to_air['production_code']
        if 'season_number' in last_episode_to_air:
            params['last_episode_to_air_season_number'] = last_episode_to_air['season_number']
       
        if 'show_id' in last_episode_to_air:
            params['last_episode_to_air_show_id'] = str(last_episode_to_air['show_id'])
        if 'still_path' in last_episode_to_air:
            params['last_episode_to_air_still_path'] = last_episode_to_air['still_path']
        if 'vote_average' in last_episode_to_air:
            params['last_episode_to_air_vote_average'] = last_episode_to_air['vote_average']
        if 'vote_count' in last_episode_to_air:
            params['last_episode_to_air_vote_count'] = last_episode_to_air['vote_count']
        payload = {"query":"MATCH(t:TvSeries{id:{id}}) SET t += {last_episode_to_air_air_date:{last_episode_to_air_air_date},last_episode_to_air_episode_number:{last_episode_to_air_episode_number},last_episode_to_air_id:{last_episode_to_air_id},last_episode_to_air_name:{last_episode_to_air_name},last_episode_to_air_overview:{last_episode_to_air_overview},last_episode_to_air_production_code:{last_episode_to_air_production_code},last_episode_to_air_season_number:{last_episode_to_air_season_number},last_episode_to_air_show_id:{last_episode_to_air_show_id},last_episode_to_air_still_path:{last_episode_to_air_still_path},last_episode_to_air_vote_average:{last_episode_to_air_vote_average},last_episode_to_air_vote_count:{last_episode_to_air_vote_count}} RETURN t"}
        payload['params'] = params
        response_json = callNeo4j(payload, headers)
        #print(response_json)

    else:
        
        if last_episode_to_air == '':
            if 'id' in tv_json:
                params['id'] = str(tv_json['id'])
            
            if 'last_episode_to_air' in tv_json:
                params['last_episode_to_air'] = tv_json['last_episode_to_air']
            payload={"query" : "MATCH(t:TvSeries{id:{id}})SET t += {last_episode_to_air:{last_episode_to_air}}RETURN t"}
            payload['params'] = params

            response_json = callNeo4j(payload, headers)
예제 #3
0
def tvseries_to_neo4j(tv_series_id):    
    tvseries = get_details_tmdb_tv_series(str(tv_series_id), language)
    tv_json = replace_none_with_empty_str(tvseries)
    params = {}
    
    if 'backdrop_path' in tv_json:
        params['backdrop_path'] = tv_json['backdrop_path']
    if 'first_air_date' in tv_json:
        params['first_air_date'] = tv_json['first_air_date']
    if 'homepage' in tv_json:
        params['homepage'] = tv_json['homepage']
    if 'id' in tv_json:
        params['id'] = str(tv_json['id'])
    if 'in_production' in tv_json:
        params['in_production'] = tv_json['in_production']   
    
    if 'name' in tv_json:
        params['name'] = tv_json['name']
  
    if 'number_of_episodes' in tv_json:
        params['number_of_episodes'] = tv_json['number_of_episodes']
    if 'number_of_seasons' in tv_json:
        params['number_of_seasons'] = tv_json['number_of_seasons']
    if 'original_language' in tv_json:
        params['original_language'] = tv_json['original_language']
    if 'original_name' in tv_json:
        params['original_name'] = tv_json['original_name']
    if 'overview' in tv_json:
        params['overview'] = tv_json['overview']
    if 'popularity' in tv_json:
        params['popularity'] = tv_json['popularity']
    if 'poster_path' in tv_json:
        params['poster_path'] = tv_json['poster_path']
    if 'status' in tv_json:
        params['status'] = tv_json['status']
    if 'type' in tv_json:
        params['type'] = tv_json['type']
    if 'vote_average' in tv_json:
        params['vote_average'] = tv_json['vote_average']
    if 'vote_count' in tv_json:
        params['vote_count'] = tv_json['vote_count']
        #print(params)
    
    payload={"query" : "MERGE(t:TvSeries {backdrop_path:{backdrop_path},first_air_date:{first_air_date},homepage:{homepage},id:{id},in_production:{in_production},name:{name},number_of_episodes:{number_of_episodes},number_of_seasons: {number_of_seasons},original_language: {original_language},original_name: {original_name},overview: {overview},popularity: {popularity},poster_path: {poster_path},status: {status},type: {type},vote_average:{vote_average} ,vote_count: {vote_count}}) RETURN t"}
    payload['params'] = params
    response_json = callNeo4j(payload, headers)
    next_episode_props = next_episode(tv_series_id)
    last_episode_props = last_episode(tv_series_id)
예제 #4
0
def tv_series_season_payload(tv_series_id, language):

    series_details = get_details_tmdb_tv_series(tv_series_id, language)
    #print(series_details)
    series_details["seasons"] = [
        dict(id=k1["id"],
             air_date=k1["air_date"],
             episode_count=k1["episode_count"],
             name=k1["name"],
             overview=k1["overview"],
             poster_path=k1["poster_path"],
             season_number=k1["season_number"])
        for k1 in series_details["seasons"]
    ]
    season_ids = series_details["seasons"]
    #season_ids = list({v['id']:v for v in season_id}.values())
    #print(season_ids)
    for s_id in season_ids:
        #print(s_id)
        series_id = series_details['id']
        season_id = replace_none_with_empty_str(s_id)
        #print(series_id)
        #print(season_id)
        params = {}
        if 'id' in series_details:
            params['id'] = str(series_details['id'])
            #print(params)

        if 'air_date' in season_id:
            params['air_date'] = season_id['air_date']
        if 'episode_count' in season_id:
            params['episode_count'] = season_id['episode_count']
        if 'id' in season_id:
            params['tvseason_id'] = str(season_id['id'])
        if 'name' in season_id:
            params['name'] = season_id['name']
        if 'overview' in season_id:
            params['overview'] = season_id['overview']

        if 'poster_path' in season_id:
            params['poster_path'] = season_id['poster_path']
        if 'season_number' in season_id:
            params['season_number'] = season_id['season_number']

            #print(params)

        payload = {
            "query":
            "MERGE (t:TvSeasons{ air_date :{air_date},episode_count : {episode_count},tvseason_id:{tvseason_id},name:{name},overview:{overview},poster_path:{poster_path},season_number:{season_number}}) RETURN t"
        }
        payload['params'] = params
        # create or update production company
        response_json = callNeo4j(payload, headers)
        if response_json is not None:
            payload = {
                "query":
                "MATCH (t:TvSeries),(n:TvSeasons) WHERE t.id ={id} AND n.tvseason_id = {tvseason_id} MERGE (t)-[r:HAS_SEASON]->(n) RETURN r"
            }
            params = {}
            params['id'] = str(series_details['id'])
            params['tvseason_id'] = str(season_id['id'])

            payload['params'] = params
            #print(params)
            match_response_json = callNeo4j(payload, headers)
            print(match_response_json)
def tv_series_season_episodes_payload(tv_series_id, language):

    series_details = get_details_tmdb_tv_series(tv_series_id, language)
    series_details["seasons"] = [
        dict(id=k1["id"], season_number=k1["season_number"])
        for k1 in series_details["seasons"]
    ]
    season_ids = series_details["seasons"]
    s_id = [d for d in season_ids if d.get('id') != 0]
    #print(s_id)
    s = season_ids[:]
    season_ids[:] = [d for d in season_ids if d.get('season_number') != 0]
    s = season_ids[:]
    list = [ids for ids in s]
    #print(list)
    season_no = []
    for value in list:
        season_no.append(value['season_number'])
    s_number = season_no
    for season_number in s_number:
        seasons_details = get_details_tv_seasons(tv_series_id, season_number)
        #print(seasons_details)
        seasons_details["episodes"] = [
            dict(air_date=k1["air_date"],
                 episode_number=k1["episode_number"],
                 id=k1["id"],
                 name=k1["name"],
                 overview=k1["overview"],
                 production_code=k1["production_code"],
                 season_number=k1["season_number"],
                 show_id=k1["show_id"],
                 still_path=k1["still_path"],
                 vote_average=k1["vote_average"],
                 vote_count=k1["vote_count"])
            for k1 in seasons_details["episodes"]
        ]

        seasons = seasons_details["episodes"]
        for season_data in seasons:
            season = replace_none_with_empty_str(season_data)
            params = {}
            if 'id' in seasons_details:
                params['tvseason_id'] = str(seasons_details['id'])
                #print(params)
            if 'air_date' in season:
                params['air_date'] = season['air_date']

            if 'episode_number' in season:
                params['episode_number'] = season['episode_number']
            if 'id' in season:
                params['episode_id'] = str(season['id'])
            if 'name' in season:
                params['name'] = season['name']
            if 'overview' in season:
                params['overview'] = season['overview']
            if 'production_code' in season:
                params['production_code'] = season['production_code']
            if 'season_number' in season:
                params['season_number'] = season['season_number']
            if 'still_path' in season:
                params['still_path'] = season['still_path']
            if 'vote_average' in season:
                params['vote_average'] = season['vote_average']
            if 'show_id' in season:
                params['show_id'] = str(season['show_id'])
            if 'vote_count' in season:
                params['vote_count'] = season['vote_count']

            payload = {
                "query":
                "MERGE(n:TvEpisodes{air_date :{air_date},episode_number : {episode_number},episode_id:{episode_id},name:{name},overview:{overview},production_code:{production_code},season_number:{season_number},still_path:{still_path},vote_average:{vote_average},show_id:{show_id},vote_count:{vote_count}}) RETURN n"
            }
            payload['params'] = params

            response_json = callNeo4j(payload, headers)
            if response_json is not None:
                payload = {
                    "query":
                    "MATCH (n:TvSeasons),(e:TvEpisodes) WHERE n.tvseason_id = {tvseason_id} AND e.episode_id = {episode_id} MERGE (n)-[r:HAS_EPISODE]->(e) RETURN r"
                }
                params = {}
                params['tvseason_id'] = str(seasons_details['id'])
                params['episode_id'] = str(season['id'])

                payload['params'] = params
                #print(episode_id)
                match_response_json = callNeo4j(payload, headers)
import requests
import json
import Fetch_Tmdb_Persons_Details
from Fetch_Tmdb_Persons_Details import get_person_details
from Tmdbtvseries import get_details_tmdb_tv_series, get_details_tv_seasons, get_details_tv_episodes_details
api_key_counter = 0
error_status = False
#tv_series_id = '13916'
language = 'en-US'
headers = {"Authorization": "Basic bmVvNGo6dm9ubnVl"}
tv_series_id = '1396'
language = 'en-US'
neo4j_base_url = 'http://localhost:7474/db/data/cypher'
tv_json = get_details_tmdb_tv_series(tv_series_id, language)

with open('config.json') as json_file:
    config = json.load(json_file)

    api_keys = config["api_keys"]
    language = config["language"]
    tmdb_tv_series_base_url = config["tmdb_tv_series_base_url"]
    tmdb_person_base_url = config["tmdb_person_base_url"]


def get_random_api_key():
    # calls the global variable in the function
    global api_keys
    global api_key_counter
    api_key = api_keys[api_key_counter]
    api_key_counter += 1
    if api_key_counter == len(api_keys):