node build fixed
This commit is contained in:
109
seanime-2.9.10/internal/core/anilist.go
Normal file
109
seanime-2.9.10/internal/core/anilist.go
Normal file
@@ -0,0 +1,109 @@
|
||||
package core
|
||||
|
||||
import (
|
||||
"context"
|
||||
"seanime/internal/api/anilist"
|
||||
"seanime/internal/events"
|
||||
"seanime/internal/platforms/platform"
|
||||
"seanime/internal/user"
|
||||
)
|
||||
|
||||
// GetUser returns the currently logged-in user or a simulated one.
|
||||
func (a *App) GetUser() *user.User {
|
||||
if a.user == nil {
|
||||
return user.NewSimulatedUser()
|
||||
}
|
||||
return a.user
|
||||
}
|
||||
|
||||
func (a *App) GetUserAnilistToken() string {
|
||||
if a.user == nil || a.user.Token == user.SimulatedUserToken {
|
||||
return ""
|
||||
}
|
||||
|
||||
return a.user.Token
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// UpdatePlatform changes the current platform to the provided one.
|
||||
func (a *App) UpdatePlatform(platform platform.Platform) {
|
||||
a.AnilistPlatform = platform
|
||||
}
|
||||
|
||||
// UpdateAnilistClientToken will update the Anilist Client Wrapper token.
|
||||
// This function should be called when a user logs in
|
||||
func (a *App) UpdateAnilistClientToken(token string) {
|
||||
a.AnilistClient = anilist.NewAnilistClient(token)
|
||||
a.AnilistPlatform.SetAnilistClient(a.AnilistClient) // Update Anilist Client Wrapper in Platform
|
||||
}
|
||||
|
||||
// GetAnimeCollection returns the user's Anilist collection if it in the cache, otherwise it queries Anilist for the user's collection.
|
||||
// When bypassCache is true, it will always query Anilist for the user's collection
|
||||
func (a *App) GetAnimeCollection(bypassCache bool) (*anilist.AnimeCollection, error) {
|
||||
return a.AnilistPlatform.GetAnimeCollection(context.Background(), bypassCache)
|
||||
}
|
||||
|
||||
// GetRawAnimeCollection is the same as GetAnimeCollection but returns the raw collection that includes custom lists
|
||||
func (a *App) GetRawAnimeCollection(bypassCache bool) (*anilist.AnimeCollection, error) {
|
||||
return a.AnilistPlatform.GetRawAnimeCollection(context.Background(), bypassCache)
|
||||
}
|
||||
|
||||
// RefreshAnimeCollection queries Anilist for the user's collection
|
||||
func (a *App) RefreshAnimeCollection() (*anilist.AnimeCollection, error) {
|
||||
go func() {
|
||||
a.OnRefreshAnilistCollectionFuncs.Range(func(key string, f func()) bool {
|
||||
go f()
|
||||
return true
|
||||
})
|
||||
}()
|
||||
|
||||
ret, err := a.AnilistPlatform.RefreshAnimeCollection(context.Background())
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Save the collection to PlaybackManager
|
||||
a.PlaybackManager.SetAnimeCollection(ret)
|
||||
|
||||
// Save the collection to AutoDownloader
|
||||
a.AutoDownloader.SetAnimeCollection(ret)
|
||||
|
||||
// Save the collection to LocalManager
|
||||
a.LocalManager.SetAnimeCollection(ret)
|
||||
|
||||
// Save the collection to DirectStreamManager
|
||||
a.DirectStreamManager.SetAnimeCollection(ret)
|
||||
|
||||
a.WSEventManager.SendEvent(events.RefreshedAnilistAnimeCollection, nil)
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// GetMangaCollection is the same as GetAnimeCollection but for manga
|
||||
func (a *App) GetMangaCollection(bypassCache bool) (*anilist.MangaCollection, error) {
|
||||
return a.AnilistPlatform.GetMangaCollection(context.Background(), bypassCache)
|
||||
}
|
||||
|
||||
// GetRawMangaCollection does not exclude custom lists
|
||||
func (a *App) GetRawMangaCollection(bypassCache bool) (*anilist.MangaCollection, error) {
|
||||
return a.AnilistPlatform.GetRawMangaCollection(context.Background(), bypassCache)
|
||||
}
|
||||
|
||||
// RefreshMangaCollection queries Anilist for the user's manga collection
|
||||
func (a *App) RefreshMangaCollection() (*anilist.MangaCollection, error) {
|
||||
mc, err := a.AnilistPlatform.RefreshMangaCollection(context.Background())
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
a.LocalManager.SetMangaCollection(mc)
|
||||
|
||||
a.WSEventManager.SendEvent(events.RefreshedAnilistMangaCollection, nil)
|
||||
|
||||
return mc, nil
|
||||
}
|
||||
Reference in New Issue
Block a user