Bläddra i källkod

modified: betaseries.py - Ajout de get_episode_code, seen, et to_see

modified:   bot.py - correction de bug + ajout des commandes /check / list / seen
	modified:   notification.py - Correction de bug
master
administrator 8 månader sedan
förälder
incheckning
f0cb8bf77f
3 ändrade filer med 94 tillägg och 43 borttagningar
  1. +28
    -16
      betaseries.py
  2. +50
    -17
      bot.py
  3. +16
    -10
      notification.py

+ 28
- 16
betaseries.py Visa fil

@@ -6,7 +6,7 @@
import logging import logging
import requests import requests
import json import json
from config import config
from config import config, series
import os import os
# import time # import time
from os import path from os import path
@@ -40,16 +40,16 @@ def create_api(choice, thetvdb_id):
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
return API
API_latest = base_url + 'token=' + token + '&client_id=' + str(client_id) + '&thetvdb_id=' + thetvdb_id
return API_latest
if choice == 'info' : if choice == 'info' :
base_url = 'https://api.betaseries.com/shows/display?' base_url = 'https://api.betaseries.com/shows/display?'
API = base_url + 'token=' + token + '&client_id=' + client_id + '&thetvdb_id=' + thetvdb_id
return API
API_info = base_url + 'token=' + token + '&client_id=' + str(client_id) + '&thetvdb_id=' + str(thetvdb_id)
return API_info
if choice == 'seen': if choice == 'seen':
base_url = 'https://api.betaseries.com/episodes/watched?' base_url = 'https://api.betaseries.com/episodes/watched?'
API = base_url + 'token=' + token + '&client_id=' + client_id + '&id='
return API
API_seen = base_url + 'token=' + token + '&client_id=' + str(client_id) + '&id='
return API_seen
return False return False
@@ -61,7 +61,6 @@ def check_latest(thetvdb_id):
return return
request = requests.get(API) request = requests.get(API)

if str(request) != '<Response [200]>' : if str(request) != '<Response [200]>' :
print("Mauvaise réponse de l'api !(Check_Latest) ") print("Mauvaise réponse de l'api !(Check_Latest) ")
return False return False
@@ -124,6 +123,7 @@ def check_latest(thetvdb_id):
return return
if data['seen'] == False : if data['seen'] == False :
print("Vous n'avez pas vu le dernier episode de cette series : ", get_title_only(thetvdb_id))
os.remove(file_path) os.remove(file_path)
create_file(file_path, episode_info) create_file(file_path, episode_info)
return return
@@ -155,14 +155,12 @@ def to_see(thetvdb_id):
file_path = 'latest/' + thetvdb_id + '.json' file_path = 'latest/' + thetvdb_id + '.json'
with open(file_path) as json_file: with open(file_path) as json_file:
data = json.load(json_file) data = json.load(json_file)
print(data)
if data[u'seen'] == False : if data[u'seen'] == False :
message = data['serie_title'] + ' ! ' + '\n' + 'Episode: ' + str(data['episode']) + ' Saison:' + str(data['season ']) + '\n' + '\n' message = data['serie_title'] + ' ! ' + '\n' + 'Episode: ' + str(data['episode']) + ' Saison:' + str(data['season ']) + '\n' + '\n'
return message return message
else :
print(u"Vous etes à jour")
return
print(u"Vous etes à jour")
return False


def seen(thetvdb_id): def seen(thetvdb_id):
# Permet de mettre un episode en 'vu' sur betaseries # Permet de mettre un episode en 'vu' sur betaseries
@@ -178,13 +176,27 @@ def seen(thetvdb_id):
API = create_api('seen', None) API = create_api('seen', None)
API += str(data['id']) API += str(data['id'])
print(API) print(API)
# request = requests.post(API)
# if str(request) == '<Response [400]>' :
# send_message(u"Impossible de marquer l'episode comme vu(déjà vu?)")
# print(request)
# return
send_message('Done !')
return

def get_episode_code(thetvdb_id):
file_path = 'latest/' + thetvdb_id + '.json'
with open(file_path) as json_file:
data = json.load(json_file)
code = 'S' + str(data['season ']) + 'E' + str(data['episode'])
return code


def main(): def main():
#Only here for debug git #Only here for debug git
login_beta()
print(get_title_only('354198'))
for i in range(len(series)):
id = series[i]
print(get_episode_code(id))




if __name__ == '__main__': if __name__ == '__main__':


+ 50
- 17
bot.py Visa fil

@@ -8,7 +8,7 @@ import json
from telegram import InlineKeyboardButton, InlineKeyboardMarkup from telegram import InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Updater, CommandHandler, CallbackQueryHandler from telegram.ext import Updater, CommandHandler, CallbackQueryHandler
from config import config, series from config import config, series
from betaseries import login_beta, get_title_only, to_see, seen
from betaseries import login_beta, get_title_only, to_see, seen, get_episode_code
from telegram_api import send_message from telegram_api import send_message


# Activer / Désactiver le debuggage {Projet : pas encore utilisé} # Activer / Désactiver le debuggage {Projet : pas encore utilisé}
@@ -92,11 +92,14 @@ def repeat(update, context):
return return




def check_seen(update, context):
message = 'à voir \n'
def latest(update, context):
message = 'à voir : \n'
for i in range(len(series)): for i in range(len(series)):
thetvdb_id = series[i] thetvdb_id = series[i]
message += '- ' + str(to_see(thetvdb_id))
episode = to_see(thetvdb_id)
if episode != False:
message += '- ' + str(episode)
send_message(message) send_message(message)


@@ -111,43 +114,73 @@ def liste(update, context):




