]> git.lizzy.rs Git - go-anidb.git/blobdiff - animecache.go
anidb: Cache finished anime for longer
[go-anidb.git] / animecache.go
index fd2d7f3d507613a09630fcd26054685ade5b117d..25624fb8d0cf2ffaf8af054ee5262b4e63f2b3ef 100644 (file)
@@ -26,10 +26,17 @@ func (a *Anime) IsStale() bool {
        if a == nil {
                return true
        }
+       now := time.Now()
+       diff := now.Sub(a.Cached)
        if a.Incomplete {
-               return time.Now().Sub(a.Cached) > AnimeIncompleteCacheDuration
+               return diff > AnimeIncompleteCacheDuration
        }
-       return time.Now().Sub(a.Cached) > AnimeCacheDuration
+
+       // If the anime ended, and more than AnimeCacheDuration time ago at that
+       if !a.EndDate.IsZero() && now.After(a.EndDate.Add(AnimeCacheDuration)) {
+               return diff > FinishedAnimeCacheDuration
+       }
+       return diff > AnimeCacheDuration
 }
 
 // Unique Anime IDentifier.