import logging
from flask import Flask
from telegram.ext import Updater,CommandHandler,MessageHandler,Filters,Dispatcher
from telegram import Bot
#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 "Hello!"
@app.route(f'/{TOKEN}', methods=['GET','POST'])
def webhook():
#create an update object from telegram
update = Update.de_json(request.get_json(),bot)
#process update
dispatcher.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 echo_text(bot,update):
reply=update.message.text
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)
def main():
bot = Bot(TOKEN)
bot.set_webhook("https://e...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,echo_text))
dp.add_handler(MessageHandler(Filters.sticker,echo_sticker))
dp.add_error_handler(error)
updater.start_polling()
logger.info("Started XYX polling...")
updater.idle()
if __name__ == "__main__":
main()
app.run(port=8443)
aW1wb3J0IGxvZ2dpbmcKZnJvbSBmbGFzayBpbXBvcnQgRmxhc2sKZnJvbSB0ZWxlZ3JhbS5leHQgaW1wb3J0IFVwZGF0ZXIsQ29tbWFuZEhhbmRsZXIsTWVzc2FnZUhhbmRsZXIsRmlsdGVycyxEaXNwYXRjaGVyCmZyb20gdGVsZWdyYW0gaW1wb3J0IEJvdAojZW5hYmxlIGxvZ2dpbmcKbG9nZ2luZy5iYXNpY0NvbmZpZyhmb3JtYXQ9JyUoYXNjdGltZSlzLSUobmFtZSlzLSUobGV2ZWxuYW1lKXMgLSAlKG1lc3NhZ2UpcycsbGV2ZWw9bG9nZ2luZy5JTkZPKQpsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKClRPS0VOID0gIjk3MzAwMDgyMzpBQUgwUC04a3gtY2EzaVNBbzVGUnUycnV0TUtSQUktY294USIKCmFwcCA9IEZsYXNrKF9fbmFtZV9fKQoKQGFwcC5yb3V0ZSgnLycpCmRlZiBpbmRleCgpOgogCXJldHVybiAiSGVsbG8hIgoKQGFwcC5yb3V0ZShmJy97VE9LRU59JywgbWV0aG9kcz1bJ0dFVCcsJ1BPU1QnXSkKCmRlZiB3ZWJob29rKCk6CgkjY3JlYXRlIGFuIHVwZGF0ZSBvYmplY3QgZnJvbSB0ZWxlZ3JhbQoJdXBkYXRlID0gVXBkYXRlLmRlX2pzb24ocmVxdWVzdC5nZXRfanNvbigpLGJvdCkKCSNwcm9jZXNzIHVwZGF0ZQoJZGlzcGF0Y2hlci5wcm9jZXNzX3VwZGF0ZSh1cGRhdGUpCglyZXR1cm4gIm9rIgoKZGVmIHN0YXJ0KGJvdCx1cGRhdGUpOgogICAgcHJpbnQodXBkYXRlKQogICAgYXV0aG9yPSB1cGRhdGUubWVzc2FnZS5mcm9tX3VzZXIuZmlyc3RfbmFtZQogICAgI21zZz0gdXBkYXRlLm1lc3NhZ2UudGV4dAogICAgcmVwbHkgPSAiSGkhIHt9Ii5mb3JtYXQoYXV0aG9yKQogICAgYm90LnNlbmRfbWVzc2FnZShjaGF0X2lkPXVwZGF0ZS5tZXNzYWdlLmNoYXRfaWQsdGV4dD1yZXBseSkKCmRlZiBfaGVscChib3QsdXBkYXRlKToKCWhlbHBfdHh0PSJIZXkhIFRoaXMgaXMgYSBoZWxwIHRleHQuIgoJYm90LnNlbmRfbWVzc2FnZShjaGF0X2lkPXVwZGF0ZS5tZXNzYWdlLmNoYXRfaWQsdGV4dD1oZWxwX3R4dCkKCmRlZiBlY2hvX3RleHQoYm90LHVwZGF0ZSk6CglyZXBseT11cGRhdGUubWVzc2FnZS50ZXh0Cglib3Quc2VuZF9tZXNzYWdlKGNoYXRfaWQ9dXBkYXRlLm1lc3NhZ2UuY2hhdF9pZCx0ZXh0PXJlcGx5KQoKZGVmIGVjaG9fc3RpY2tlcihib3QsdXBkYXRlKToKCSNyZXBseT11cGRhdGUubWVzc2FnZS50eHQKCWJvdC5zZW5kX3N0aWNrZXIoY2hhdF9pZD11cGRhdGUubWVzc2FnZS5jaGF0X2lkLHN0aWNrZXI9dXBkYXRlLm1lc3NhZ2Uuc3RpY2tlci5maWxlX2lkKQoKZGVmIGVycm9yKGJvdCx1cGRhdGUpOgoJbG9nZ2VyLmVycm9yKCJVcGRhdGUgJyVzJyBjYXVzZWQgZXJyb3IgJyVzJyIsdXBkYXRlLHVwZGF0ZS5lcnJvcikKCmRlZiBtYWluKCk6CgogICAgYm90ID0gQm90KFRPS0VOKQogICAgYm90LnNldF93ZWJob29rKCJodHRwczovL2UuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmsuaW8vIisgVE9LRU4pCgogICAgZHAgPSBEaXNwYXRjaGVyKGJvdCxOb25lKQoKICAgIGRwLmFkZF9oYW5kbGVyKENvbW1hbmRIYW5kbGVyKCJzdGFydCIsc3RhcnQpKQogICAgZHAuYWRkX2hhbmRsZXIoQ29tbWFuZEhhbmRsZXIoImhlbHAiLF9oZWxwKSkKICAgIGRwLmFkZF9oYW5kbGVyKE1lc3NhZ2VIYW5kbGVyKEZpbHRlcnMudGV4dCxlY2hvX3RleHQpKQogICAgZHAuYWRkX2hhbmRsZXIoTWVzc2FnZUhhbmRsZXIoRmlsdGVycy5zdGlja2VyLGVjaG9fc3RpY2tlcikpCiAgICBkcC5hZGRfZXJyb3JfaGFuZGxlcihlcnJvcikKCiAgICB1cGRhdGVyLnN0YXJ0X3BvbGxpbmcoKQogICAgbG9nZ2VyLmluZm8oIlN0YXJ0ZWQgWFlYIHBvbGxpbmcuLi4iKQogICAgdXBkYXRlci5pZGxlKCkKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CgltYWluKCkKCWFwcC5ydW4ocG9ydD04NDQzKQoKCgoKCg==