package main import ( "fmt" "strings" "time" "github.com/bwmarrin/discordgo" "github.com/gookit/color" ) func SendAppointBroadcast(creator string, app *Appointment) { if app != nil && discc != nil { watchData, err := GetAnimeWatchFromDb(app.Anime) if err != nil { color.Errorln(err.Error()) return } anime, err := SearchAnime(app.Anime) if err != nil { color.Errorln(err.Error()) return } var msgStart strings.Builder for _, u := range watchData.Users { uData, err := ReadUser(u.Username) if err != nil || uData.DiscordID == 0 { continue } msgStart.WriteString(fmt.Sprintf("<@%d>", uData.DiscordID)) } msgs := fmt.Sprintf("🗓️ New appointment for [%s](%s%d) at\n\n", anime.Title, *husoWebAnimeUri, app.Anime, app.Time.Unix(), app.Time.Unix()) msge := discordgo.MessageEmbed{ Description: msgs, URL: fmt.Sprintf("%s%d", *husoWebAnimeUri, app.Anime), Thumbnail: &discordgo.MessageEmbedThumbnail{URL: anime.ImageLargeURL}, Color: 7187428, Footer: &discordgo.MessageEmbedFooter{ Text: "huso " + husoVersion, }, } user, _, err := GetUser(creator) if err == nil { msge.Author = &discordgo.MessageEmbedAuthor{ Name: user.Username, IconURL: user.ImageURL, URL: fmt.Sprintf("%s%s", *husoWebUserUri, creator), } } msgc := discordgo.MessageSend{ Content: msgStart.String(), Embeds: []*discordgo.MessageEmbed{&msge}, } _, err = discc.ChannelMessageSendComplex(*discordChannel, &msgc) if err != nil { color.Errorln(err.Error()) } } } func AnnounceBomb(animeId, meetingUnix int64, timer time.Duration) { time.Sleep(timer) AnnounceAppointmentSoon(animeId, meetingUnix) } func AnnounceAppointmentSoon(animeId, meetingUnix int64) { if animeId != 0 && discc != nil { watchData, err := GetAnimeWatchFromDb(animeId) if err != nil { color.Errorln(err.Error()) return } anime, err := SearchAnime(animeId) if err != nil { color.Errorln(err.Error()) return } var msgStart strings.Builder for _, u := range watchData.Users { uData, err := ReadUser(u.Username) if err != nil || uData.DiscordID == 0 { continue } msgStart.WriteString(fmt.Sprintf("<@%d>", uData.DiscordID)) } msgs := fmt.Sprintf("⏰ Appointment starting !\n[%s](%s%d) at\n", meetingUnix, anime.Title, *husoWebAnimeUri, animeId, meetingUnix) msge := discordgo.MessageEmbed{ Description: msgs, URL: fmt.Sprintf("%s%d", *husoWebAnimeUri, animeId), Thumbnail: &discordgo.MessageEmbedThumbnail{URL: anime.ImageLargeURL}, Color: 7187428, Footer: &discordgo.MessageEmbedFooter{ Text: "huso " + husoVersion, }, } msgc := discordgo.MessageSend{ Content: msgStart.String(), Embeds: []*discordgo.MessageEmbed{&msge}, } _, err = discc.ChannelMessageSendComplex(*discordChannel, &msgc) if err != nil { color.Errorln(err.Error()) } } }