|
""" |
|
Telegram event handlers |
|
""" |
|
from telegram.ext import ( |
|
Dispatcher, Filters, |
|
CommandHandler, MessageHandler, |
|
CallbackQueryHandler, |
|
) |
|
|
|
from dtb.settings import DEBUG |
|
from tgbot.handlers.broadcast_message.manage_data import CONFIRM_DECLINE_BROADCAST |
|
from tgbot.handlers.broadcast_message.static_text import broadcast_command |
|
from tgbot.handlers.onboarding.manage_data import SECRET_LEVEL_BUTTON |
|
|
|
from tgbot.handlers.utils import files, error |
|
from tgbot.handlers.admin import handlers as admin_handlers |
|
from tgbot.handlers.location import handlers as location_handlers |
|
from tgbot.handlers.onboarding import handlers as onboarding_handlers |
|
from tgbot.handlers.broadcast_message import handlers as broadcast_handlers |
|
from tgbot.main import bot |
|
|
|
|
|
def setup_dispatcher(dp): |
|
""" |
|
Adding handlers for events from Telegram |
|
""" |
|
|
|
dp.add_handler(CommandHandler("start", onboarding_handlers.command_start)) |
|
|
|
|
|
dp.add_handler(CommandHandler("admin", admin_handlers.admin)) |
|
dp.add_handler(CommandHandler("stats", admin_handlers.stats)) |
|
dp.add_handler(CommandHandler('export_users', admin_handlers.export_users)) |
|
|
|
|
|
dp.add_handler(CommandHandler("ask_location", location_handlers.ask_for_location)) |
|
dp.add_handler(MessageHandler(Filters.location, location_handlers.location_handler)) |
|
|
|
|
|
dp.add_handler(CallbackQueryHandler(onboarding_handlers.secret_level, pattern=f"^{SECRET_LEVEL_BUTTON}")) |
|
|
|
|
|
dp.add_handler( |
|
MessageHandler(Filters.regex(rf'^{broadcast_command}(/s)?.*'), broadcast_handlers.broadcast_command_with_message) |
|
) |
|
dp.add_handler( |
|
CallbackQueryHandler(broadcast_handlers.broadcast_decision_handler, pattern=f"^{CONFIRM_DECLINE_BROADCAST}") |
|
) |
|
|
|
|
|
dp.add_handler(MessageHandler( |
|
Filters.animation, files.show_file_id, |
|
)) |
|
|
|
|
|
dp.add_error_handler(error.send_stacktrace_to_tg_chat) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return dp |
|
|
|
|
|
n_workers = 0 if DEBUG else 4 |
|
dispatcher = setup_dispatcher(Dispatcher(bot, update_queue=None, workers=n_workers, use_context=True)) |
|
|