diff options
| author | Priyansh <[email protected]> | 2025-08-19 13:19:30 +0530 |
|---|---|---|
| committer | Priyansh <[email protected]> | 2025-08-19 13:19:30 +0530 |
| commit | 9fbf28c2f77ec74c75a5274cbda897217ceaf571 (patch) | |
| tree | 87dab6adda634a08b3b1cf74c0dd1e616113aa30 /database | |
| parent | 6a65e3927506b0e46f18c9c1b41e952418bfd78e (diff) | |
| download | metachan-9fbf28c2f77ec74c75a5274cbda897217ceaf571.tar.xz metachan-9fbf28c2f77ec74c75a5274cbda897217ceaf571.zip | |
episodes router; anilist support; general fixes
Diffstat (limited to 'database')
| -rw-r--r-- | database/anime.go | 9 | ||||
| -rw-r--r-- | database/anime_cache.go | 17 |
2 files changed, 21 insertions, 5 deletions
diff --git a/database/anime.go b/database/anime.go index 44382bf..9d2f9e5 100644 --- a/database/anime.go +++ b/database/anime.go @@ -10,6 +10,15 @@ func GetAnimeMappingViaMALID(malID int) (*entities.AnimeMapping, error) { return &mapping, nil } +// GetAnimeMappingViaAnilistID retrieves an anime mapping by AniList ID +func GetAnimeMappingViaAnilistID(anilistID int) (*entities.AnimeMapping, error) { + var mapping entities.AnimeMapping + if err := DB.Where("anilist = ?", anilistID).First(&mapping).Error; err != nil { + return nil, err + } + return &mapping, nil +} + // GetAnimeMappingsByTVDBID retrieves all anime mappings that share the same TVDB ID func GetAnimeMappingsByTVDBID(tvdbID int) ([]entities.AnimeMapping, error) { var mappings []entities.AnimeMapping diff --git a/database/anime_cache.go b/database/anime_cache.go index b2d8d81..f26dc8b 100644 --- a/database/anime_cache.go +++ b/database/anime_cache.go @@ -465,7 +465,6 @@ func ConvertToTypesAnime(cachedAnime *entities.CachedAnime) *types.Anime { if len(cachedAnime.Episodes) > 0 { anime.Episodes.Episodes = make([]types.AnimeSingleEpisode, len(cachedAnime.Episodes)) - var subCount, dubCount int for i, episode := range cachedAnime.Episodes { episodeData := types.AnimeSingleEpisode{ Description: episode.Description, @@ -489,10 +488,10 @@ func ConvertToTypesAnime(cachedAnime *entities.CachedAnime) *types.Anime { anime.Episodes.Episodes[i] = episodeData } - anime.Episodes.Total = len(cachedAnime.Episodes) - anime.Episodes.Aired = len(cachedAnime.Episodes) - anime.Episodes.Subbed = subCount - anime.Episodes.Dubbed = dubCount + anime.Episodes.Total = cachedAnime.TotalEpisodes + anime.Episodes.Aired = cachedAnime.AiredEpisodes + anime.Episodes.Subbed = cachedAnime.SubbedCount + anime.Episodes.Dubbed = cachedAnime.DubbedCount } // Convert characters @@ -620,6 +619,10 @@ func convertToCachedAnime(animeData *types.Anime) *entities.CachedAnime { Color: animeData.Color, Season: animeData.Season, Year: animeData.Year, + SubbedCount: animeData.Episodes.Subbed, + DubbedCount: animeData.Episodes.Dubbed, + TotalEpisodes: animeData.Episodes.Total, + AiredEpisodes: animeData.Episodes.Aired, LastUpdated: time.Now(), } @@ -960,6 +963,10 @@ func saveCachedAnimeWithBatching(tx *gorm.DB, cachedAnime *entities.CachedAnime) Color: cachedAnime.Color, Season: cachedAnime.Season, Year: cachedAnime.Year, + SubbedCount: cachedAnime.SubbedCount, + DubbedCount: cachedAnime.DubbedCount, + TotalEpisodes: cachedAnime.TotalEpisodes, + AiredEpisodes: cachedAnime.AiredEpisodes, LastUpdated: cachedAnime.LastUpdated, // Include small collections that won't cause variable limit issues |
