node build fixed

This commit is contained in:
ra_ma
2025-09-20 14:08:38 +01:00
parent c6ebbe069d
commit 3d298fa434
1516 changed files with 535727 additions and 2 deletions

View 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
}