Move Audio to media package

This commit is contained in:
Carl Pearson
2024-09-26 05:54:11 -06:00
parent 2a79660421
commit 045ecd88d1
5 changed files with 29 additions and 25 deletions

View File

@@ -495,7 +495,7 @@ func processOriginal(originalID uint) {
hasOriginalVideo := true
hasOriginalAudio := true
var video media.Video
var audio Audio
var audio media.Audio
err := db.Where("source = ?", "original").Where("original_id = ?", originalID).First(&video).Error
if err == gorm.ErrRecordNotFound {
hasOriginalVideo = false
@@ -604,7 +604,7 @@ func startDownload(originalID uint, videoURL string, audioOnly bool) {
return
}
audio := Audio{
audio := media.Audio{
OriginalID: originalID,
Filename: dlFilename,
Source: "original",
@@ -731,7 +731,7 @@ func videoHandler(c echo.Context) error {
Order("CASE WHEN source = 'original' THEN 0 ELSE 1 END, height ASC").
Find(&videos)
var audios []Audio
var audios []media.Audio
db.Where("original_id = ?", id).
Order("CASE WHEN source = 'original' THEN 0 ELSE 1 END, bps ASC").
Find(&audios)
@@ -843,7 +843,7 @@ func deleteOriginalVideos(originalID int) {
}
func deleteAudiosWithSource(originalID int, source string) {
var audios []Audio
var audios []media.Audio
db.Where("original_id = ?", originalID).Where("source = ?", source).Find(&audios)
for _, audio := range audios {
path := filepath.Join(getDataDir(), audio.Filename)
@@ -853,7 +853,7 @@ func deleteAudiosWithSource(originalID int, source string) {
log.Errorln("error removing", path, err)
}
}
db.Delete(&Audio{}, "original_id = ? AND source = ?", originalID, source)
db.Delete(&media.Audio{}, "original_id = ? AND source = ?", originalID, source)
}
func deleteOriginalHandler(c echo.Context) error {
@@ -907,7 +907,7 @@ func deleteAudioHandler(c echo.Context) error {
referrer = "/"
}
var audio Audio
var audio media.Audio
result := db.First(&audio, id)
if result.Error != nil {
log.Errorln("error retrieving audio", id, result.Error)
@@ -921,7 +921,7 @@ func deleteAudioHandler(c echo.Context) error {
log.Errorln("coudn't remove", filePath, err)
}
if err := db.Delete(&Audio{}, id).Error; err != nil {
if err := db.Delete(&media.Audio{}, id).Error; err != nil {
log.Errorln("error deleting audio record", id, err)
}
return c.Redirect(http.StatusSeeOther, referrer)
@@ -958,7 +958,7 @@ func transcodeToAudioHandler(c echo.Context) error {
hasOriginalVideo := true
hasOriginalAudio := true
var video media.Video
var audio Audio
var audio media.Audio
err := db.Where("source = ?", "original").Where("original_id = ?", originalId).First(&video).Error
if err == gorm.ErrRecordNotFound {
hasOriginalVideo = false

View File

@@ -80,7 +80,7 @@ func main() {
sqlDB.SetMaxOpenConns(1)
// Migrate the schema
db.AutoMigrate(&Original{}, &media.Video{}, &Audio{}, &User{}, &TempURL{}, &Transcode{})
db.AutoMigrate(&Original{}, &media.Video{}, &media.Audio{}, &User{}, &TempURL{}, &Transcode{})
go PeriodicCleanup()
// create a user

View File

@@ -5,9 +5,25 @@ import "gorm.io/gorm"
type Status string
const (
Pending Status = "pending"
Transcoding Status = "transcoding"
Completed Status = "completed"
Failed Status = "failed"
)
type Audio struct {
gorm.Model
OriginalID uint // Original.ID
Source string // "original", "transcode"
Bps uint
Length float64
Size int64
Type string
Codec string
Filename string
Status Status
}
type Video struct {
gorm.Model
OriginalID uint // Original.ID
@@ -20,4 +36,5 @@ type Video struct {
Size int64
Type string
Codec string
Status Status
}

View File

@@ -53,19 +53,6 @@ type Transcode struct {
Rate uint
}
type Audio struct {
gorm.Model
OriginalID uint // Original.ID
Source string // "original", "transcode"
Bps uint
Length float64
Size int64
Type string
Codec string
Filename string
Status string // "pending", "completed", "failed"
}
type User struct {
gorm.Model
Username string `gorm:"unique"`

View File

@@ -133,7 +133,7 @@ func videoToAudio(transID uint, kbps uint, videoFilepath string) {
db.First(&orig, "id = ?", trans.OriginalID)
// create audio record
audio := Audio{OriginalID: orig.ID,
audio := media.Audio{OriginalID: orig.ID,
Filename: audioFilename,
Bps: kbps * 1000,
Source: "transcode",
@@ -191,7 +191,7 @@ func audioToAudio(transID uint, kbps uint, srcFilepath string) {
db.First(&orig, "id = ?", trans.OriginalID)
// create audio record
audio := Audio{
audio := media.Audio{
OriginalID: orig.ID,
Filename: dstFilename,
Bps: kbps * 1000,
@@ -282,7 +282,7 @@ func transcodePending() {
}
} else if trans.SrcKind == "audio" {
var srcAudio Audio
var srcAudio media.Audio
err = db.First(&srcAudio, "id = ?", trans.SrcID).Error
if err != nil {
fmt.Println("no such source audio for audio Transcode", trans)