From 829668bb3f0f9a8e3982cab8d742c120906f9e5c Mon Sep 17 00:00:00 2001 From: Carl Pearson Date: Sun, 15 Sep 2024 06:03:50 -0600 Subject: [PATCH] Do 480p, 96k transcodes first --- README.md | 4 ++++ handlers.go | 8 ++++++-- workers.go | 7 ++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5899512..c638b86 100644 --- a/README.md +++ b/README.md @@ -43,3 +43,7 @@ Build and push this container to ghcr * Create a "personal access token (classic)" with write:packages * account > settings > developer settings > personal access tokens > tokens (classic) > generate new token (classic) * Put that personal access token as the repository actions secret `GHCR_TOKEN`. + +## Roadmap + +- [ ] edit original metadata \ No newline at end of file diff --git a/handlers.go b/handlers.go index 8df500d..57cf29f 100644 --- a/handlers.go +++ b/handlers.go @@ -655,10 +655,14 @@ func videoHandler(c echo.Context) error { } var videos []Video - db.Where("original_id = ?", id).Find(&videos) + db.Where("original_id = ?", id). + Order("CASE WHEN source = 'original' THEN 0 ELSE 1 END, height ASC"). + Find(&videos) var audios []Audio - db.Where("original_id = ?", id).Find(&audios) + db.Where("original_id = ?", id). + Order("CASE WHEN source = 'original' THEN 0 ELSE 1 END, bps ASC"). + Find(&audios) dataDir := getDataDir() diff --git a/workers.go b/workers.go index 4490780..65d92b5 100644 --- a/workers.go +++ b/workers.go @@ -216,7 +216,12 @@ func transcodePending() { // loop until no more pending jobs for { var trans Transcode - err := db.First(&trans, "status = ?", "pending").Error + err := db.Where("status = ?", "pending"). + Order("CASE " + + "WHEN dst_kind = 'video' AND height = 480 THEN 0 " + + "WHEN dst_kind = 'audio' AND rate = 96 THEN 0 " + + "ELSE 1 END").First(&trans).Error + // err := db.First(&trans, "status = ?", "pending").Error if err == gorm.ErrRecordNotFound { fmt.Println("no pending transcode jobs") break // no more pending jobs