Преглед на файлове

Mise à jour de 'betaseries.py'

master
TheBidouilleur преди 8 месеца
родител
ревизия
b3f03c392b
променени са 1 файла, в които са добавени 64 реда и са изтрити 21 реда
  1. +64
    -21
      betaseries.py

+ 64
- 21
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) != '<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()


Loading…
Отказ
Запис