node build fixed
This commit is contained in:
82
seanime-2.9.10/internal/database/db_bridge/playlist.go
Normal file
82
seanime-2.9.10/internal/database/db_bridge/playlist.go
Normal file
@@ -0,0 +1,82 @@
|
||||
package db_bridge
|
||||
|
||||
import (
|
||||
"github.com/goccy/go-json"
|
||||
"seanime/internal/database/db"
|
||||
"seanime/internal/database/models"
|
||||
"seanime/internal/library/anime"
|
||||
)
|
||||
|
||||
func GetPlaylists(db *db.Database) ([]*anime.Playlist, error) {
|
||||
var res []*models.PlaylistEntry
|
||||
err := db.Gorm().Find(&res).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
playlists := make([]*anime.Playlist, 0)
|
||||
for _, p := range res {
|
||||
var localFiles []*anime.LocalFile
|
||||
if err := json.Unmarshal(p.Value, &localFiles); err == nil {
|
||||
playlist := anime.NewPlaylist(p.Name)
|
||||
playlist.SetLocalFiles(localFiles)
|
||||
playlist.DbId = p.ID
|
||||
playlists = append(playlists, playlist)
|
||||
}
|
||||
}
|
||||
return playlists, nil
|
||||
}
|
||||
|
||||
func SavePlaylist(db *db.Database, playlist *anime.Playlist) error {
|
||||
data, err := json.Marshal(playlist.LocalFiles)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
playlistEntry := &models.PlaylistEntry{
|
||||
Name: playlist.Name,
|
||||
Value: data,
|
||||
}
|
||||
|
||||
return db.Gorm().Save(playlistEntry).Error
|
||||
}
|
||||
|
||||
func DeletePlaylist(db *db.Database, id uint) error {
|
||||
return db.Gorm().Where("id = ?", id).Delete(&models.PlaylistEntry{}).Error
|
||||
}
|
||||
|
||||
func UpdatePlaylist(db *db.Database, playlist *anime.Playlist) error {
|
||||
data, err := json.Marshal(playlist.LocalFiles)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Get the playlist entry
|
||||
playlistEntry := &models.PlaylistEntry{}
|
||||
if err := db.Gorm().Where("id = ?", playlist.DbId).First(playlistEntry).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Update the playlist entry
|
||||
playlistEntry.Name = playlist.Name
|
||||
playlistEntry.Value = data
|
||||
|
||||
return db.Gorm().Save(playlistEntry).Error
|
||||
}
|
||||
|
||||
func GetPlaylist(db *db.Database, id uint) (*anime.Playlist, error) {
|
||||
playlistEntry := &models.PlaylistEntry{}
|
||||
if err := db.Gorm().Where("id = ?", id).First(playlistEntry).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var localFiles []*anime.LocalFile
|
||||
if err := json.Unmarshal(playlistEntry.Value, &localFiles); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
playlist := anime.NewPlaylist(playlistEntry.Name)
|
||||
playlist.SetLocalFiles(localFiles)
|
||||
playlist.DbId = playlistEntry.ID
|
||||
|
||||
return playlist, nil
|
||||
}
|
||||
Reference in New Issue
Block a user