|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- # This program is dedicated to the public domain under the CC0 license.
- # Telegram - Betaseries
-
- import logging
- import requests
- import json
- 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']
-
-
- 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)
- if str(request) != '<Response [200]>' :
- return False
- data = request.json()
- token = str(data['token'])
- return token
-
-
- 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
-
- 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
-
- 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]
- API = create_api('latest', 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
- show = request.json()
- episode = show['episode']
-
- title = episode['show']
- print("Titre de la serie : ", str(title['title']))
- print("Dernier episode sorti : Episode : ", episode['episode'] , " Saison :", episode['season'])
-
- if path.exists('latest') == False :
- print("Le dossier 'latest' n'existe pas, creez le")
-
- #On créé le dictionnaire contenant les informations de l'épisode
- episode_info = {
- "serie_title" : title['title'],
- "season " : episode['season'],
- "episode" : episode['episode']
- }
-
- #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)
-
- title = episode_info['serie_title']
- latest_season = int(episode_info['season '])
- latest_episode = int(episode_info['episode'])
-
- 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.
- os.remove(file_path)
- create_file(file_path, episode_info)
- return
-
- 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)
- return
- print("Aucun changement")
-
-
-
- def create_file(file_path, episode_info):
- with open(file_path, "w") as write_file:
- json.dump(episode_info, write_file)
-
-
-
-
|