Skip to content

Message

Jeder Handler bekommt eine *goroku.Message.

Felder

FeldTypBedeutung
IDint64Nachrichten-ID
ChatIDint64Chat, in dem sie gesendet wurde
SenderIDint64Nutzer-ID des Absenders. 0, wenn der Absender kein Nutzer ist — anonyme Admins und Beiträge im Namen des Kanals
SenderChannelIDint64Kanal, in dessen Namen gesendet wurde, 0 bei einem Nutzer
SenderIsChannelboolAbsender ist ein Kanal, kein Nutzer
TextstringText mit angewandter Formatierung
RawTextstringText genau wie getippt
Entities[]tg.MessageEntityClassFormatierungs-Entities
OutboolVon diesem Konto gesendet
Mediatg.MessageMediaClassAnhang, nil wenn keiner
IsPrivateboolPrivater Chat
IsGroupboolGruppenchat
IsChannelboolKanal
ReplyToMsgIDint64Beantwortete Nachricht, 0 wenn keine
IsForwardedboolVon woanders weitergeleitet
FwdFromtg.MessageFwdHeaderWeiterleitungs-Header
ViaBotIDint64Genutzter Inline-Bot, 0 wenn keiner
AnsweredboolOb der Handler bereits geantwortet hat
Client*CustomTelegramClientClient, der sie empfangen hat

Argumente

Args() string

Alles nach dem Befehlswort, außen getrimmt. Innere Abstände bleiben erhalten.

go
// .say hallo  zusammen
msg.Args() // "hallo  zusammen"

ArgsList() []string

Args nach Leerzeichen zerlegt. nil, wenn leer.

Arg(i int) string

Das i-te Argument oder "" außerhalb des Bereichs. Panikt nie.

ArgsOrReply() string

Args(), ersatzweise der Text der beantworteten Nachricht. "", wenn es weder das eine noch das andere gibt.

go
code := msg.ArgsOrReply()
if code == "" {
	return msg.Answer("❌ Sende Text oder antworte auf eine Nachricht")
}

Alle vier sind bei nil-Receiver sicher.

Antworten

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

Bearbeitet deine eigene Nachricht oder antwortet, wenn jemand anderes den Befehl ausgelöst hat. Die Standardwahl.

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

Sendet immer eine neue Nachricht als Antwort.

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

Bearbeitet immer diese Nachricht.

Delete() error

Löscht diese Nachricht.

Optionen

OptionWirkung
WithNoWebpage(bool)Linkvorschau unterdrücken
WithReplyTo(int64)Auf eine Nachricht antworten oder in ein Forum-Thema posten
WithInvertMedia(bool)Vorschau über dem Text
WithWebPageMedia(url string, optional, forceLarge bool)Vorschau erzwingen
go
msg.Answer("keine Vorschau", goroku.WithNoWebpage(true))

Weitere Methoden

GetReplyMessage() (*Message, error)

Holt die beantwortete Nachricht. Gibt nil, nil zurück, wenn es keine gibt.

Context() context.Context

Wird beim Herunterfahren abgebrochen. Gib ihn an langsame Arbeit weiter.

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

Nil-sichere Zugriffsmethoden.

IsOut() bool

Ob dieses Konto die Nachricht gesendet hat.

Released under the GNU AGPL v3 License.