Guest User

Untitled

a guest
Sep 21st, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. import telegram
  2. import logging
  3. import json
  4. import os
  5.  
  6. import scraper
  7.  
  8. # Configure bot
  9. token = os.environ['TELEGRAM_TOKEN']
  10. chatID = os.environ['F1_CHAT_ID']
  11. bot = telegram.Bot(token=token)
  12.  
  13. # Logging
  14. logger = logging.getLogger()
  15. if logger.handlers:
  16. for handler in logger.handlers:
  17. logger.removeHandler(handler)
  18. logging.basicConfig(level=logging.INFO)
  19.  
  20. OK_RESPONSE = {
  21. 'statusCode': 200,
  22. 'headers': {'Content-Type': 'application/json'},
  23. 'body': json.dumps('ok')
  24. }
  25. ERROR_RESPONSE = {
  26. 'statusCode': 400,
  27. 'body': json.dumps('Something went wrong!')
  28. }
  29.  
  30. # Run webhook
  31. def webhook(event, context):
  32.  
  33. logger.info('Event: {}'.format(event))
  34.  
  35. if event.get('httpMethod') == 'POST' and event.get('body'):
  36. logger.info('Message received')
  37. update = telegram.Update.de_json(json.loads(event.get('body')), bot)
  38. chat_id = update.message.chat.id
  39. text = update.message.text
  40.  
  41. if text == '/F1':
  42. photo = scraper.get_screenshot()
  43. caption = 'Upcoming race weekend info!'
  44. send_photo(photo, caption)
  45.  
  46. logger.info('Message sent')
  47.  
  48. return OK_RESPONSE
  49.  
  50. return ERROR_RESPONSE
  51.  
  52. # Set webhook
  53. def set_webhook(event, context):
  54.  
  55. logger.info('Event: {}'.format(event))
  56.  
  57. url = 'https://{}/{}/'.format(
  58. event.get('headers').get('Host'),
  59. event.get('requestContext').get('stage'),
  60. )
  61. webhook = bot.set_webhook(url)
  62.  
  63. if webhook:
  64. return OK_RESPONSE
  65.  
  66. return ERROR_RESPONSE
  67.  
  68. # Send photo
  69. def send_photo(photo, caption, chat_id=chatID, token=token):
  70. bot.sendPhoto(chat_id=chat_id, photo=photo, caption=caption)
Add Comment
Please, Sign In to add comment