98 lines
2.4 KiB
Go
98 lines
2.4 KiB
Go
package revoltgo
|
|
|
|
// Message struct
|
|
type Message struct {
|
|
Client *Client
|
|
|
|
Id string `json:"_id"`
|
|
Nonce string `json:"nonce"`
|
|
ChannelId string `json:"channel"`
|
|
AuthorId string `json:"author"`
|
|
Content interface{} `json:"content"`
|
|
Edited interface{} `json:"edited"`
|
|
Embeds []*MessageEmbed `json:"embeds"`
|
|
Attachments []*Attachment `json:"attachments"`
|
|
Mentions []string `json:"mentions"`
|
|
Replies []string `json:"replies"`
|
|
}
|
|
|
|
// Attachment struct.
|
|
type Attachment struct {
|
|
Id string `json:"_id"`
|
|
Tag string `json:"tag"`
|
|
Size int `json:"size"`
|
|
FileName string `json:"filename"`
|
|
Metadata *AttachmentMetadata
|
|
ContentType string `json:"content_type"`
|
|
}
|
|
|
|
// Attachment metadata struct.
|
|
type AttachmentMetadata struct {
|
|
Type string `json:"type"`
|
|
Width int `json:"width"`
|
|
Height int `json:"height"`
|
|
}
|
|
|
|
// Message edited struct.
|
|
type MessageEdited struct {
|
|
Date int `json:"$date"`
|
|
}
|
|
|
|
// Message embed struct.
|
|
type MessageEmbed struct {
|
|
Type string `json:"type"`
|
|
Url string `json:"url"`
|
|
Special *MessageSpecialEmbed
|
|
Title string `json:"title"`
|
|
Description string `json:"description"`
|
|
Image *MessageEmbeddedImage `json:"image"`
|
|
Video *MessageEmbeddedVideo `json:"video"`
|
|
IconUrl string `json:"icon_url"`
|
|
Color string `json:"color"`
|
|
}
|
|
|
|
// Message special embed struct.
|
|
type MessageSpecialEmbed struct {
|
|
Type string `json:"type"`
|
|
Id string `json:"id"`
|
|
ContentType string `json:"content_type"`
|
|
}
|
|
|
|
// Message embedded image struct
|
|
type MessageEmbeddedImage struct {
|
|
Size string `json:"size"`
|
|
Url string `json:"url"`
|
|
Width int `json:"width"`
|
|
Height int `json:"height"`
|
|
}
|
|
|
|
// Message embedded video struct
|
|
type MessageEmbeddedVideo struct {
|
|
Url string `json:"url"`
|
|
Width int `json:"width"`
|
|
Height int `json:"height"`
|
|
}
|
|
|
|
// Edit message content.
|
|
func (m *Message) Edit(content string) error {
|
|
_, err := m.Client.Request("PATCH", "/channels/"+m.ChannelId+"/messages/"+m.Id, []byte("{\"content\": \""+content+"\"}"))
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
m.Content = content
|
|
return nil
|
|
}
|
|
|
|
// Delete the message.
|
|
func (m Message) Delete() error {
|
|
_, err := m.Client.Request("DELETE", "/channels/"+m.ChannelId+"/messages/"+m.Id, []byte{})
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|