Skip to content

Message

Каждый обработчик получает *goroku.Message.

Поля

ПолеТипСмысл
IDint64ID сообщения
ChatIDint64Чат, в котором отправлено
SenderIDint64ID отправителя. 0, если отправитель не пользователь — анонимные админы и посты от имени канала
SenderChannelIDint64Канал, от имени которого отправлено, 0 для обычного пользователя
SenderIsChannelboolОтправитель — канал, а не пользователь
TextstringТекст с применённым форматированием
RawTextstringТекст ровно как напечатан
Entities[]tg.MessageEntityClassСущности форматирования
OutboolОтправлено этим аккаунтом
Mediatg.MessageMediaClassВложение, nil если нет
IsPrivateboolЛичный чат
IsGroupboolГруппа
IsChannelboolКанал
ReplyToMsgIDint64Сообщение, на которое ответили, 0 если нет
IsForwardedboolПереслано откуда-то
FwdFromtg.MessageFwdHeaderЗаголовок пересылки
ViaBotIDint64Использованный инлайн-бот, 0 если нет
AnsweredboolОбработчик уже ответил
Client*CustomTelegramClientКлиент, получивший сообщение

Аргументы

Args() string

Всё после слова команды, с обрезанными краями. Внутренние пробелы сохраняются.

go
// .say привет  всем
msg.Args() // "привет  всем"

ArgsList() []string

Args, разбитый по пробелам. nil, если пусто.

Arg(i int) string

i-й аргумент или "", если индекс за пределами. Никогда не паникует.

ArgsOrReply() string

Args(), а при пустом результате — текст сообщения, на которое ответили. "", если нет ни того ни другого.

go
code := msg.ArgsOrReply()
if code == "" {
	return msg.Answer("❌ Пришлите текст или ответьте на сообщение")
}

Все четыре безопасны на nil-получателе.

Ответы

Answer(text string, opts ...MsgOption) error

Редактирует ваше сообщение или отвечает, если команду вызвал кто-то другой. Выбор по умолчанию.

Reply(text string, opts ...MsgOption) error

Всегда отправляет новое сообщение как ответ.

Edit(text string, opts ...MsgOption) error

Всегда редактирует это сообщение.

Delete() error

Удаляет это сообщение.

Опции

ОпцияДействие
WithNoWebpage(bool)Убрать превью ссылки
WithReplyTo(int64)Ответить на сообщение или отправить в тему форума
WithInvertMedia(bool)Превью над текстом
WithWebPageMedia(url string, optional, forceLarge bool)Задать превью
go
msg.Answer("без превью", goroku.WithNoWebpage(true))

Прочие методы

GetReplyMessage() (*Message, error)

Получает сообщение, на которое ответили. Возвращает nil, nil, если его нет.

Context() context.Context

Отменяется при завершении бота. Передавайте в долгие операции.

GetChatID() / GetID() / GetReplyToMsgID() int64

Аксессоры, безопасные на nil.

IsOut() bool

Отправлено ли сообщение этим аккаунтом.

Released under the GNU AGPL v3 License.