telebot_template/mybot/__init__.py
2024-07-30 02:59:58 +03:00

43 lines
1.4 KiB
Python

from telebot import TeleBot
from .config import Config, load_config
from .logger import create_logger
from .i18n import I18N
from .database import get_engine
from .states import get_state_storage
from .handlers import register_handlers
from .middlewares import setup_middlewares
from .filters import add_custom_filters
def create_bot(config: Config, i18n: I18N, engine):
state_storage = get_state_storage(config.states)
bot = TeleBot(config.bot.token,
parse_mode=config.bot.parse_mode,
skip_pending=config.bot.skip_pending,
num_threads=config.bot.num_threads,
use_class_middlewares=True,
state_storage=state_storage)
register_handlers(bot)
setup_middlewares(bot, i18n, engine)
add_custom_filters(bot, config)
if config.use_webhook:
bot.delete_webhook()
bot.set_webhook(config.webhook.url,
drop_pending_updates=config.webhook.drop_pending_updates,
max_connections=config.webhook.max_connections)
return bot
def main():
config = load_config()
# logger = create_logger("mybot", config.log_level)
i18n = I18N(config.i18n)
engine = get_engine(config.database)
bot = create_bot(config, i18n, engine)
bot.infinity_polling(
timeout=config.bot.timeout,
long_polling_timeout=config.bot.polling_timeout,
skip_pending=config.bot.skip_pending
)