Это код простейшего бота для слака, которого нужного научить обрабатывать различные команды.
Чтобы добавить свой обработчик, нужно добавить свой файл в command_handler/,
зарегистрировать класс в пуле соответствующим декоратором,
а также добавить в bot.py импорт соответствующего хендлера.
- Калькулятор с поддержкой простейших арфиметических операций и скобок.
- Бросатель кубиков в днд-нотацции: 2d20, 3d6. Можно объединить с калькулятором.
- Поиска ответа по StackOverflow.
- Любой другой поиска, например, dndbeyond.com.
- Крестики-нолики: сделать ход, сбросить партию, показать статистику матчей*.
- Погода в указанном городе.
- Сохранить сообщение, выдать последнее сохраненное, выдать случайное сохраненное.
- Задать вопрос из базы, похвалить ответившего правильно, показать лучших трех отвечавших*.
- Информация о музыкальных группах из инфокарт с Википедии.
- Игра "виселица": запустить, принять ответ, перезапустить. Можно сделать поддержку нескольких партий одновременно.
- Работа с системой: ls, cat, man. Вывести первые N символов, по отдельной команде следующие N.
* чтобы узнать имя пользователя, понадобятся изменения в клиенте.
- Автоматически импортировать все хендлеры из
command_handler/. - Подгружать новые хендлеры из
command_handler/без перезапуска клиента (если они появились или обновлись). - Расширить протокол общения с хендлером. Посылать в него дополнительные данные о сообщении. Разрешить ему говорить "не обрабатывай эту команду другими хендлерами", возвращать массив сообщений (в том числе пустой), возвращать колбек и т. д. Обратную совместимость нужно сохранить.
- Банить хендлеры после N ошибок. Если реализована динамическая подгрузка, то надо разбанивать при обновлении.
- Запускать хендлеры в тредах.