Platitude

Untitled

May 2nd, 2020
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.23 KB | None | 0 0
  1. import logging, ssl
  2. from aiogram.contrib.middlewares.logging import LoggingMiddleware
  3. import ssl
  4. from aiohttp import web
  5. from aiogram import Bot, types
  6. from aiogram.dispatcher import Dispatcher
  7. from aiogram.dispatcher.webhook import get_new_configured_app, SendMessage
  8.  
  9. API_TOKEN = '1042494313:AAHAiBePCc5Tw2iRu1DWQYscwm_u6ujIakA'
  10.  
  11. # webhook settings
  12. WEBHOOK_HOST = 'https://howtostudy.ru'
  13. WEBHOOK_PATH = '/1042494313:AAHAiBePCc5Tw2iRu1DWQYscwm_u6ujIakA'
  14. WEBHOOK_URL = f"{WEBHOOK_HOST}{WEBHOOK_PATH}"
  15.  
  16. # webserver settings
  17. WEBAPP_HOST = '0.0.0.0'  # or ip
  18. WEBAPP_PORT = 5007
  19. WEBHOOK_SSL_CERT = './webhook_cert.pem'  # Path to the ssl certificate
  20. WEBHOOK_SSL_PRIV = './webhook_pkey.pem'  # Path to the ssl private key
  21.  
  22.  
  23. logging.basicConfig(level=logging.INFO)
  24.  
  25. bot = Bot(token=API_TOKEN)
  26. dp = Dispatcher(bot)
  27. dp.middleware.setup(LoggingMiddleware())
  28.  
  29.  
  30. @dp.message_handler(state='*', commands=["start", "cancel"])
  31. async def send_welcome(message):
  32.     img = open("logo.jpg", "rb")
  33.     await bot.send_photo(message.chat.id, img,
  34.                          caption="Добро пожаловать на платформу онлайн тестирования")
  35.  
  36.  
  37. @dp.message_handler()
  38. async def echo(message: types.Message):
  39.     return SendMessage(message.chat.id, message.text)
  40.  
  41.  
  42. async def on_startup(dp):
  43.     await bot.set_webhook(WEBHOOK_URL)
  44.  
  45.  
  46. async def on_shutdown(dp):
  47.     logging.warning('Shutting down..')
  48.     await bot.delete_webhook()
  49.     await dp.storage.close()
  50.     await dp.storage.wait_closed()
  51.  
  52.     logging.warning('Bye!')
  53.  
  54.  
  55. async def on_startup(app):
  56.     webhook = await bot.get_webhook_info()
  57.     if webhook.url != WEBHOOK_URL:
  58.         if not webhook.url:
  59.             await bot.delete_webhook()
  60.         await bot.set_webhook(WEBHOOK_URL, certificate=open(WEBHOOK_SSL_CERT, 'rb'))
  61.  
  62.  
  63. if __name__ == '__main__':
  64.     app = get_new_configured_app(dispatcher=dp, path=WEBHOOK_URL)
  65.     app.on_startup.append(on_startup)
  66.     app.on_shutdown.append(on_shutdown)
  67.  
  68.     # Generate SSL context
  69.     context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
  70.     context.load_cert_chain(WEBHOOK_SSL_CERT, WEBHOOK_SSL_PRIV)
  71.  
  72.     # Start web-application.
  73.     web.run_app(app, host=WEBAPP_HOST, port=WEBAPP_PORT, ssl_context=context)
Add Comment
Please, Sign In to add comment