47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
package db_bridge
|
|
|
|
import (
|
|
"github.com/goccy/go-json"
|
|
"seanime/internal/database/db"
|
|
"seanime/internal/database/models"
|
|
hibiketorrent "seanime/internal/extension/hibike/torrent"
|
|
)
|
|
|
|
func GetTorrentstreamHistory(db *db.Database, mId int) (*hibiketorrent.AnimeTorrent, error) {
|
|
var history models.TorrentstreamHistory
|
|
if err := db.Gorm().Where("media_id = ?", mId).First(&history).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
var torrent hibiketorrent.AnimeTorrent
|
|
if err := json.Unmarshal(history.Torrent, &torrent); err != nil {
|
|
return nil, err
|
|
}
|
|
return &torrent, nil
|
|
}
|
|
|
|
func InsertTorrentstreamHistory(db *db.Database, mId int, torrent *hibiketorrent.AnimeTorrent) error {
|
|
if torrent == nil {
|
|
return nil
|
|
}
|
|
|
|
// Marshal the data
|
|
bytes, err := json.Marshal(torrent)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
// Get current history
|
|
var history models.TorrentstreamHistory
|
|
if err := db.Gorm().Where("media_id = ?", mId).First(&history).Error; err == nil {
|
|
// Update the history
|
|
history.Torrent = bytes
|
|
return db.Gorm().Save(&history).Error
|
|
}
|
|
|
|
return db.Gorm().Create(&models.TorrentstreamHistory{
|
|
MediaId: mId,
|
|
Torrent: bytes,
|
|
}).Error
|
|
}
|