use AniList's MAL ID mapping instead of Kometa

pull/5/head
Gabe Farrell 8 months ago
parent cdd7b67003
commit e96577b5bc

@ -64,6 +64,7 @@ query (
isAdult: $isAdult
) {
id
idMal
title {
romaji
english
@ -78,6 +79,7 @@ type AnilistPageInfo struct {
}
type AnilistMediaItem struct {
Id int `json:"id"`
IdMal int `json:"idMal"`
Title AnilistTitle `json:"title"`
}
type AnilistTitle struct {
@ -138,7 +140,7 @@ func getAnilistAnimeSearch(idMap *ConcurrentMap, permaSkipAnilistIds []string, r
// map the data
for _, item := range result.Data.Page.Media {
if idMap.GetByAnilistId(item.Id) == 0 {
if idMap.GetByMalId(item.IdMal) == 0 {
log.Printf("Anilist ID %d (%s) has no associated TVDB ID, skipping...\n", item.Id, FullAnimeTitle(item.Title.Romaji, item.Title.English))
continue
}
@ -158,9 +160,9 @@ func getAnilistAnimeSearch(idMap *ConcurrentMap, permaSkipAnilistIds []string, r
ResponseItem{
item.Title.Romaji,
item.Title.English,
0,
item.IdMal,
item.Id,
idMap.GetByAnilistId(item.Id),
idMap.GetByMalId(item.IdMal),
})
usedIds[item.Id] = true
}

@ -26,9 +26,8 @@ type AnimeEntry struct {
AnilistId int `json:"anilist_id"`
}
type ConcurrentMap struct {
mal map[int]int
anilist map[int]int
mut sync.RWMutex
mal map[int]int
mut sync.RWMutex
}
func (m *ConcurrentMap) GetByMalId(i int) int {
@ -36,11 +35,6 @@ func (m *ConcurrentMap) GetByMalId(i int) int {
defer m.mut.RUnlock()
return m.mal[i]
}
func (m *ConcurrentMap) GetByAnilistId(i int) int {
m.mut.RLock()
defer m.mut.RUnlock()
return m.anilist[i]
}
var lastBuiltAnimeIdList time.Time
@ -87,7 +81,6 @@ func buildIdMap(idMap *ConcurrentMap) {
log.Fatal("Error unmarshalling anime_ids.json: ", err)
}
idMap.mal = make(map[int]int, 0)
idMap.anilist = make(map[int]int, 0)
for _, entry := range animeMap {
if entry.MalId == nil {
continue
@ -112,7 +105,6 @@ func buildIdMap(idMap *ConcurrentMap) {
if entry.AnilistId == 0 {
continue
}
idMap.anilist[entry.AnilistId] = entry.TvdbId
}
lastBuiltAnimeIdList = time.Now()
}

Loading…
Cancel
Save