diff --git a/integrations/jikan/episodes.go b/integrations/jikan/episodes.go index 895881c..dbc1d73 100644 --- a/integrations/jikan/episodes.go +++ b/integrations/jikan/episodes.go @@ -211,54 +211,3 @@ func (c *Client) GetAllEpisodes(ctx context.Context, animeID int) ([]Episode, er return allEpisodes, nil } - - - totalEpisodes := anime.Episodes - if totalEpisodes <= 0 { - // Fallback to simple page 1 fetch if count is unknown - resp, err := c.GetEpisodes(ctx, animeID, 1) - if err != nil { - return nil, err - } - return resp.Data, nil - } - - // Jikan /episodes returns 100 per page - lastPage := (totalEpisodes + 99) / 100 - var allEpisodes []Episode - - // Fetch last page first (to get most recent episodes immediately) - lastResp, err := c.GetEpisodes(ctx, animeID, lastPage) - if err == nil { - allEpisodes = append(allEpisodes, lastResp.Data...) - } - - // Fetch first page - if lastPage > 1 { - firstResp, err := c.GetEpisodes(ctx, animeID, 1) - if err == nil { - allEpisodes = append(allEpisodes, firstResp.Data...) - } - } - - // Background fetching for intermediate pages (Working BACKWARDS) - if lastPage > 2 { - go func() { - bgCtx, cancel := context.WithTimeout(context.Background(), 5*time.Minute) - defer cancel() - - // Count backwards from the second-to-last page to page 2 - for p := lastPage - 1; p >= 2; p-- { - _, _ = c.GetEpisodes(bgCtx, animeID, p) - - select { - case <-bgCtx.Done(): - return - case <-time.After(600 * time.Millisecond): // Slightly slower to be safe - } - } - }() - } - - return allEpisodes, nil -}