КАК ЭТО РАБОТАЕТ
Короче, по-простому.
Ты запускаешь бота
- Сначала проверяется безопасность (файрвол)
- Подключается база данных (RocksDB)
- Поднимается веб-сервер — чтобы ты мог залогиниться через браузер
- Ждёшь пока ты авторизуешься
- Подключается к Matrix
- Подключается крипта (OlmMachine)
- Загружаются модули: сначала встроенные, потом твои из репозиториев
- Начинает слушать новые сообщения
Когда ты пишешь команду
Допустим ты пишешь .ping:
- Matrix шлёт событие "новое сообщение"
- Бот ловит это событие
- Расшифровывает если нужно (если комната зашифрована)
- Видит что начинается с
. - Ищет какая команда соответствует
- Проверяет права (ты OWNER? SUDO? или просто кто-то?)
- Если всё ок — выполняет команду
- Отвечает через
utils.answer()
Модули
Есть два вида:
- Core — встроенные, идут вместе с ботом. Их нельзя изменить, они "заморожены".
- Community — те что ты ставишь из репозиториев. Работают в песочнице, не могут навредить.
Если что-то непонятно
Загляни в Ключевые концепции — там всё простыми словами.
Если ты разработчик и хочешь писать модули — тебе сюда: Разработка модулей.