package discord import ( "context" "errors" "fmt" "strconv" "strings" "gitea.com/jolheiser/xkcd" ) func init() { commands = append(commands, &command{ name: "xkcd", validate: func(cmd commandInit) bool { return true }, run: func(cmd commandInit) (string, error) { if !memeRateLimit.Try() { return "", nil } client := xkcd.New() var comic *xkcd.Comic var err error args := strings.Fields(cmd.message.Content) if len(args) < 2 { comic, err = client.Current(context.Background()) } else { comicNum, err := strconv.Atoi(args[1]) if err != nil { return "", errors.New("this command only accepts a number or no arguments") } comic, err = client.Comic(context.Background(), comicNum) } if err != nil { return "", err } return fmt.Sprintf("%d: %s\n%s\n%s", comic.Num, comic.SafeTitle, comic.Alt, comic.Img), nil }, help: "Get an xkcd comic", }) }