package tg // BrokerUpdateType distinguishes update types coming from the broker type BrokerUpdateType string const ( // BMessage is a message update (mostly webhook updates) BMessage BrokerUpdateType = "message" // BFile is a file retrieval response update BFile BrokerUpdateType = "file" // BError is an error the broker occurred while fulfilling a request BError BrokerUpdateType = "error" ) // BrokerUpdate is what is sent by the broker as update type BrokerUpdate struct { Type BrokerUpdateType Callback *int `json:",omitempty"` Error *string `json:",omitempty"` Data *APIUpdate `json:",omitempty"` Bytes *string `json:",omitempty"` } // ClientCommandType distinguishes requests sent by clients to the broker type ClientCommandType string const ( // CmdSendTextMessage requests the broker to send a text message to a chat CmdSendTextMessage ClientCommandType = "sendText" // CmdSendPhoto requests the broker to send a photo to a chat CmdSendPhoto ClientCommandType = "sendPhoto" // CmdForwardMessage requests the broker to forward a message between chats CmdForwardMessage ClientCommandType = "forwardMessage" // CmdGetFile requests the broker to get a file from Telegram CmdGetFile ClientCommandType = "getFile" // CmdSendChatAction requests the broker to set a chat action (typing, etc.) CmdSendChatAction ClientCommandType = "sendChatAction" // CmdAnswerInlineQuery requests the broker sends results of an inline query CmdAnswerInlineQuery ClientCommandType = "answerInlineQuery" // CmdSendAlbum requests the broker sends an album of photos or videos CmdSendAlbum ClientCommandType = "sendAlbum" // CmdAnswerCallback requests the broker to reply to a incoming callback query CmdAnswerCallback ClientCommandType = "answerCallback" // CmdEditCaption requests to broker to replace the caption of a media (photo, doc, etc) message CmdEditCaption ClientCommandType = "editCaption" // CmdEditMedia requests to broker to replace the media contents of a message CmdEditMedia ClientCommandType = "editMedia" ) // ClientTextMessageData is the required data for a CmdSendTextMessage request type ClientTextMessageData struct { ChatID int64 Text string ReplyID *int64 `json:",omitempty"` ReplyMarkup interface{} `json:",omitempty"` } // ClientPhotoData is the required data for a CmdSendPhoto request type ClientPhotoData struct { ChatID int64 Bytes []byte Filename string Caption string `json:",omitempty"` ReplyID *int64 `json:",omitempty"` } // ClientPhotoDataNet is the required data for a CmdSendPhoto request over the wire type ClientPhotoDataNet struct { ChatID int64 Bytes string Filename string Caption string `json:",omitempty"` ReplyID *int64 `json:",omitempty"` } // ClientForwardMessageData is the required data for a CmdForwardMessage request type ClientForwardMessageData struct { ChatID int64 FromChatID int64 MessageID int64 } // ClientChatActionData is the required data for a CmdSendChatAction request type ClientChatActionData struct { ChatID int64 Action ChatAction } // ClientCallbackQueryData is the required data for a CmdAnswerCallback request type ClientCallbackQueryData struct { QueryID string Text string ShowAlert bool URL string CacheTime int64 } // ClientAlbumData is the required data for a CmdSendAlbum request type ClientAlbumData struct { ChatID int64 Media interface{} Silent bool ReplyID *int64 `json:",omitempty"` } // ClientEditTextData is the required data for a CmdEditText request type ClientEditTextData struct { ChatID int64 MessageID int64 InlineID string Text string ReplyMarkup interface{} `json:",omitempty"` } // ClientEditCaptionData is the required data for a CmdEditCaption request type ClientEditCaptionData struct { ChatID int64 MessageID int64 InlineID string Caption string ReplyMarkup interface{} `json:",omitempty"` } // ClientEditMediaData is the required data for a CmdEditMedia request type ClientEditMediaData struct { ChatID int64 MessageID int64 InlineID string Media interface{} ReplyMarkup interface{} `json:",omitempty"` } // ChatAction is the action name for CmdSendChatAction requests type ChatAction string // Telegram chat actions const ( ActionTyping ChatAction = "typing" ActionUploadingPhoto ChatAction = "upload_photo" ActionRecordingVideo ChatAction = "record_video" ActionUploadingVideo ChatAction = "upload_video" ActionRecordingAudio ChatAction = "record_audio" ActionUploadingAudio ChatAction = "upload_audio" ActionUploadingDocument ChatAction = "upload_document" ActionFindingLocation ChatAction = "find_location" ) // FileRequestData is the required data for a CmdGetFile request type FileRequestData struct { FileID string } // ClientCommand is a request sent by clients to the broker type ClientCommand struct { Type ClientCommandType TextMessageData *ClientTextMessageData `json:",omitempty"` PhotoData *ClientPhotoDataNet `json:",omitempty"` ForwardMessageData *ClientForwardMessageData `json:",omitempty"` ChatActionData *ClientChatActionData `json:",omitempty"` InlineQueryResults *InlineQueryResponse `json:",omitempty"` FileRequestData *FileRequestData `json:",omitempty"` Callback *int `json:",omitempty"` } // InlineQueryResponse is the response to an inline query type InlineQueryResponse struct { QueryID string Results interface{} CacheTime *int `json:",omitempty"` IsPersonal bool `json:",omitempty"` NextOffset string `json:",omitempty"` PMText string `json:",omitempty"` PMParam string `json:",omitempty"` }