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.