Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import logging, ssl
- from aiogram.contrib.middlewares.logging import LoggingMiddleware
- import ssl
- from aiohttp import web
- from aiogram import Bot, types
- from aiogram.dispatcher import Dispatcher
- from aiogram.dispatcher.webhook import get_new_configured_app, SendMessage
- API_TOKEN = '1042494313:AAHAiBePCc5Tw2iRu1DWQYscwm_u6ujIakA'
- # webhook settings
- WEBHOOK_HOST = 'https://howtostudy.ru'
- WEBHOOK_PATH = '/1042494313:AAHAiBePCc5Tw2iRu1DWQYscwm_u6ujIakA'
- WEBHOOK_URL = f"{WEBHOOK_HOST}{WEBHOOK_PATH}"
- # webserver settings
- WEBAPP_HOST = '0.0.0.0' # or ip
- WEBAPP_PORT = 5007
- WEBHOOK_SSL_CERT = './webhook_cert.pem' # Path to the ssl certificate
- WEBHOOK_SSL_PRIV = './webhook_pkey.pem' # Path to the ssl private key
- logging.basicConfig(level=logging.INFO)
- bot = Bot(token=API_TOKEN)
- dp = Dispatcher(bot)
- dp.middleware.setup(LoggingMiddleware())
- @dp.message_handler(state='*', commands=["start", "cancel"])
- async def send_welcome(message):
- img = open("logo.jpg", "rb")
- await bot.send_photo(message.chat.id, img,
- caption="Добро пожаловать на платформу онлайн тестирования")
- @dp.message_handler()
- async def echo(message: types.Message):
- return SendMessage(message.chat.id, message.text)
- async def on_startup(dp):
- await bot.set_webhook(WEBHOOK_URL)
- async def on_shutdown(dp):
- logging.warning('Shutting down..')
- await bot.delete_webhook()
- await dp.storage.close()
- await dp.storage.wait_closed()
- logging.warning('Bye!')
- async def on_startup(app):
- webhook = await bot.get_webhook_info()
- if webhook.url != WEBHOOK_URL:
- if not webhook.url:
- await bot.delete_webhook()
- await bot.set_webhook(WEBHOOK_URL, certificate=open(WEBHOOK_SSL_CERT, 'rb'))
- if __name__ == '__main__':
- app = get_new_configured_app(dispatcher=dp, path=WEBHOOK_URL)
- app.on_startup.append(on_startup)
- app.on_shutdown.append(on_shutdown)
- # Generate SSL context
- context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
- context.load_cert_chain(WEBHOOK_SSL_CERT, WEBHOOK_SSL_PRIV)
- # Start web-application.
- web.run_app(app, host=WEBAPP_HOST, port=WEBAPP_PORT, ssl_context=context)
Add Comment
Please, Sign In to add comment