38 lines
1.2 KiB
Python
38 lines
1.2 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)
|
|
add_custom_filters(bot, config)
|
|
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
|
|
)
|