]> git.lizzy.rs Git - go-anidb.git/blobdiff - mylistanimecache.go
anidb: rename misc.go to globals.go
[go-anidb.git] / mylistanimecache.go
index 2ea83254ae0e07a2d2e351e19dd340a2c3f446a0..db75026be09264427bab1eeb4a693b02b39f9b8f 100644 (file)
@@ -30,6 +30,36 @@ func (uid UID) MyListAnime(aid AID) *MyListAnime {
        return nil
 }
 
+func (u *User) MyListAnime(aid AID) *MyListAnime {
+       if u != nil {
+               return u.UID.MyListAnime(aid)
+       }
+       return nil
+}
+
+func (a *Anime) MyList(adb *AniDB) <-chan *MyListAnime {
+       ch := make(chan *MyListAnime, 1)
+
+       if a == nil {
+               ch <- nil
+               close(ch)
+               return ch
+       }
+
+       go func() {
+               user := <-adb.GetCurrentUser()
+               if user == nil || user.UID < 1 {
+                       ch <- nil
+                       close(ch)
+                       return
+               }
+
+               ch <- <-adb.MyListAnime(a.AID)
+               close(ch)
+       }()
+       return ch
+}
+
 func (adb *AniDB) MyListAnime(aid AID) <-chan *MyListAnime {
        ch := make(chan *MyListAnime, 1)
 
@@ -48,7 +78,7 @@ func (adb *AniDB) MyListAnime(aid AID) <-chan *MyListAnime {
                }
                key := []fscache.CacheKey{"mylist-anime", user.UID, aid}
 
-               ic := make(chan notification, 1)
+               ic := make(chan notification, 2)
                go func() { ch <- (<-ic).(*MyListAnime); close(ch) }()
                if intentMap.Intent(ic, key...) {
                        return