You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # This program is dedicated to the public domain under the CC0 license.
  4. # Telegram - Betaseries
  5. import logging
  6. import requests
  7. import json
  8. from telegram.ext import Updater, CommandHandler
  9. from config import config, series
  10. from betaseries import login_beta, get_title_only, to_see
  11. from telegram_api import send_message
  12. # Activer / Désactiver le debuggage {Projet : pas encore utilisé}
  13. DEBUG = True
  14. # Recupération de la configuration dans config.py
  15. client_id = config['client_id']
  16. login= config['login']
  17. password = config['password']
  18. user_id = config['user_id']
  19. token_bot = config['token_bot']
  20. #Debug only -> permet d'afficher les erreurs sur la console.
  21. logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
  22. level=logging.INFO)
  23. logger = logging.getLogger(__name__)
  24. def start(update, context):
  25. send_message('Bonjour Sensei. !')
  26. send_message('Je suis ici pour te servir, malgré ça : je reste en Beta ! Soyez doux.')
  27. return
  28. def ping(update, context):
  29. send_message("Pong!")
  30. return
  31. def init(update, context):
  32. update.message.reply_text("Tentative de connexion à Betaseries...")
  33. data = login_beta()
  34. if data == False :
  35. error = "Impossible d'interroger l'API\n Code:" + str(request.status_code)
  36. update.message.reply_text(error)
  37. return
  38. #Si la fonction ne renvoie pas "False", on considère que le token est bon !
  39. betauser = data
  40. message = "Token utilise pour Betaseries : " + betauser
  41. # à editer : nous utiliserons plutot la librairie de telegram lorsque nous répondons à une commande. l'API sera utile pour le script
  42. API_Message = 'https://api.telegram.org/'
  43. API_Message += 'bot' + token_bot + '/sendMessage?chat_id=' + user_id + '&text='
  44. #
  45. Notification = API_Message + "Connection Reussie ! "
  46. request = requests.post(Notification)
  47. Notification = API_Message + " Votre Token sur Betaseries: " + betauser
  48. request = requests.post(Notification)
  49. update.message.reply_text("Vous pouvez maintenant utiliser le bot !")
  50. print("Token Betaseries :", betauser)
  51. return
  52. def repeat(update, context):
  53. message = ''
  54. user = update.message.from_user
  55. if DEBUG == True :
  56. print('Pseudo du compte : {} ID: {} '.format(user['username'], user['id']))
  57. if len(context.args) > 1 :
  58. for i in range(len(context.args)):
  59. mot = str(context.args[i]) + " "
  60. message += mot
  61. message = message[:-1]
  62. else :
  63. message = context.args[0]
  64. if DEBUG == True :
  65. print("phrase envoyée : ", message)
  66. if message == "Cinabre est parfait":
  67. update.message.reply_text("J'avoue !")
  68. return
  69. update.message.reply_text(message)
  70. return
  71. def check_seen(update, context):
  72. message = 'à voir \n'
  73. for i in range(len(series)):
  74. thetvdb_id = series[i]
  75. message += '- ' + str(to_see(thetvdb_id))
  76. send_message(message)
  77. def liste(update, context):
  78. message = ''
  79. message = u'Liste des séries surveillées : ' + '\n'
  80. for i in range(len(series)):
  81. message += '- ' + get_title_only(series[i]) + '\n'
  82. message += '\n' + "Bon Visionnage !"
  83. send_message(message)
  84. def main():
  85. updater = Updater(token_bot, use_context=True)
  86. print("Bot connecté")
  87. dp = updater.dispatcher
  88. dp.add_handler(CommandHandler("start", start))
  89. dp.add_handler(CommandHandler("help", start))
  90. dp.add_handler(CommandHandler("ping", ping))
  91. dp.add_handler(CommandHandler("repeat", repeat,
  92. pass_args=True,
  93. pass_job_queue=True,
  94. pass_chat_data=True))
  95. dp.add_handler(CommandHandler("initialisation", init,
  96. pass_args=True,
  97. pass_job_queue=True,
  98. pass_chat_data=True))
  99. dp.add_handler(CommandHandler("liste", liste))
  100. dp.add_handler(CommandHandler("check", check_seen))
  101. updater.start_polling()
  102. updater.idle()
  103. if __name__ == '__main__':
  104. main()