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,242 @@
package local
import (
"seanime/internal/api/anilist"
"github.com/goccy/go-json"
)
var CurrSettings *Settings
func (ldb *Database) SaveSettings(s *Settings) error {
s.BaseModel.ID = 1
CurrSettings = nil
return ldb.gormdb.Save(s).Error
}
func (ldb *Database) GetSettings() *Settings {
if CurrSettings != nil {
return CurrSettings
}
var s Settings
err := ldb.gormdb.First(&s).Error
if err != nil {
_ = ldb.SaveSettings(&Settings{
BaseModel: BaseModel{
ID: 1,
},
Updated: false,
})
return &Settings{
BaseModel: BaseModel{
ID: 1,
},
Updated: false,
}
}
return &s
}
func (ldb *Database) SetTrackedMedia(sm *TrackedMedia) error {
return ldb.gormdb.Save(sm).Error
}
// GetTrackedMedia returns the tracked media with the given mediaId and kind.
// This should only be used when adding/removing tracked media.
func (ldb *Database) GetTrackedMedia(mediaId int, kind string) (*TrackedMedia, bool) {
var sm TrackedMedia
err := ldb.gormdb.Where("media_id = ? AND type = ?", mediaId, kind).First(&sm).Error
return &sm, err == nil
}
func (ldb *Database) GetAllTrackedMediaByType(kind string) ([]*TrackedMedia, bool) {
var sm []*TrackedMedia
err := ldb.gormdb.Where("type = ?", kind).Find(&sm).Error
return sm, err == nil
}
func (ldb *Database) GetAllTrackedMedia() ([]*TrackedMedia, bool) {
var sm []*TrackedMedia
err := ldb.gormdb.Find(&sm).Error
return sm, err == nil
}
func (ldb *Database) RemoveTrackedMedia(mediaId int, kind string) error {
return ldb.gormdb.Where("media_id = ? AND type = ?", mediaId, kind).Delete(&TrackedMedia{}).Error
}
//----------------------------------------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------------------------------------
func (ldb *Database) SaveAnimeSnapshot(as *AnimeSnapshot) error {
return ldb.gormdb.Save(as).Error
}
func (ldb *Database) GetAnimeSnapshot(mediaId int) (*AnimeSnapshot, bool) {
var as AnimeSnapshot
err := ldb.gormdb.Where("media_id = ?", mediaId).First(&as).Error
return &as, err == nil
}
func (ldb *Database) RemoveAnimeSnapshot(mediaId int) error {
return ldb.gormdb.Where("media_id = ?", mediaId).Delete(&AnimeSnapshot{}).Error
}
//----------------------------------------------------------------------------------------------------------------------------------------------------
func (ldb *Database) SaveMangaSnapshot(ms *MangaSnapshot) error {
return ldb.gormdb.Save(ms).Error
}
func (ldb *Database) GetMangaSnapshot(mediaId int) (*MangaSnapshot, bool) {
var ms MangaSnapshot
err := ldb.gormdb.Where("media_id = ?", mediaId).First(&ms).Error
return &ms, err == nil
}
func (ldb *Database) RemoveMangaSnapshot(mediaId int) error {
return ldb.gormdb.Where("media_id = ?", mediaId).Delete(&MangaSnapshot{}).Error
}
//----------------------------------------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------------------------------------
func (ldb *Database) GetAnimeSnapshots() ([]*AnimeSnapshot, bool) {
var as []*AnimeSnapshot
err := ldb.gormdb.Find(&as).Error
return as, err == nil
}
func (ldb *Database) GetMangaSnapshots() ([]*MangaSnapshot, bool) {
var ms []*MangaSnapshot
err := ldb.gormdb.Find(&ms).Error
return ms, err == nil
}
//----------------------------------------------------------------------------------------------------------------------------------------------------
func (ldb *Database) SaveAnimeCollection(ac *anilist.AnimeCollection) error {
return ldb._saveLocalCollection(AnimeType, ac)
}
func (ldb *Database) SaveMangaCollection(mc *anilist.MangaCollection) error {
return ldb._saveLocalCollection(MangaType, mc)
}
func (ldb *Database) GetLocalAnimeCollection() (*anilist.AnimeCollection, bool) {
lc, ok := ldb._getLocalCollection(AnimeType)
if !ok {
return nil, false
}
var ac anilist.AnimeCollection
err := json.Unmarshal(lc.Value, &ac)
return &ac, err == nil
}
func (ldb *Database) GetLocalMangaCollection() (*anilist.MangaCollection, bool) {
lc, ok := ldb._getLocalCollection(MangaType)
if !ok {
return nil, false
}
var mc anilist.MangaCollection
err := json.Unmarshal(lc.Value, &mc)
return &mc, err == nil
}
//----------------------------------------------------------------------------------------------------------------------------------------------------
func (ldb *Database) _getLocalCollection(collectionType string) (*LocalCollection, bool) {
var lc LocalCollection
err := ldb.gormdb.Where("type = ?", collectionType).First(&lc).Error
return &lc, err == nil
}
func (ldb *Database) _saveLocalCollection(collectionType string, value interface{}) error {
marshalledValue, err := json.Marshal(value)
if err != nil {
return err
}
// Check if collection already exists
lc, ok := ldb._getLocalCollection(collectionType)
if ok {
lc.Value = marshalledValue
return ldb.gormdb.Save(&lc).Error
}
lcN := LocalCollection{
Type: collectionType,
Value: marshalledValue,
}
return ldb.gormdb.Save(&lcN).Error
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Simulated collections
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
func (ldb *Database) _getSimulatedCollection(collectionType string) (*SimulatedCollection, bool) {
var lc SimulatedCollection
err := ldb.gormdb.Where("type = ?", collectionType).First(&lc).Error
return &lc, err == nil
}
func (ldb *Database) _saveSimulatedCollection(collectionType string, value interface{}) error {
marshalledValue, err := json.Marshal(value)
if err != nil {
return err
}
// Check if collection already exists
lc, ok := ldb._getSimulatedCollection(collectionType)
if ok {
lc.Value = marshalledValue
return ldb.gormdb.Save(&lc).Error
}
lcN := SimulatedCollection{
Type: collectionType,
Value: marshalledValue,
}
return ldb.gormdb.Save(&lcN).Error
}
func (ldb *Database) SaveSimulatedAnimeCollection(ac *anilist.AnimeCollection) error {
return ldb._saveSimulatedCollection(AnimeType, ac)
}
func (ldb *Database) SaveSimulatedMangaCollection(mc *anilist.MangaCollection) error {
return ldb._saveSimulatedCollection(MangaType, mc)
}
func (ldb *Database) GetSimulatedAnimeCollection() (*anilist.AnimeCollection, bool) {
lc, ok := ldb._getSimulatedCollection(AnimeType)
if !ok {
return nil, false
}
var ac anilist.AnimeCollection
err := json.Unmarshal(lc.Value, &ac)
return &ac, err == nil
}
func (ldb *Database) GetSimulatedMangaCollection() (*anilist.MangaCollection, bool) {
lc, ok := ldb._getSimulatedCollection(MangaType)
if !ok {
return nil, false
}
var mc anilist.MangaCollection
err := json.Unmarshal(lc.Value, &mc)
return &mc, err == nil
}