37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
from telebot import TeleBot
|
|
from telebot.storage import StateMemoryStorage, StateRedisStorage
|
|
|
|
from .handlers import register_handlers
|
|
from .middlewares import setup_middlewares
|
|
from .filters import add_custom_filters
|
|
|
|
|
|
def create_bot(config, logger, i18n):
|
|
if config.SS_TYPE == "memory":
|
|
state_storage = StateMemoryStorage()
|
|
elif config.SS_TYPE == "redis":
|
|
state_storage = StateRedisStorage(config.SS_REDIS_HOST,
|
|
config.SS_REDIS_PORT,
|
|
config.SS_REDIS_DB,
|
|
config.SS_REDIS_PASS)
|
|
else:
|
|
raise RuntimeWarning(f"Unknown state storage type: '{config.SS_TYPE}'")
|
|
|
|
bot = TeleBot(config.BOT_TOKEN,
|
|
parse_mode=config.PARSE_MODE,
|
|
skip_pending=config.DROP_PENDING,
|
|
num_threads=config.NUM_THREADS,
|
|
use_class_middlewares=True,
|
|
state_storage=state_storage)
|
|
|
|
logger.debug("Setting up middlewares")
|
|
setup_middlewares(bot, logger, i18n)
|
|
|
|
logger.debug("Registering handlers")
|
|
register_handlers(bot)
|
|
|
|
logger.debug("Adding custom filters")
|
|
add_custom_filters(bot, config)
|
|
|
|
return bot
|