Compare commits

...

3 Commits

Author SHA1 Message Date
daru
ecba4d68e6 Do recycle the future 2022-07-18 01:12:04 +02:00
daru
1a075e79ff nil pointer fun 2022-07-18 00:57:48 +02:00
daru
12c69818ce Implement Spam 2022-07-18 00:47:26 +02:00
4 changed files with 56 additions and 7 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,58 @@ 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) msge := 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 {
msge.Author = &discordgo.MessageEmbedAuthor{
Name: user.Username,
IconURL: user.ImageURL,
URL: fmt.Sprintf("https://anime.hanami.family/user/%s", creator),
}
}
msgc := discordgo.MessageSend{
Content: msgStart.String(),
Embeds: []*discordgo.MessageEmbed{&msge},
}
_, err = discc.ChannelMessageSendComplex("998277590609559632", &msgc)
if err != nil { if err != nil {
color.Errorln(err.Error()) color.Errorln(err.Error())
} }

View File

@@ -28,7 +28,7 @@ func Arbeit() {
} else { } else {
cleared := 0 cleared := 0
for _, a := range appoints { for _, a := range appoints {
if a.Time.Before(time.Now().Add(time.Hour * 22)) { if a.Time.Add(time.Hour * 22).Before(time.Now()) {
// appointment expired // appointment expired
keyBytes := Int64AndDateToBytes(a.Anime, a.Time) keyBytes := Int64AndDateToBytes(a.Anime, a.Time)
err = DbDelete(bucketAppoint, string(keyBytes)) err = DbDelete(bucketAppoint, string(keyBytes))

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 {