Files
huso/labersack.go
daru db4ca8e4cf 💣💣💣
2022-07-29 18:57:43 +02:00

115 lines
2.9 KiB
Go

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<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 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 <t:%d:R>!\n[%s](%s%d) at\n<t:%d:F>", 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())
}
}
}