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.