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.