У меня есть несколько обработчиков для нескольких команд. Например:
Код: Выделить всё
bot.py:
bot = TelegramClient('bot', TELEGRAM_API_ID, TELEGRAM_API_HASH).start(bot_token=TELEGRAM_BOT_TOKEN)
@bot.on(events.NewMessage(pattern='/start'))
def start_handler(event):
...
@bot.on(events.NewMessage(pattern='/time'))
def time_handler(event):
...
@bot.on(events.NewMessage(pattern='/timezone'))
def timezone_handler(event):
...
def run():
bot.run_until_disconnected()
Код: Выделить всё
start.pyКод: Выделить всё
from bot import run
run()
Мои первоначальные идеи:
- Наличие методов инициализации для разных групп обработчиков:
Код: Выделить всё
time.pyКод: Выделить всё
def init_time_handlers(bot):
@bot.on(events.NewMessage(pattern='/time'))
def time_handler(event):
...
@bot.on(events.NewMessage(pattern='/timezone'))
def timezone_handler(event):
...
Код: Выделить всё
run.py:
from bot import bot
from time import init_time_handlers
# import other handlers modules
init_time_handlers(bot)
# init other handlers
bot.run_until_disconnected()
- Наличие одного файла сопоставления и обработчиков в отдельных модулях:
Код: Выделить всё
time.pyКод: Выделить всё
def time_handler(event):
...
def timezone_handler(event):
...
Код: Выделить всё
bot.pyКод: Выделить всё
from time import time_handler, timezone_handler
# import other handlers modules
bot = TelegramClient('bot', TELEGRAM_API_ID, TELEGRAM_API_HASH).start(bot_token=TELEGRAM_BOT_TOKEN)
@bot.on(events.NewMessage(pattern='/start'))
def start_handler(event):
...
bot.on(events.NewMessage(pattern='/time'))(time_handler)
bot.on(events.NewMessage(pattern='/timezone'))(timezone_handler)
# map other handlers
Подробнее здесь: https://stackoverflow.com/questions/693 ... bal-object
Мобильная версия