Move Audio to media package
This commit is contained in:
16
handlers.go
16
handlers.go
@@ -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
|
||||||
|
2
main.go
2
main.go
@@ -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
|
||||||
|
@@ -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
|
||||||
}
|
}
|
||||||
|
13
models.go
13
models.go
@@ -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"`
|
||||||
|
@@ -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)
|
||||||
|
Reference in New Issue
Block a user