remove double entries in telegram report message

This commit is contained in:
milarin 2023-01-30 21:35:49 +01:00
parent b7bbd0ed40
commit e4db93e911
2 changed files with 17 additions and 0 deletions

View File

@ -102,6 +102,8 @@ func sendTelegramAnimeEpMessage(animeEpisodes []model.AnimeEpisode) {
return
}
animeEpisodes = RemoveDoubleEntries(animeEpisodes)
b := new(strings.Builder)
if err := TelegramOrganizeMessagePattern.Execute(b, animeEpisodes); err != nil {
adverr.Println(adverr.Wrap("could not send telegram message", err))

View File

@ -6,8 +6,11 @@ import (
"os"
"time"
"git.milar.in/milarin/anilist"
"git.milar.in/milarin/channel"
"git.milar.in/milarin/gmath"
"git.milar.in/milarin/slices"
"git.milar.in/nyaanime/model"
)
func InitializeRunner() channel.Runner {
@ -63,3 +66,15 @@ func WaitForNextTelegramSendCycle() {
time.Sleep(time.Until(nextCycle))
}
}
func RemoveDoubleEntries(animeEpisodes []model.AnimeEpisode) []model.AnimeEpisode {
mapperFunc := func(animeEp model.AnimeEpisode) (anilist.MediaID, model.AnimeEpisode) {
return animeEp.Anime.ID, animeEp
}
unmapperFunc := func(id anilist.MediaID, animeEp model.AnimeEpisode) model.AnimeEpisode {
return animeEp
}
return slices.OfMap(slices.ToMap(animeEpisodes, mapperFunc), unmapperFunc)
}