fix: remove preWarmAnimeCache poisoning relations
This commit is contained in:
@@ -72,21 +72,6 @@ func (c *Client) setCache(key string, data interface{}, ttl time.Duration) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// preWarmAnimeCache extracts individual anime from list responses and caches them
|
|
||||||
func (c *Client) preWarmAnimeCache(animes []Anime) {
|
|
||||||
for _, a := range animes {
|
|
||||||
cacheKey := fmt.Sprintf("anime:%d", a.MalID)
|
|
||||||
|
|
||||||
// Smart TTL: Finished shows rarely change, cache for 30 days. Airing/Upcoming shows cache for 24 hours.
|
|
||||||
ttl := time.Hour * 24
|
|
||||||
if a.Status == "Finished Airing" {
|
|
||||||
ttl = time.Hour * 24 * 30
|
|
||||||
}
|
|
||||||
|
|
||||||
c.setCache(cacheKey, a, ttl)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// fetchWithRetry provides robust fetching respecting Jikan's strict 3 req/sec rate limit
|
// fetchWithRetry provides robust fetching respecting Jikan's strict 3 req/sec rate limit
|
||||||
func (c *Client) fetchWithRetry(urlStr string, out interface{}) error {
|
func (c *Client) fetchWithRetry(urlStr string, out interface{}) error {
|
||||||
maxRetries := 5
|
maxRetries := 5
|
||||||
|
|||||||
@@ -32,7 +32,6 @@ func (c *Client) Search(query string, page int) (SearchResult, error) {
|
|||||||
HasNextPage: result.Pagination.HasNextPage,
|
HasNextPage: result.Pagination.HasNextPage,
|
||||||
}
|
}
|
||||||
|
|
||||||
c.preWarmAnimeCache(result.Data)
|
|
||||||
c.setCache(cacheKey, res, time.Hour*1)
|
c.setCache(cacheKey, res, time.Hour*1)
|
||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
@@ -59,7 +58,6 @@ func (c *Client) GetTopAnime(page int) (TopAnimeResult, error) {
|
|||||||
HasNextPage: result.Pagination.HasNextPage,
|
HasNextPage: result.Pagination.HasNextPage,
|
||||||
}
|
}
|
||||||
|
|
||||||
c.preWarmAnimeCache(result.Data)
|
|
||||||
c.setCache(cacheKey, res, time.Hour*1)
|
c.setCache(cacheKey, res, time.Hour*1)
|
||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ func (c *Client) GetSchedule(day string) (ScheduleResult, error) {
|
|||||||
HasNextPage: result.Pagination.HasNextPage,
|
HasNextPage: result.Pagination.HasNextPage,
|
||||||
}
|
}
|
||||||
|
|
||||||
c.preWarmAnimeCache(result.Data)
|
|
||||||
c.setCache(cacheKey, res, time.Hour*1)
|
c.setCache(cacheKey, res, time.Hour*1)
|
||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
@@ -77,7 +76,6 @@ func (c *Client) GetSeasonsNow(page int) (TopAnimeResult, error) {
|
|||||||
HasNextPage: result.Pagination.HasNextPage,
|
HasNextPage: result.Pagination.HasNextPage,
|
||||||
}
|
}
|
||||||
|
|
||||||
c.preWarmAnimeCache(result.Data)
|
|
||||||
c.setCache(cacheKey, res, time.Hour*1)
|
c.setCache(cacheKey, res, time.Hour*1)
|
||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
@@ -104,7 +102,6 @@ func (c *Client) GetSeasonsUpcoming(page int) (TopAnimeResult, error) {
|
|||||||
HasNextPage: result.Pagination.HasNextPage,
|
HasNextPage: result.Pagination.HasNextPage,
|
||||||
}
|
}
|
||||||
|
|
||||||
c.preWarmAnimeCache(result.Data)
|
|
||||||
c.setCache(cacheKey, res, time.Hour*1)
|
c.setCache(cacheKey, res, time.Hour*1)
|
||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user