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 ( const (
husoVersion = "1.3" husoVersion = "1.4"
registerSecret = "綾波レイ" registerSecret = "綾波レイ"
seasonStrJikan = "seasons/" seasonStrJikan = "seasons/"
userApiJikan = "users/" userApiJikan = "users/"

View File

@@ -4,22 +4,57 @@ import (
"fmt" "fmt"
"strings" "strings"
"github.com/bwmarrin/discordgo"
"github.com/gookit/color" "github.com/gookit/color"
) )
func SendAppointBroadcast(creator string, app *Appointment) { func SendAppointBroadcast(creator string, app *Appointment) {
if app != nil && discc != nil { 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 var msgStart strings.Builder
for _, u := range app.Users { for _, u := range watchData.Users {
uData, err := ReadUser(u) uData, err := ReadUser(u.Username)
if err != nil || uData.DiscordID == 0 { if err != nil || uData.DiscordID == 0 {
continue 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()) 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())
_, err := discc.ChannelMessageSend("998277590609559632", msg) 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 { if err != nil {
color.Errorln(err.Error()) color.Errorln(err.Error())
} }

View File

@@ -253,6 +253,19 @@ func AddToChat(old, new, user string) string {
return buf.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) { func CheckAnimeExistInDb(animeId int64) (bool, error) {
dbAnime, err := ReadAnimeUsers() dbAnime, err := ReadAnimeUsers()
if err != nil { if err != nil {