Files
seanime-docker/seanime-2.9.10/internal/api/anilist/stats.go
2025-09-20 14:08:38 +01:00

73 lines
2.6 KiB
Go

package anilist
import (
"context"
"seanime/internal/util"
)
type (
Stats struct {
AnimeStats *AnimeStats `json:"animeStats"`
MangaStats *MangaStats `json:"mangaStats"`
}
AnimeStats struct {
Count int `json:"count"`
MinutesWatched int `json:"minutesWatched"`
EpisodesWatched int `json:"episodesWatched"`
MeanScore float64 `json:"meanScore"`
Genres []*UserGenreStats `json:"genres"`
Formats []*UserFormatStats `json:"formats"`
Statuses []*UserStatusStats `json:"statuses"`
Studios []*UserStudioStats `json:"studios"`
Scores []*UserScoreStats `json:"scores"`
StartYears []*UserStartYearStats `json:"startYears"`
ReleaseYears []*UserReleaseYearStats `json:"releaseYears"`
}
MangaStats struct {
Count int `json:"count"`
ChaptersRead int `json:"chaptersRead"`
MeanScore float64 `json:"meanScore"`
Genres []*UserGenreStats `json:"genres"`
Statuses []*UserStatusStats `json:"statuses"`
Scores []*UserScoreStats `json:"scores"`
StartYears []*UserStartYearStats `json:"startYears"`
ReleaseYears []*UserReleaseYearStats `json:"releaseYears"`
}
)
func GetStats(ctx context.Context, stats *ViewerStats) (ret *Stats, err error) {
defer util.HandlePanicInModuleWithError("api/anilist/GetStats", &err)
allStats := stats.GetViewer().GetStatistics()
ret = &Stats{
AnimeStats: &AnimeStats{
Count: allStats.GetAnime().GetCount(),
MinutesWatched: allStats.GetAnime().GetMinutesWatched(),
EpisodesWatched: allStats.GetAnime().GetEpisodesWatched(),
MeanScore: allStats.GetAnime().GetMeanScore(),
Genres: allStats.GetAnime().GetGenres(),
Formats: allStats.GetAnime().GetFormats(),
Statuses: allStats.GetAnime().GetStatuses(),
Studios: allStats.GetAnime().GetStudios(),
Scores: allStats.GetAnime().GetScores(),
StartYears: allStats.GetAnime().GetStartYears(),
ReleaseYears: allStats.GetAnime().GetReleaseYears(),
},
MangaStats: &MangaStats{
Count: allStats.GetManga().GetCount(),
ChaptersRead: allStats.GetManga().GetChaptersRead(),
MeanScore: allStats.GetManga().GetMeanScore(),
Genres: allStats.GetManga().GetGenres(),
Statuses: allStats.GetManga().GetStatuses(),
Scores: allStats.GetManga().GetScores(),
StartYears: allStats.GetManga().GetStartYears(),
ReleaseYears: allStats.GetManga().GetReleaseYears(),
},
}
return ret, nil
}