movie feature
This commit is contained in:
parent
b1eb43a563
commit
2c0cbcba28
@ -157,6 +157,114 @@ def updateCommodities(api_key, logf):
|
|||||||
#logf.close()
|
#logf.close()
|
||||||
|
|
||||||
|
|
||||||
|
def updateMovies(api_key, logf):
|
||||||
|
|
||||||
|
f = open('csv/movie_settings.json', 'r')
|
||||||
|
all_settings = json.load(f)
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
|
||||||
|
if all_settings['category'] == 'Popular Movies':
|
||||||
|
url = 'https://api.themoviedb.org/3/trending/movie/day?'
|
||||||
|
movieGenre_url = 'https://api.themoviedb.org/3/genre/movie/list?api_key=' + api_key + '&language=en-US'
|
||||||
|
movieGenre_response = requests.get(movieGenre_url)
|
||||||
|
movie_genres = movieGenre_response.json()
|
||||||
|
|
||||||
|
elif all_settings['category'] == 'Popular TV':
|
||||||
|
url = 'https://api.themoviedb.org/3/trending/tv/day?'
|
||||||
|
tvGenre_url = 'https://api.themoviedb.org/3/genre/tv/list?api_key=' + api_key + '&language=en-US'
|
||||||
|
tvGenre_response = requests.get(tvGenre_url)
|
||||||
|
tv_genres = tvGenre_response.json()
|
||||||
|
|
||||||
|
elif all_settings['category'] == 'Popular All':
|
||||||
|
url = 'https://api.themoviedb.org/3/trending/all/day?'
|
||||||
|
movieGenre_url = 'https://api.themoviedb.org/3/genre/movie/list?api_key=' + api_key + '&language=en-US'
|
||||||
|
movieGenre_response = requests.get(movieGenre_url)
|
||||||
|
movie_genres = movieGenre_response.json()
|
||||||
|
tvGenre_url = 'https://api.themoviedb.org/3/genre/tv/list?api_key=' + api_key + '&language=en-US'
|
||||||
|
tvGenre_response = requests.get(tvGenre_url)
|
||||||
|
tv_genres = tvGenre_response.json()
|
||||||
|
|
||||||
|
url += 'api_key=' + api_key
|
||||||
|
response = requests.get(url)
|
||||||
|
data = response.json()
|
||||||
|
|
||||||
|
this_out = []
|
||||||
|
logo_files = []
|
||||||
|
|
||||||
|
if len(data) > 0:
|
||||||
|
movies = data['results']
|
||||||
|
|
||||||
|
for movie in movies:
|
||||||
|
movie_language = movie['original_language']
|
||||||
|
movie_votes = movie['vote_average']
|
||||||
|
movie_votes = "{:.1f}".format(movie_votes)
|
||||||
|
try:
|
||||||
|
movie_titles = movie['title']
|
||||||
|
movie_date = movie['release_date']
|
||||||
|
except KeyError:
|
||||||
|
movie_titles = movie['name']
|
||||||
|
movie_date = movie['first_air_date']
|
||||||
|
movie_type = movie['media_type']
|
||||||
|
movie_genre = movie['genre_ids']
|
||||||
|
movie_logo = 'https://image.tmdb.org/t/p/w500' + movie['backdrop_path']
|
||||||
|
genrefinal = []
|
||||||
|
|
||||||
|
if all_settings['category'] == 'Popular Movies':
|
||||||
|
for i in movie_genre:
|
||||||
|
for genre in movie_genres['genres']:
|
||||||
|
if genre['name'] == 'Science Fiction':
|
||||||
|
genre['name'] = 'Sci-Fi'
|
||||||
|
if i == genre['id']:
|
||||||
|
i = genre['name']
|
||||||
|
genrefinal.append(i)
|
||||||
|
elif all_settings['category'] == 'Popular TV':
|
||||||
|
for i in movie_genre:
|
||||||
|
for genre in tv_genres['genres']:
|
||||||
|
if i == genre['id']:
|
||||||
|
i = genre['name']
|
||||||
|
genrefinal.append(i)
|
||||||
|
elif all_settings['category'] == 'Popular All':
|
||||||
|
if movie['media_type'] == 'movie':
|
||||||
|
for i in movie_genre:
|
||||||
|
for genre in movie_genres['genres']:
|
||||||
|
if genre['name'] == 'Science Fiction':
|
||||||
|
genre['name'] = 'Sci-Fi'
|
||||||
|
if i == genre['id']:
|
||||||
|
i = genre['name']
|
||||||
|
genrefinal.append(i)
|
||||||
|
elif movie['media_type'] == 'tv':
|
||||||
|
for i in movie_genre:
|
||||||
|
for genre in tv_genres['genres']:
|
||||||
|
if i == genre['id']:
|
||||||
|
i = genre['name']
|
||||||
|
genrefinal.append(i)
|
||||||
|
|
||||||
|
this_out.append({'title':movie_titles,
|
||||||
|
'language':movie_language.upper(),
|
||||||
|
'votes':str(movie_votes),
|
||||||
|
'date':movie_date,
|
||||||
|
'media_type':movie_type.capitalize(),
|
||||||
|
'genre':genrefinal,
|
||||||
|
'backdrop':movie['backdrop_path'][1:],
|
||||||
|
'logo': movie_logo
|
||||||
|
})
|
||||||
|
|
||||||
|
logo_files.append(movie['backdrop_path'][1:])
|
||||||
|
|
||||||
|
urllib.request.urlretrieve(movie_logo,'logos/movies/' + movie['backdrop_path'])
|
||||||
|
|
||||||
|
for file in os.listdir('logos/movies/'):
|
||||||
|
if file not in logo_files:
|
||||||
|
os.remove('logos/movies/'+file)
|
||||||
|
|
||||||
|
all_settings['movies'] = this_out
|
||||||
|
|
||||||
|
f = open('csv/movie_settings.json', 'w+')
|
||||||
|
json.dump(all_settings, f)
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
|
||||||
def updateIndices(api_key, logf):
|
def updateIndices(api_key, logf):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -721,7 +829,7 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
update_frequencies = {'stocks':2, 'crypto':5, 'forex':60, 'news':120, 'weather': 120, 'sports': 1440, 'commodities': 15, 'indices': 15} #minutes
|
update_frequencies = {'stocks':2, 'crypto':5, 'forex':60, 'news':120, 'weather': 120, 'sports': 1440, 'commodities': 15, 'indices': 15, 'movies': 1440} #minutes
|
||||||
|
|
||||||
NY_zone = pytz.timezone('America/New_York')
|
NY_zone = pytz.timezone('America/New_York')
|
||||||
CET_zone = pytz.timezone('EST')
|
CET_zone = pytz.timezone('EST')
|
||||||
@ -758,7 +866,10 @@ if __name__ == '__main__':
|
|||||||
logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2])))
|
logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2])))
|
||||||
logf.close()
|
logf.close()
|
||||||
|
|
||||||
|
try:
|
||||||
|
movie_key = open('movie_api_key.txt').readlines()[0]
|
||||||
|
except Exception as e:
|
||||||
|
movie_key = False
|
||||||
|
|
||||||
|
|
||||||
t = time.time()
|
t = time.time()
|
||||||
@ -792,7 +903,7 @@ if __name__ == '__main__':
|
|||||||
"news": {"time": "06/03/2022 04:07:09", "force": True}, "weather": {"time": "06/03/2022 04:08:20", "force": True},
|
"news": {"time": "06/03/2022 04:07:09", "force": True}, "weather": {"time": "06/03/2022 04:08:20", "force": True},
|
||||||
"forex": {"time": "06/03/2022 03:54:02", "force": True}, "sports_l": {"time": "06/03/2022 04:10:09", "force": True},
|
"forex": {"time": "06/03/2022 03:54:02", "force": True}, "sports_l": {"time": "06/03/2022 04:10:09", "force": True},
|
||||||
"sports_p": {"time": "06/03/2022 04:10:09", "force": True},
|
"sports_p": {"time": "06/03/2022 04:10:09", "force": True},
|
||||||
"sports_u": {"time": "06/03/2022 04:10:09", "force": True},"sports_t": {"time": "06/03/2022 04:10:09", "force": True}, "commodities": {"time": "06/03/2022 04:10:09", "force": True}, "indices": {"time": "06/03/2022 04:10:09", "force": True}}
|
"sports_u": {"time": "06/03/2022 04:10:09", "force": True},"sports_t": {"time": "06/03/2022 04:10:09", "force": True}, "commodities": {"time": "06/03/2022 04:10:09", "force": True}, "indices": {"time": "06/03/2022 04:10:09", "force": True}, "movies": {"time": "06/03/2022 04:10:09", "force": True}}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -879,6 +990,22 @@ if __name__ == '__main__':
|
|||||||
update_process.start()
|
update_process.start()
|
||||||
update_processes.append(update_process)
|
update_processes.append(update_process)
|
||||||
|
|
||||||
|
# movies
|
||||||
|
movies_time = datetime.strptime(last_updates['movies']['time'], "%d/%m/%Y %H:%M:%S")
|
||||||
|
|
||||||
|
|
||||||
|
NY_time = datetime.now(NY_zone).replace(tzinfo=None)
|
||||||
|
diff = (NY_time - movies_time).total_seconds()/60 #minutes
|
||||||
|
|
||||||
|
|
||||||
|
if last_updates['movies']['force'] or diff >= update_frequencies['movies']:
|
||||||
|
movies_time = NY_time.strftime("%d/%m/%Y %H:%M:%S")
|
||||||
|
last_updates['movies']['time'] = movies_time
|
||||||
|
last_updates['movies']['force'] = False
|
||||||
|
update_process = Process(target = updateMovies, args = (movie_key,logf))
|
||||||
|
update_process.start()
|
||||||
|
update_processes.append(update_process)
|
||||||
|
|
||||||
# weather
|
# weather
|
||||||
weather_time = datetime.strptime(last_updates['weather']['time'], "%d/%m/%Y %H:%M:%S")
|
weather_time = datetime.strptime(last_updates['weather']['time'], "%d/%m/%Y %H:%M:%S")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user