56 lines
1.5 KiB
Python
Raw Normal View History

2021-10-05 19:20:04 +02:00
from logging import Logger
import logging
2021-09-18 15:30:56 +02:00
from telegram.ext import Updater
from telegram.ext.dispatcher import Dispatcher
2021-10-05 19:20:04 +02:00
from logger import Logger
from config.credentials import BOT_TOKEN, PORT, WEBHOOK_URL
from bot.handler import (groupsHandler, joinHandler, mentionHandler, leaveHandler,
2021-10-05 19:20:04 +02:00
silentMentionHandler, startHandler)
from bot.handler.abstractHandler import AbstractHandler
2021-09-18 15:30:56 +02:00
class App:
updater: Updater
dispatcher: Dispatcher
2021-10-05 19:20:04 +02:00
log_file: str = '/var/log/bot.log'
log_format: str = '%(levelname)s-%(asctime)s: %(message)s'
2021-09-18 15:30:56 +02:00
def __init__(self):
self.updater = Updater(BOT_TOKEN)
2021-09-18 15:30:56 +02:00
def run(self) -> None:
2021-10-05 19:20:04 +02:00
self.setup_logging()
self.register_handlers()
self.register_webhook()
2021-09-18 15:30:56 +02:00
self.updater.idle()
def register_handlers(self) -> None:
for handler in AbstractHandler.__subclasses__():
self.updater.dispatcher.add_handler(
handler().get_bot_handler()
)
def register_webhook(self) -> None:
self.updater.start_webhook(
listen="0.0.0.0",
port=int(PORT),
url_path=BOT_TOKEN,
webhook_url="/".join([WEBHOOK_URL, BOT_TOKEN])
)
2021-10-05 19:20:04 +02:00
Logger.get_logger(Logger.action_logger).info(
f'Webhook configured, listening on {WEBHOOK_URL}/<bot-token>'
)
def setup_logging(self) -> None:
logger = Logger()
logger.setup()
if __name__ == "__main__":
app = App()
app.run()