Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Command = &commands.YAGCommand{ CmdCategory: commands.CategoryFun, Cooldown: 5, Name: "Forex", Aliases: []string{"Money"}, Description: "💱 convert value from one currency to another.", RunInDM: true, DefaultEnabled: true, SlashCommandEnabled: true, RequiredArgs: 3, Arguments: []*dcmd.ArgDef{ {Name: "Amount", Type: dcmd.Float}, {Name: "From", Type: dcmd.String}, {Name: "To", Type: dcmd.String}, }, RunFunc: func(data *dcmd.Data) (interface{}, error) { amount := data.Args[0].Float64() check, err := requestAPI("https://api.exchangerate.host/symbols") if err != nil { return nil, err } from := check.Symbols[strings.ToUpper(data.Args[1].Str())] to := check.Symbols[strings.ToUpper(data.Args[2].Str())] if (to == nil) || (from == nil) { return "Invalid currency code.\nCheck out available codes on: <https://api.exchangerate.host/symbols>", nil } output, err := requestAPI(fmt.Sprintf("https://api.exchangerate.host/convert?from=%s&to=%s&amount=1", from.Code, to.Code)) if err != nil { return nil, err } if output.Info.Rate == 0 { return "Something went wrong :c", err } p := message.NewPrinter(language.English) embed := &discordgo.MessageEmbed{ Title: "💱Currency Exchange Rate", Description: fmt.Sprintf("\n%s **%s** (%s) is %s **%s** (%s).", p.Sprintf("%g", amount), from.Description, output.Query.From, p.Sprintf("%0.2f", amount*output.Result), to.Description, output.Query.To), Color: 0xAE27FF, Footer: &discordgo.MessageEmbedFooter{Text: fmt.Sprintf("Based on currency rate 1 : %f", output.Info.Rate)}, Timestamp: time.Now().UTC().Format(time.RFC3339), } return embed, nil }, }
Functions ¶
This section is empty.
Types ¶
type CurrencySymbolInfo ¶
type ExchangeAPIResult ¶
type ExchangeAPIResult struct {
Motd *struct {
Msg string `json:"msg"`
URL string `json:"url"`
} `json:"motd"`
Success bool `json:"success"`
Query *struct {
From string `json:"from"`
To string `json:"to"`
Amount float64 `json:"amount"`
} `json:"query,omitempty"`
Info *struct {
Rate float64 `json:"rate"`
} `json:"info,omitempty"`
Historical bool `json:"historical,omitempty"`
Date string `json:"date,omitempty"`
Result float64 `json:"result,omitempty"`
Symbols map[string]*CurrencySymbolInfo `json:"symbols,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.