Update supported video extensions

This commit is contained in:
Ben Adrian Sarmiento
2024-06-19 20:29:05 +02:00
parent 9829b34254
commit 55edd46aa4
5 changed files with 16 additions and 15 deletions

View File

@@ -539,14 +539,14 @@ func checkArithmeticSequenceInFilenames(files []string) bool {
}
r := regexp.MustCompile(`\d+`)
for _, file := range files {
if !utils.IsPlayable(file) {
if !utils.IsVideo(file) {
continue
}
matches := r.FindAllStringIndex(file, -1)
for _, match := range matches {
numSet := make(map[int]struct{})
for _, file := range files {
if !utils.IsPlayable(file) {
if !utils.IsVideo(file) {
continue
}
if match[0] >= 0 && match[1] <= len(file) {

View File

@@ -233,8 +233,8 @@ func (t *TorrentManager) writeTorrentToFile(torrent *Torrent) {
func (t *TorrentManager) applyMediaInfoDetails(torrent *Torrent) {
changesApplied := false
torrent.SelectedFiles.IterCb(func(_ string, file *File) {
isPlayable := utils.IsPlayable(file.Path) || t.IsPlayable(file.Path)
if file.MediaInfo != nil || file.State.Is("broken_file") || !isPlayable {
isPlayable := utils.IsVideo(file.Path) || t.IsPlayable(file.Path)
if file.MediaInfo != nil || !file.State.Is("ok_file") || !isPlayable {
return
}
unrestrict := t.UnrestrictFileUntilOk(file, true)

View File

@@ -357,7 +357,7 @@ func (t *TorrentManager) assignDirectory(tor *Torrent, triggerHook bool) {
if file.MediaInfo != nil {
mediaInfos = append(mediaInfos, file.MediaInfo)
}
if utils.IsPlayable(file.Path) || t.IsPlayable(file.Path) {
if utils.IsVideo(file.Path) || t.IsPlayable(file.Path) {
unplayable = false
}
})

View File

@@ -197,7 +197,7 @@ func (t *TorrentManager) repair(torrent *Torrent, wg *sync.WaitGroup) {
// check if broken files are playable
allPlayable := true
for _, file := range brokenFiles {
if utils.IsPlayable(file.Path) {
if utils.IsVideo(file.Path) {
continue
}
@@ -394,7 +394,7 @@ func (t *TorrentManager) assignLinks(torrent *Torrent) bool {
if action == "extract" {
videoFiles := []string{}
torrent.SelectedFiles.IterCb(func(_ string, file *File) {
if utils.IsPlayable(file.Path) {
if utils.IsVideo(file.Path) {
videoFiles = append(videoFiles, fmt.Sprintf("%d", file.ID))
} else if file.ID != 0 {
t.repairLog.Debugf("Extracting file %s from rar'ed torrent %s", file.Path, t.GetKey(torrent))

View File

@@ -2,15 +2,16 @@ package utils
import "strings"
func IsPlayable(filePath string) bool {
func IsVideo(filePath string) bool {
filePath = strings.ToLower(filePath)
return strings.HasSuffix(filePath, ".avi") ||
strings.HasSuffix(filePath, ".m2ts") ||
strings.HasSuffix(filePath, ".m4v") ||
return strings.HasSuffix(filePath, ".avi") || // confirmed working
strings.HasSuffix(filePath, ".m2ts") || // confirmed working
strings.HasSuffix(filePath, ".m4v") || // confirmed working
strings.HasSuffix(filePath, ".mkv") || // confirmed working
strings.HasSuffix(filePath, ".mov") || // confirmed working
strings.HasSuffix(filePath, ".mp4") || // confirmed working
strings.HasSuffix(filePath, ".mpg") ||
strings.HasSuffix(filePath, ".ts") ||
strings.HasSuffix(filePath, ".wmv") ||
strings.HasSuffix(filePath, ".m4b") // confirmed working
strings.HasSuffix(filePath, ".mpg") || // confirmed working (no watch option in RD)
strings.HasSuffix(filePath, ".mpeg") || // confirmed working (no watch option in RD)
strings.HasSuffix(filePath, ".ts") || // confirmed working
strings.HasSuffix(filePath, ".wmv") // confirmed working
}