Documentation ¶
Overview ¶
Package discord is a go library to quickly send events to discord channels To get started: Create a Webhook on the server, noting down the webhook URL. Then, in your application set the webhook URL variable and then you can use `Say` for a simple text message, or `Post` for a more complex message.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var WebhookURL string
WebhookURL your discord webhook URL
Functions ¶
func Post ¶
func Post(content PostOptions) error
Post will post a message to the channel for which the webhook is configured. Unlike `discord.Say()`, Post gives you full control over the message.
Example ¶
package main import ( "github.com/ecnepsnai/discord" ) func main() { discord.WebhookURL = "https://discord.com/api/webhooks/.../..." discord.Post(discord.PostOptions{ Content: "Hello, world!", Embeds: []discord.Embed{ { Color: 16777215, Author: &discord.Author{ Name: "ecnepsnai", URL: "https://github.com/ecnepsnai", }, Title: "Amazing!", Description: "This is a cool embed", }, }, }) }
Output:
func Say ¶
Say sends the provided message to the channel for which the webhook is configured. If WebhookURL is not set, this does nothing.
Example ¶
package main import ( "github.com/ecnepsnai/discord" ) func main() { discord.WebhookURL = "https://discord.com/api/webhooks/.../..." discord.Say("Hello, world!") }
Output:
func UploadFile ¶ added in v1.2.0
func UploadFile(content PostOptions, file FileOptions) error
UploadFile will post a message to the channel for which the webhook is configured and attach the specified file to your message. Rich embeds are not supported and will be ignored if any are specified.
Example ¶
package main import ( "io" "github.com/ecnepsnai/discord" ) func main() { discord.WebhookURL = "https://discord.com/api/webhooks/.../..." var f io.Reader // Pretend we've opened a file content := discord.PostOptions{ Content: "Hello, world!", } fileOptions := discord.FileOptions{ FileName: "my_hot_mixtape.mp3", Reader: f, } discord.UploadFile(content, fileOptions) }
Output:
Types ¶
type Author ¶
type Author struct { Name string `json:"name,omitempty"` URL string `json:"url,omitempty"` IconURL string `json:"icon_url,omitempty"` }
Author describes the author for an embed
type Embed ¶
type Embed struct { Author *Author `json:"author,omitempty"` Title string `json:"title,omitempty"` URL string `json:"url,omitempty"` Description string `json:"description,omitempty"` Color uint32 `json:"color,omitempty"` Fields []Field `json:"fields,omitempty"` Thumbnail *Image `json:"thumbnail,omitempty"` Image *Image `json:"image,omitempty"` }
Embed describes embedded content within a message
type Field ¶
type Field struct { Name string `json:"name,omitempty"` Value string `json:"value,omitempty"` Inline bool `json:"inline,omitempty"` }
Field describes a field for an embed
type FileOptions ¶ added in v1.2.0
type FileOptions struct { // The file name must include an extension and not include any directories FileName string Reader io.Reader }
FileOptions describes the options for uploading a file