| @@ -10,6 +10,9 @@ from config import config | |||||
| import os | import os | ||||
| from os import path | from os import path | ||||
| from telegram_api import send_message | from telegram_api import send_message | ||||
| client_id = config['client_id'] | client_id = config['client_id'] | ||||
| login = config['login'] | login = config['login'] | ||||
| password = config['password'] | password = config['password'] | ||||
| @@ -18,7 +21,6 @@ password = config['password'] | |||||
| def login_beta(): | 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 | # 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 | global token | ||||
| print("Connexion a Betaseries en cours...") | |||||
| API_auth = 'https://api.betaseries.com/members/auth' | API_auth = 'https://api.betaseries.com/members/auth' | ||||
| API_auth += '?client_id=' + client_id +'&login=' + login + '&password=' + password | API_auth += '?client_id=' + client_id +'&login=' + login + '&password=' + password | ||||
| request = requests.post(API_auth) | request = requests.post(API_auth) | ||||
| @@ -32,13 +34,21 @@ def login_beta(): | |||||
| def create_api(choice, thetvdb_id): | 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 | #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 | #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' : | if choice == 'latest' : | ||||
| base_url = 'https://api.betaseries.com/episodes/latest?' | base_url = 'https://api.betaseries.com/episodes/latest?' | ||||
| API = base_url + 'token=' + token + '&client_id=' + client_id + '&thetvdb_id=' + thetvdb_id | API = base_url + 'token=' + token + '&client_id=' + client_id + '&thetvdb_id=' + thetvdb_id | ||||
| return API | 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): | 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] | # 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'] | episode = show['episode'] | ||||
| title = episode['show'] | 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 : | if path.exists('latest') == False : | ||||
| print("Le dossier 'latest' n'existe pas, creez le") | print("Le dossier 'latest' n'existe pas, creez le") | ||||
| @@ -65,28 +75,23 @@ def check_latest(thetvdb_id): | |||||
| episode_info = { | episode_info = { | ||||
| "serie_title" : title['title'], | "serie_title" : title['title'], | ||||
| "season " : episode['season'], | "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 | #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 = '' | ||||
| file_path = 'latest/' + thetvdb_id + '.json' | 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. | # Si le fichier n'existe pas. Nous n'avons rien à comparer : Par définition nous sauvegardons les informations. | ||||
| if path.exists(file_path) == False : | if path.exists(file_path) == False : | ||||
| print("Fichier inexistant ... Creation du fichier ") | |||||
| create_file(file_path, episode_info) | create_file(file_path, episode_info) | ||||
| # Si le fichier existe. Nous comparons les informations reçues de l'API avec celles du fichier | # Si le fichier existe. Nous comparons les informations reçues de l'API avec celles du fichier | ||||
| else : | else : | ||||
| print("Fichier deja existant... On compare") | |||||
| with open(file_path) as json_file: | with open(file_path) as json_file: | ||||
| data = json.load(json_file) | data = json.load(json_file) | ||||
| @@ -97,11 +102,8 @@ def check_latest(thetvdb_id): | |||||
| saved_season = int(data['season ']) | saved_season = int(data['season ']) | ||||
| saved_episode = int(data['episode']) | saved_episode = int(data['episode']) | ||||
| print("------------- Comparaison des 2 versions -----------------") | |||||
| if latest_season > saved_season : | 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) | message = 'Nouvel episode de ' + title + ' ! ' + 'S' + str(latest_season) + 'E' + str(latest_episode) | ||||
| send_message(message) | send_message(message) | ||||
| #On supprime le fichier, et on le ré-écris avec les nouvelles informations. | #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_season == saved_season: | ||||
| if latest_episode > saved_episode: | if latest_episode > saved_episode: | ||||
| print("episode + recent") | |||||
| message = 'Nouvel episode de ' + title + ' ! ' + 'S' + str(latest_season) + 'E' + str(latest_episode) | message = 'Nouvel episode de ' + title + ' ! ' + 'S' + str(latest_season) + 'E' + str(latest_episode) | ||||
| send_message(message) | send_message(message) | ||||
| os.remove(file_path) | os.remove(file_path) | ||||
| create_file(file_path, episode_info) | |||||
| #create_file(file_path, episode_info) | |||||
| return | return | ||||
| print("Aucun changement") | print("Aucun changement") | ||||
| return | |||||
| def create_file(file_path, episode_info): | 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: | with open(file_path, "w") as write_file: | ||||
| json.dump(episode_info, 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) != '<Response [200]>' : | |||||
| 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() | |||||