Files
huso/labersack.go
2022-07-28 00:43:35 +02:00

109 lines
2.8 KiB
Go

package main
import (
"fmt"
"strings"
"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<t:%d:F>\n<t:%d:R>", 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 AnnounceAppointmentSoon(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("⏰ Appointment starting <t:%d:R>!\n[%s](%s%d) at\n<t:%d:F>", app.Time.Unix(), anime.Title, *husoWebAnimeUri, app.Anime, 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,
},
}
msgc := discordgo.MessageSend{
Content: msgStart.String(),
Embeds: []*discordgo.MessageEmbed{&msge},
}
_, err = discc.ChannelMessageSendComplex(*discordChannel, &msgc)
if err != nil {
color.Errorln(err.Error())
}
}
}