From b3f03c392b114e7d51ba6ad41d098ac466617193 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 30 Apr 2020 18:15:54 +0200 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'betaseries.py'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- betaseries.py | 85 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 64 insertions(+), 21 deletions(-) diff --git a/betaseries.py b/betaseries.py index 00da14f..c14907e 100644 --- a/betaseries.py +++ b/betaseries.py @@ -10,6 +10,9 @@ from config import config import os from os import path from telegram_api import send_message + + + client_id = config['client_id'] login = config['login'] password = config['password'] @@ -18,7 +21,6 @@ password = config['password'] def login_beta(): # L'API nécéssite le client_id, le login + le mot de passe en MD5. A partir de là, nous récupérons le TOKEN Betaseries qui nous permettra de communiquer avec notre compte Betaseries global token - print("Connexion a Betaseries en cours...") API_auth = 'https://api.betaseries.com/members/auth' API_auth += '?client_id=' + client_id +'&login=' + login + '&password=' + password request = requests.post(API_auth) @@ -32,13 +34,21 @@ def login_beta(): def create_api(choice, thetvdb_id): #Cette fonction permet de créer l'api Betaseries (que nous allons interroger) à partir des informations dans config.py #La séparer dans une autre fonction permet de choisir QUELLE api créer et pour quel thetvdb_id - + + token = login_beta() #Si jamais create_api est appelée d'un autre fichier, login_beta() n'a pas pu mettre la variable "token" en Global. Donc on la récupère + if choice == 'latest' : base_url = 'https://api.betaseries.com/episodes/latest?' API = base_url + 'token=' + token + '&client_id=' + client_id + '&thetvdb_id=' + thetvdb_id return API - else : - return False + if choice == 'info' : + base_url = 'https://api.betaseries.com/shows/display?' + API = base_url + 'token=' + token + '&client_id=' + client_id + '&thetvdb_id=' + thetvdb_id + return API + if choice == 'seen': + base_url = 'https://api.betaseries.com/shows/display?' + + return False def check_latest(thetvdb_id): # Nous utilisons le thetvdb_id et le fournissons à create_api. à partir de là nous récupérons le dernier épisode de la série. Et nous regardons s'il est déjà enregistré [WIP] @@ -55,8 +65,8 @@ def check_latest(thetvdb_id): episode = show['episode'] title = episode['show'] - print("Titre de la serie : ", str(title['title'])) - print("Dernier episode sorti : Episode : ", episode['episode'] , " Saison :", episode['season']) + id = episode['id'] + user = episode['user'] if path.exists('latest') == False : print("Le dossier 'latest' n'existe pas, creez le") @@ -65,28 +75,23 @@ def check_latest(thetvdb_id): episode_info = { "serie_title" : title['title'], "season " : episode['season'], - "episode" : episode['episode'] + "episode" : episode['episode'], + "id" : title['id'], + "seen" : user['seen'] } #On choisi créé l'emplacement du fichier. On utilisera l'id thetvdb car utiliser le nom de la série risquerait des fichiers trop long file_path = '' file_path = 'latest/' + thetvdb_id + '.json' - print("Path a essayer : ", file_path) - # Si le fichier n'existe pas. Nous n'avons rien à comparer : Par définition nous sauvegardons les informations. if path.exists(file_path) == False : - print("Fichier inexistant ... Creation du fichier ") create_file(file_path, episode_info) - - - # Si le fichier existe. Nous comparons les informations reçues de l'API avec celles du fichier else : - print("Fichier deja existant... On compare") with open(file_path) as json_file: data = json.load(json_file) @@ -97,11 +102,8 @@ def check_latest(thetvdb_id): saved_season = int(data['season ']) saved_episode = int(data['episode']) - print("------------- Comparaison des 2 versions -----------------") if latest_season > saved_season : - print("Latest saison + recente") - os.remove(file_path) message = 'Nouvel episode de ' + title + ' ! ' + 'S' + str(latest_season) + 'E' + str(latest_episode) send_message(message) #On supprime le fichier, et on le ré-écris avec les nouvelles informations. @@ -111,20 +113,61 @@ def check_latest(thetvdb_id): if latest_season == saved_season: if latest_episode > saved_episode: - print("episode + recent") message = 'Nouvel episode de ' + title + ' ! ' + 'S' + str(latest_season) + 'E' + str(latest_episode) send_message(message) os.remove(file_path) - create_file(file_path, episode_info) + #create_file(file_path, episode_info) return print("Aucun changement") - + return def create_file(file_path, episode_info): +#Creation du fichier à partir des informations récupérées dans check_latest() with open(file_path, "w") as write_file: json.dump(episode_info, write_file) + +def get_title_only(thetvdb_id): + API = create_api('info', thetvdb_id) + if API == False : + print("ERREUR DURANT LA CREATION DE L'API !") + return + request = requests.get(API) + if str(request) != '' : + print("Mauvaise réponse de l'api ! ") + return False - + info = request.json() + data = info['show'] + title = data['title'] + return title + + +def to_see(thetvdb_id): + # Permet de dire qu'un episode est deja vu + file_path = 'latest/' + thetvdb_id + '.json' + with open(file_path) as json_file: + data = json.load(json_file) + print(data) + if data[u'seen'] == False : + message = data['serie_title'] + ' ! ' + '\n' + 'Episode: ' + str(data['episode']) + ' Saison:' + str(data['season ']) + '\n' + '\n' + return message + else : + print(u"Vous etes à jour") + + return + +def main(): +#Only here for debug + login_beta() + print(get_title_only('354198')) + + +if __name__ == '__main__': + main() + + + +