https://t.me/theFishestFish_bot - адрес бота
Для старта введите /start
-
/help - помощь по командам
-
/time - установка часового пояса
-
<дата> <время> <текс> - запланировать напоминание (для подробного объяснения вызвать /help reminder)
"tomorrow 2:30 feed the dogg"
"/time setUtcOffset utc+9"
"20.01.2024 21:22 wahahah"
Для старта запустить Application project
Для остановки бота ввести Enter в консоли
Место сохранения информации на диск задается в Application.Program (по умолчанию задан относительный путь до папки в проекте)
Application и Domain требуют следующих библиотек
- Telegram.Bot (для работы с Api Телегама)
- Ninject (DI контейнер)
- ninject.extensions.conventions
Разделено на 3 слоя:
-
Инфраструктура - отвечает в основном за сохранение данных на диск
-
Предметная область - содержит предметные объекты (в основном это ChatData - инфрмация о пользователе; и ReminderData - информация о запланированном напоминании, Record и Reminder это legacy(часть методов работает на них)); Также там находится код для обработки строк, задающих напоминания Еще есть логика работы с данными (подбор сообщений для отправки)
-
Приложение - взаимодействие с TelegramApi (IBot и MainBot); Обработка сообщений пользователей (IMessageHandler и ему подобные); Точка сборки тут же
-
+- IStorageHandler - управляет данными в приложении
-
легко добавить новые команды, реализовав IMessageHandler
-
аналогично с форматами сообщений для задания напоминаний (IReminderMessageParser)
-
для заполнения подсказок команды help используется рефлексия - для добавления описания к команде нужно только добавить атрибут на класс этой команды
-
присутвует точка сборки - в Application.Program (в каждом проекте есть модуль сборки, например Application.AppModule)
-
используется Ninject