def coding(update, context):
def ive_seen(update, context):
if type(series) == str : if type(series) == str :
file_path = 'latest/' + series + '.json' file_path = 'latest/' + series + '.json'
print(file_path) print(file_path)
with open(file_path) as json_file: with open(file_path) as json_file:
data = json.load(json_file) data = json.load(json_file)
# message = u'Episode que vous allez marquer comme vu : ' + data['serie_title'] + ' - S' + str(data['season ']) + 'E' + str(data['episode'])
# send_message(message)
keyboard = [[InlineKeyboardButton(data['serie_title'] + '|' + 'S' + str(data['season ']) + 'E' + str(data['episode']), callback_data='1')]] keyboard = [[InlineKeyboardButton(data['serie_title'] + '|' + 'S' + str(data['season ']) + 'E' + str(data['episode']), callback_data='1')]]
reply_markup = InlineKeyboardMarkup(keyboard) reply_markup = InlineKeyboardMarkup(keyboard)
update.message.reply_text('Vous avez vu :', reply_markup=reply_markup) update.message.reply_text('Vous avez vu :', reply_markup=reply_markup)
return return
else : else :
keyboard = [[InlineKeyboardButton("Option 1", callback_data='1'),
InlineKeyboardButton("Option 2", callback_data='2'),
InlineKeyboardButton("Option 3", callback_data='3')],
[InlineKeyboardButton("Option 4", callback_data='4')] ]
if len(series) == 2 :
keyboard = [[InlineKeyboardButton(get_title_only(series[0]), callback_data='1'),
InlineKeyboardButton(get_title_only(series[1]), callback_data='2')]]
if len(series) == 3 :
keyboard = [
[InlineKeyboardButton(get_title_only(series[0]), callback_data='1'), InlineKeyboardButton(get_title_only(series[1]), callback_data='2')],
[InlineKeyboardButton(get_title_only(series[2]), callback_data='3')]
]
if len(series) == 4 :
keyboard = [
[InlineKeyboardButton(get_title_only(series[0]), callback_data='1'), InlineKeyboardButton(get_title_only(series[1]), callback_data='2') ],
[InlineKeyboardButton(get_title_only(series[2]), callback_data='3'), InlineKeyboardButton(get_title_only(series[3]), callback_data='4') ]
]
if len(series) == 5 :
keyboard = [
[ InlineKeyboardButton(get_title_only(series[0]), callback_data='1'), InlineKeyboardButton(get_title_only(series[1]), callback_data='2')],
[ InlineKeyboardButton(get_title_only(series[2]), callback_data='3'), InlineKeyboardButton(get_title_only(series[3]), callback_data='4')],
[ InlineKeyboardButton(get_title_only(series[4]), callback_data='5')]
]
reply_markup = InlineKeyboardMarkup(keyboard) reply_markup = InlineKeyboardMarkup(keyboard)
update.message.reply_text('Selectionnez une reponse', reply_markup=reply_markup) update.message.reply_text('Selectionnez une reponse', reply_markup=reply_markup)
return return
def button(update, context): def button(update, context):
query = update.callback_query query = update.callback_query
query.answer() query.answer()
print(type(query['data'])) print(type(query['data']))
# Si jamais l'utilisateur fait le 1er choix, on vérifie si jamais 'series' n'est pas un str (qui serait donc le cas ou l'utilisateur n'a qu'une serie
if query['data'] == u'1' : if query['data'] == u'1' :
if type(series) == str : if type(series) == str :
seen(series) seen(series)
episode = get_title_only(series) + ' | ' + get_episode_code(series)
query.edit_message_text(text="Choix de la series : {}".format(episode))
return
else :
seen(series[0])
episode = get_title_only(series[0]) + ' | ' + get_episode_code(series[0])
query.edit_message_text(text="Choix de la series : {}".format(episode))
return
number = int(query['data']) - 1
query.edit_message_text(text="Choix de la series : ".format(get_title_only(number) ))
query.edit_message_text(text="Selected option: {}".format(query.data))
# query.edit_message_text(data['serie_title'] + '|' + 'S' + str(data['season ']) + 'E' + str(data['episode'] ))
#query.edit_message_text(text="Selected option: {}".format(query.data))
@@ -174,9 +207,9 @@ def main():
dp.add_handler(CommandHandler("liste", liste)) dp.add_handler(CommandHandler("liste", liste))
dp.add_handler(CommandHandler("check", check_seen))
dp.add_handler(CommandHandler("latest", latest))
dp.add_handler(CommandHandler("code", coding))
dp.add_handler(CommandHandler("seen", ive_seen))
updater.dispatcher.add_handler(CallbackQueryHandler(button)) updater.dispatcher.add_handler(CallbackQueryHandler(button))




+ 16
- 10
notification.py Visa fil

@@ -13,7 +13,7 @@ from config import series
import os.path import os.path
from os import path from os import path
import datetime import datetime
import time




def main(): def main():
@@ -28,16 +28,19 @@ def main():
print("Pour arreter le script : CTRL+Z") print("Pour arreter le script : CTRL+Z")
now = datetime.datetime.now()
print (now.strftime("%Y-%m-%d %H:%M:%S"))
if type(series) == str :
check_latest(series)
while 1 :
now = datetime.datetime.now()
print (now.strftime("%Y-%m-%d %H:%M:%S"))
if type(series) == str :
check_latest(series)
else:
for i in range(len(series)):
thetvdb_id = series[i]
check_latest(thetvdb_id)
else:
for i in range(len(series)):
thetvdb_id = series[i]
check_latest(thetvdb_id)
time.sleep(1800)
@@ -47,4 +50,7 @@ def main():




if __name__ == '__main__': if __name__ == '__main__':
main()
try :
main()
except :
main()

Laddar…
Avbryt
Spara