Moved telegram part to telegram package

This commit is contained in:
Alexey Sokolov
2022-02-10 15:56:57 +03:00
parent 80b9d35d8f
commit 4739b8963a
5 changed files with 27 additions and 23 deletions

View File

@@ -8,11 +8,11 @@ class Config:
Notifier config dataclass. Notifier config dataclass.
* `base_url`: url of domain * `base_url`: url of domain
* `api_token`: telegram api token. * `teletoken`: telegram api token.
* `param bot_owner`: telegram id of bot owner. * `param bot_owner`: telegram id of bot owner.
""" """
base_url: str base_url: str
api_token: str teletoken: str
bot_owner: int bot_owner: int
@@ -20,13 +20,13 @@ class ConfigError(Exception):
pass pass
_api_token = getenv('LTLNOTIFIER_API_TOKEN') _teletoken = getenv('LTLNOTIFIER_TELETOKEN')
print(_api_token[9]) print(_teletoken[9])
# Check api token # Check api token
if not _api_token: if not _teletoken:
raise ConfigError('virtual environment LTLNOTIFIER_API_TOKEN not set.') raise ConfigError('virtual environment LTLNOTIFIER_TELETOKEN not set.')
if len(_api_token) != 45 or _api_token[9] != ':' or not _api_token[:9].isdigit(): if len(_teletoken) != 45 or _teletoken[9] != ':' or not _teletoken[:9].isdigit():
raise ConfigError('virtual environment LTLNOTIFIER_API_TOKEN incorrect.') raise ConfigError('virtual environment LTLNOTIFIER_TELETOKEN incorrect.')
_bot_owner = getenv('LTLNOTIFIER_BOT_OWNER') _bot_owner = getenv('LTLNOTIFIER_BOT_OWNER')
print(_bot_owner) print(_bot_owner)
@@ -45,6 +45,6 @@ _base_url = getenv('LTLNOTIFIER_BASE_URL')
if not _base_url: if not _base_url:
raise ConfigError('virtual environment LTLNOTIFIER_BASE_URL not set') raise ConfigError('virtual environment LTLNOTIFIER_BASE_URL not set')
config = Config(api_token=_api_token, bot_owner=_bot_owner, base_url=_base_url) config = Config(teletoken=_teletoken, bot_owner=_bot_owner, base_url=_base_url)
__all__ = ['Config', 'config'] __all__ = ['Config', 'config']

0
db/__init__.py Normal file
View File

View File

@@ -1,37 +1,32 @@
import logging import logging
from aiogram import Bot, Dispatcher
from aiogram.dispatcher.webhook import configure_app from aiogram.dispatcher.webhook import configure_app
from aiogram.contrib.middlewares.logging import LoggingMiddleware
from aiohttp import web from aiohttp import web
from config import config from config import config
from telegram import telegram_bot, telegram_dispatcher
WEBAPP_PORT = 3001 WEBAPP_PORT = 3001
TELEGRAM_WEBHOOK_URL = f'{config.base_url}{config.api_token}' TELEGRAM_WEBHOOK_URL = f'{config.base_url}/{config.teletoken}'
logging.basicConfig(level=logging.INFO) logging.basicConfig(level=logging.INFO)
bot = Bot(token=config.api_token)
dp = Dispatcher(bot)
dp.middleware.setup(LoggingMiddleware())
async def test_route(_): async def test_route(_):
return web.json_response({'test': 'passed'}, status=200) return web.json_response({'test': 'passed'}, status=200)
async def on_startup(_): async def on_startup(_):
await bot.set_webhook(TELEGRAM_WEBHOOK_URL) await telegram_bot.set_webhook(TELEGRAM_WEBHOOK_URL)
async def on_shutdown(_): async def on_shutdown(_):
logging.warning('Shutting down') logging.warning('Shutting down')
await bot.delete_webhook() await telegram_bot.delete_webhook()
await dp.storage.close() await telegram_dispatcher.storage.close()
await dp.storage.wait_closed() await telegram_dispatcher.storage.wait_closed()
await bot.session.close() session = await telegram_bot.get_session()
await session.close()
logging.warning('Bye!..') logging.warning('Bye!..')
@@ -39,7 +34,7 @@ app = web.Application()
app.add_routes([web.get('/test', test_route)]) app.add_routes([web.get('/test', test_route)])
app.on_startup.append(on_startup) app.on_startup.append(on_startup)
app.on_shutdown.append(on_shutdown) app.on_shutdown.append(on_shutdown)
configure_app(dp, app, '/'+config.api_token) configure_app(telegram_dispatcher, app, '/'+config.teletoken)
if __name__ == '__main__': if __name__ == '__main__':
web.run_app(app, port=WEBAPP_PORT) web.run_app(app, port=WEBAPP_PORT)

9
telegram/__init__.py Normal file
View File

@@ -0,0 +1,9 @@
from aiogram import Bot, Dispatcher
from aiogram.contrib.middlewares.logging import LoggingMiddleware
from config import config
telegram_bot = Bot(token=config.teletoken)
telegram_dispatcher = Dispatcher(telegram_bot)
telegram_dispatcher.middleware.setup(LoggingMiddleware())

0
web/__init__.py Normal file
View File