Message
Jeder Handler bekommt eine *goroku.Message.
Felder
| Feld | Typ | Bedeutung |
|---|---|---|
ID | int64 | Nachrichten-ID |
ChatID | int64 | Chat, in dem sie gesendet wurde |
SenderID | int64 | Nutzer-ID des Absenders. 0, wenn der Absender kein Nutzer ist — anonyme Admins und Beiträge im Namen des Kanals |
SenderChannelID | int64 | Kanal, in dessen Namen gesendet wurde, 0 bei einem Nutzer |
SenderIsChannel | bool | Absender ist ein Kanal, kein Nutzer |
Text | string | Text mit angewandter Formatierung |
RawText | string | Text genau wie getippt |
Entities | []tg.MessageEntityClass | Formatierungs-Entities |
Out | bool | Von diesem Konto gesendet |
Media | tg.MessageMediaClass | Anhang, nil wenn keiner |
IsPrivate | bool | Privater Chat |
IsGroup | bool | Gruppenchat |
IsChannel | bool | Kanal |
ReplyToMsgID | int64 | Beantwortete Nachricht, 0 wenn keine |
IsForwarded | bool | Von woanders weitergeleitet |
FwdFrom | tg.MessageFwdHeader | Weiterleitungs-Header |
ViaBotID | int64 | Genutzter Inline-Bot, 0 wenn keiner |
Answered | bool | Ob der Handler bereits geantwortet hat |
Client | *CustomTelegramClient | Client, der sie empfangen hat |
Argumente
Args() string
Alles nach dem Befehlswort, außen getrimmt. Innere Abstände bleiben erhalten.
// .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.
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
| Option | Wirkung |
|---|---|
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 |
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.