Два метода — и модуль готов
Встройте goroku.Base, и жизненный цикл, хранилище, переводчик и клиент уже подключены. Объявите Name и Commands; остальное переопределяйте только когда нужно.
Модуль — это структура с именем и командами. У всего остального есть значение по умолчанию.
package modules
import "goroku/goroku"
type HTML struct{ goroku.Base }
func (m *HTML) Name() string { return "HTML" }
func (m *HTML) Commands() map[string]goroku.CommandHandler {
return map[string]goroku.CommandHandler{"html": m.HTMLCmd}
}
func (m *HTML) HTMLCmd(msg *goroku.Message) error {
code := msg.ArgsOrReply()
if code == "" {
return msg.Answer(m.T("no_args", "❌ <b>Пришлите текст или ответьте на сообщение</b>"))
}
return msg.Answer(code)
}Это весь файл. .html <b>привет</b> отрисует жирный текст, а .html в ответ на сообщение отрисует его.
| Что нужно | Читать |
|---|---|
| Быстро получить работающий модуль | Первый модуль |
| Понять, зачем каждый метод | Устройство модуля |
| Ограничить команду группами, админами, ответами | CommandMeta |
| Хранить данные между перезапусками | Хранилище |
| Дать пользователю настройки | Настройки |
| Раздать модуль другим | Установка модуля |