import logging
from flask import Flask
from flask import request
from telegram.ext import Updater,CommandHandler,MessageHandler,Filters,Dispatcher
from telegram import Bot,Update
from utils import get_reply,fetch_news
#enable logging
logging.basicConfig(format='%(asctime)s-%(name)s-%(levelname)s - %(message)s',level=logging.INFO)
logger = logging.getLogger(__name__)
TOKEN = "973000823:AAH0P-8kx-ca3iSAo5FRu2rutMKRAI-coxQ"
app = Flask(__name__)
@app.route('/')
def index():
return "hi!"
@app.route('/973000823:AAH0P-8kx-ca3iSAo5FRu2rutMKRAI-coxQ', methods=['GET','POST'])
def webhook():
#create an update object from telegram
update = Update.de_json(request.get_json(),bot)
#process update
dp.process_update(update)
return "ok"
def start(bot,update):
print(update)
author= update.message.from_user.first_name
#msg= update.message.text
reply = "Hi! {}".format(author)
bot.send_message(chat_id=update.message.chat_id,text=reply)
def _help(bot,update):
help_txt="Hey! This is a help text."
bot.send_message(chat_id=update.message.chat_id,text=help_txt)
def reply_text(bot,update):
intent, reply=get_reply(update.message.text,update.message.chat_id)
if intent=="get_news_intent":
articles = fetch_news(reply)
for article in articles:
bot.send_message(chat_id=update.message.chat_id,text=article['link'])
else :
bot.send_message(chat_id=update.message.chat_id,text=reply)
def echo_sticker(bot,update):
#reply=update.message.txt
bot.send_sticker(chat_id=update.message.chat_id,sticker=update.message.sticker.file_id)
def error(bot,update):
logger.error("Update '%s' caused error '%s'",update,update.error)
if __name__ == "__main__":
bot = Bot(TOKEN)
bot.set_webhook("https://6...content-available-to-author-only...k.io/"+ TOKEN)
dp = Dispatcher(bot,None)
dp.add_handler(CommandHandler("start",start))
dp.add_handler(CommandHandler("help",_help))
dp.add_handler(MessageHandler(Filters.text,reply_text))
dp.add_handler(MessageHandler(Filters.sticker,echo_sticker))
dp.add_error_handler(error)
app.run(port=8443)
# your code goes here
aW1wb3J0IGxvZ2dpbmcKZnJvbSBmbGFzayBpbXBvcnQgRmxhc2sKZnJvbSBmbGFzayBpbXBvcnQgcmVxdWVzdApmcm9tIHRlbGVncmFtLmV4dCBpbXBvcnQgVXBkYXRlcixDb21tYW5kSGFuZGxlcixNZXNzYWdlSGFuZGxlcixGaWx0ZXJzLERpc3BhdGNoZXIKZnJvbSB0ZWxlZ3JhbSBpbXBvcnQgQm90LFVwZGF0ZQpmcm9tIHV0aWxzIGltcG9ydCBnZXRfcmVwbHksZmV0Y2hfbmV3cwoKI2VuYWJsZSBsb2dnaW5nCmxvZ2dpbmcuYmFzaWNDb25maWcoZm9ybWF0PSclKGFzY3RpbWUpcy0lKG5hbWUpcy0lKGxldmVsbmFtZSlzIC0gJShtZXNzYWdlKXMnLGxldmVsPWxvZ2dpbmcuSU5GTykKbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCgpUT0tFTiA9ICI5NzMwMDA4MjM6QUFIMFAtOGt4LWNhM2lTQW81RlJ1MnJ1dE1LUkFJLWNveFEiCgphcHAgPSBGbGFzayhfX25hbWVfXykKCkBhcHAucm91dGUoJy8nKQpkZWYgaW5kZXgoKToKIAlyZXR1cm4gImhpISIKCkBhcHAucm91dGUoJy85NzMwMDA4MjM6QUFIMFAtOGt4LWNhM2lTQW81RlJ1MnJ1dE1LUkFJLWNveFEnLCBtZXRob2RzPVsnR0VUJywnUE9TVCddKQoKZGVmIHdlYmhvb2soKToKCSNjcmVhdGUgYW4gdXBkYXRlIG9iamVjdCBmcm9tIHRlbGVncmFtCgl1cGRhdGUgPSBVcGRhdGUuZGVfanNvbihyZXF1ZXN0LmdldF9qc29uKCksYm90KQoJI3Byb2Nlc3MgdXBkYXRlCglkcC5wcm9jZXNzX3VwZGF0ZSh1cGRhdGUpCglyZXR1cm4gIm9rIgoKZGVmIHN0YXJ0KGJvdCx1cGRhdGUpOgogICAgcHJpbnQodXBkYXRlKQogICAgYXV0aG9yPSB1cGRhdGUubWVzc2FnZS5mcm9tX3VzZXIuZmlyc3RfbmFtZQogICAgI21zZz0gdXBkYXRlLm1lc3NhZ2UudGV4dAogICAgcmVwbHkgPSAiSGkhIHt9Ii5mb3JtYXQoYXV0aG9yKQogICAgYm90LnNlbmRfbWVzc2FnZShjaGF0X2lkPXVwZGF0ZS5tZXNzYWdlLmNoYXRfaWQsdGV4dD1yZXBseSkKCmRlZiBfaGVscChib3QsdXBkYXRlKToKCWhlbHBfdHh0PSJIZXkhIFRoaXMgaXMgYSBoZWxwIHRleHQuIgoJYm90LnNlbmRfbWVzc2FnZShjaGF0X2lkPXVwZGF0ZS5tZXNzYWdlLmNoYXRfaWQsdGV4dD1oZWxwX3R4dCkKCmRlZiByZXBseV90ZXh0KGJvdCx1cGRhdGUpOgoJaW50ZW50LCByZXBseT1nZXRfcmVwbHkodXBkYXRlLm1lc3NhZ2UudGV4dCx1cGRhdGUubWVzc2FnZS5jaGF0X2lkKQoJaWYgaW50ZW50PT0iZ2V0X25ld3NfaW50ZW50IjoKCQlhcnRpY2xlcyA9IGZldGNoX25ld3MocmVwbHkpCgkJZm9yIGFydGljbGUgaW4gYXJ0aWNsZXM6CgkJCWJvdC5zZW5kX21lc3NhZ2UoY2hhdF9pZD11cGRhdGUubWVzc2FnZS5jaGF0X2lkLHRleHQ9YXJ0aWNsZVsnbGluayddKQoJZWxzZSA6CgkJYm90LnNlbmRfbWVzc2FnZShjaGF0X2lkPXVwZGF0ZS5tZXNzYWdlLmNoYXRfaWQsdGV4dD1yZXBseSkKCmRlZiBlY2hvX3N0aWNrZXIoYm90LHVwZGF0ZSk6CgkjcmVwbHk9dXBkYXRlLm1lc3NhZ2UudHh0Cglib3Quc2VuZF9zdGlja2VyKGNoYXRfaWQ9dXBkYXRlLm1lc3NhZ2UuY2hhdF9pZCxzdGlja2VyPXVwZGF0ZS5tZXNzYWdlLnN0aWNrZXIuZmlsZV9pZCkKCmRlZiBlcnJvcihib3QsdXBkYXRlKToKCWxvZ2dlci5lcnJvcigiVXBkYXRlICclcycgY2F1c2VkIGVycm9yICclcyciLHVwZGF0ZSx1cGRhdGUuZXJyb3IpCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgoJYm90ID0gQm90KFRPS0VOKQoJYm90LnNldF93ZWJob29rKCJodHRwczovLzYuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmsuaW8vIisgVE9LRU4pCgoJZHAgPSBEaXNwYXRjaGVyKGJvdCxOb25lKQoKCWRwLmFkZF9oYW5kbGVyKENvbW1hbmRIYW5kbGVyKCJzdGFydCIsc3RhcnQpKQoJZHAuYWRkX2hhbmRsZXIoQ29tbWFuZEhhbmRsZXIoImhlbHAiLF9oZWxwKSkKCWRwLmFkZF9oYW5kbGVyKE1lc3NhZ2VIYW5kbGVyKEZpbHRlcnMudGV4dCxyZXBseV90ZXh0KSkKCWRwLmFkZF9oYW5kbGVyKE1lc3NhZ2VIYW5kbGVyKEZpbHRlcnMuc3RpY2tlcixlY2hvX3N0aWNrZXIpKQoJZHAuYWRkX2Vycm9yX2hhbmRsZXIoZXJyb3IpCglhcHAucnVuKHBvcnQ9ODQ0MykKCgoKCgojIHlvdXIgY29kZSBnb2VzIGhlcmU=