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

View File

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

View File

@@ -5,9 +5,25 @@ import "gorm.io/gorm"
type Status string type Status string
const ( const (
Pending Status = "pending"
Transcoding Status = "transcoding" 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 { type Video struct {
gorm.Model gorm.Model
OriginalID uint // Original.ID OriginalID uint // Original.ID
@@ -20,4 +36,5 @@ type Video struct {
Size int64 Size int64
Type string Type string
Codec string Codec string
Status Status
} }

View File

@@ -53,19 +53,6 @@ type Transcode struct {
Rate uint 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 { type User struct {
gorm.Model gorm.Model
Username string `gorm:"unique"` Username string `gorm:"unique"`

View File

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