fix: restore metadata tags and sanitize output filenames
This commit is contained in:
+8
-2
@@ -8,6 +8,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"regexp"
|
||||||
"syscall"
|
"syscall"
|
||||||
|
|
||||||
"videnc-vibe/internal/config"
|
"videnc-vibe/internal/config"
|
||||||
@@ -148,9 +149,9 @@ func processFile(inputPath string, cfg *types.Config, enc *encoder.Encoder, meta
|
|||||||
if meta.IMDBID == "" || meta.Title == "Unknown" {
|
if meta.IMDBID == "" || meta.Title == "Unknown" {
|
||||||
outFilename = fmt.Sprintf("%s.nometadata.mkv", generateRandomString(8))
|
outFilename = fmt.Sprintf("%s.nometadata.mkv", generateRandomString(8))
|
||||||
} else if isSeries {
|
} else if isSeries {
|
||||||
outFilename = fmt.Sprintf("%s.S%sE%s.mkv", meta.Collection, season, episode)
|
outFilename = fmt.Sprintf("%s.S%sE%s.mkv", sanitizeFilename(meta.Collection), season, episode)
|
||||||
} else {
|
} else {
|
||||||
outFilename = fmt.Sprintf("%s.%s.mkv", meta.Title, meta.IMDBID)
|
outFilename = fmt.Sprintf("%s.%s.mkv", sanitizeFilename(meta.Title), meta.IMDBID)
|
||||||
}
|
}
|
||||||
|
|
||||||
finalOutput := filepath.Join(cfg.Paths.Output, outFilename)
|
finalOutput := filepath.Join(cfg.Paths.Output, outFilename)
|
||||||
@@ -177,3 +178,8 @@ func generateRandomString(length int) string {
|
|||||||
rand.Read(bytes)
|
rand.Read(bytes)
|
||||||
return hex.EncodeToString(bytes)[:length]
|
return hex.EncodeToString(bytes)[:length]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func sanitizeFilename(name string) string {
|
||||||
|
reg := regexp.MustCompile(`[^a-zA-Z0-9\-äöÄÖ]`)
|
||||||
|
return reg.ReplaceAllString(name, "")
|
||||||
|
}
|
||||||
|
|||||||
@@ -295,8 +295,13 @@ func (e *Encoder) encodeVideo(input string, opusFiles []string, job *types.Job,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
args = append(args, "-metadata", fmt.Sprintf("TITLE=\"%s\"", metadata.Title))
|
||||||
|
args = append(args, "-metadata", fmt.Sprintf("DATE_RELEASED=%s", metadata.DateReleased))
|
||||||
|
args = append(args, "-metadata", fmt.Sprintf("IMDBID=%s", metadata.IMDBID))
|
||||||
|
args = append(args, "-metadata", fmt.Sprintf("ORIGINAL_MEDIA_TYPE=%s", metadata.OriginalMedia))
|
||||||
|
|
||||||
if metadata.IsSeries {
|
if metadata.IsSeries {
|
||||||
args = append(args, "-metadata", fmt.Sprintf("COLLECTION=%s", metadata.Collection))
|
args = append(args, "-metadata", fmt.Sprintf("COLLECTION=\"%s\"", metadata.Collection))
|
||||||
args = append(args, "-metadata", fmt.Sprintf("SEASON=%s", metadata.Season))
|
args = append(args, "-metadata", fmt.Sprintf("SEASON=%s", metadata.Season))
|
||||||
args = append(args, "-metadata", fmt.Sprintf("EPISODE=%s", metadata.Episode))
|
args = append(args, "-metadata", fmt.Sprintf("EPISODE=%s", metadata.Episode))
|
||||||
if metadata.TVMazeID != "" {
|
if metadata.TVMazeID != "" {
|
||||||
|
|||||||
Reference in New Issue
Block a user