Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

123 lignes
3.6 KiB

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