Implement Spam

This commit is contained in:
daru
2022-07-18 00:47:26 +02:00
parent 3efd003424
commit 12c69818ce
3 changed files with 54 additions and 6 deletions

View File

@@ -20,7 +20,7 @@ import (
)
const (
husoVersion = "1.3"
husoVersion = "1.4"
registerSecret = "綾波レイ"
seasonStrJikan = "seasons/"
userApiJikan = "users/"

View File

@@ -4,22 +4,57 @@ 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 app.Users {
uData, err := ReadUser(u)
for _, u := range watchData.Users {
uData, err := ReadUser(u.Username)
if err != nil || uData.DiscordID == 0 {
continue
}
msgStart.WriteString(fmt.Sprintf("<@%d> ", uData.DiscordID))
msgStart.WriteString(fmt.Sprintf("<@%d>", uData.DiscordID))
}
msg := fmt.Sprintf("📺 %s%s created appointment for %d at <t:%d:F>", msgStart.String(), creator, app.Anime, app.Time.Unix())
_, err := discc.ChannelMessageSend("998277590609559632", msg)
msgs := fmt.Sprintf("🗓️ New appointment for [%s](https://anime.hanami.family/anime/%d) at <t:%d:F> <t:%d:R>", anime.Title, app.Anime, app.Time.Unix(), app.Time.Unix())
msgc := discordgo.MessageSend{
Content: msgStart.String(),
Embeds: []*discordgo.MessageEmbed{{
Description: msgs,
URL: fmt.Sprintf("https://anime.hanami.family/anime/%d", app.Anime),
Thumbnail: &discordgo.MessageEmbedThumbnail{URL: anime.ImageLargeURL},
Color: 7187428,
Footer: &discordgo.MessageEmbedFooter{
Text: "huso " + husoVersion,
},
}},
}
user, _, err := GetUserData(creator)
if err == nil {
msgc.Embed.Author = &discordgo.MessageEmbedAuthor{
Name: user.Username,
IconURL: user.ImageURL,
URL: fmt.Sprintf("https://anime.hanami.family/user/%s", creator),
}
}
_, err = discc.ChannelMessageSendComplex("998277590609559632", &msgc)
if err != nil {
color.Errorln(err.Error())
}

View File

@@ -253,6 +253,19 @@ func AddToChat(old, new, user string) string {
return buf.String()
}
func GetAnimeWatchFromDb(animeId int64) (*AnimeUser, error) {
dbAnime, err := ReadAnimeUsers()
if err != nil {
return nil, err
}
for _, a := range dbAnime {
if a.Anime == animeId {
return &a, err
}
}
return nil, errors.New("anime not found")
}
func CheckAnimeExistInDb(animeId int64) (bool, error) {
dbAnime, err := ReadAnimeUsers()
if err != nil {