Skip to content

Message ​

すべてのハンドラは *goroku.Message を受け取ります。

フィールド ​

フィールド型意味
IDint64メッセージ ID
ChatIDint64送信されたチャット
SenderIDint64送信者のユーザー ID。送信者がユーザーでない場合は 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 番目の引数。範囲外なら ""。panic しません。

ArgsOrReply() string ​

Args()。空なら返信先メッセージのテキスト。どちらも無ければ ""。

go
code := msg.ArgsOrReply()
if code == "" {
	return msg.Answer("❌ テキストを送るか、メッセージに返信してください")
}

4つとも 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.