| @@ -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) != '<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() | |||