fix: 未知 MIME 文件不再被移入忽略目录
- scanner: 新增 IsExplicitMediaMime 判断明确媒体 MIME - organize: 仅 video/audio MIME 文件移入异常/忽略目录 - octet-stream/空 MIME 且 ffprobe 无法确认的文件原地忽略,不移动
This commit is contained in:
@@ -150,13 +150,18 @@ func (o *Organizer) ProcessMedia(media []scanner.File) {
|
||||
for _, f := range media {
|
||||
res, err := probe.ProbeMediaFile(o.ffprobePath, f.Path)
|
||||
if err != nil {
|
||||
// 仅 MIME 明确为视频/音频的文件才移入异常/忽略目录;
|
||||
// octet-stream/空 MIME 且 ffprobe 无法确认的原地忽略,不移动
|
||||
if strings.HasPrefix(f.Mime, "video/") {
|
||||
fail++
|
||||
o.add(f, dirVideoErr)
|
||||
fmt.Printf("=== 异常视频: %s \n", f.Path)
|
||||
} else {
|
||||
} else if scanner.IsExplicitMediaMime(f.Mime) {
|
||||
ignore++
|
||||
o.add(f, dirVideoIgnored)
|
||||
} else {
|
||||
ignore++
|
||||
fmt.Printf("=== 无法确认的非媒体文件, 原地忽略: %s \n", f.Path)
|
||||
}
|
||||
continue
|
||||
}
|
||||
@@ -170,8 +175,14 @@ func (o *Organizer) ProcessMedia(media []scanner.File) {
|
||||
o.record(f, "audio", res)
|
||||
o.add(f, dirAudio)
|
||||
default:
|
||||
// ffprobe 无音视频流:MIME 明确为媒体的归入忽略目录,其余原地不动
|
||||
if scanner.IsExplicitMediaMime(f.Mime) {
|
||||
ignore++
|
||||
o.add(f, dirVideoIgnored)
|
||||
} else {
|
||||
ignore++
|
||||
fmt.Printf("=== 无法确认的非媒体文件, 原地忽略: %s \n", f.Path)
|
||||
}
|
||||
}
|
||||
}
|
||||
fmt.Printf("=== 媒体处理完毕,视频: %d, 音频: %d, 读取异常: %d, 忽略: %d \n\n", video, audio, fail, ignore)
|
||||
|
||||
@@ -104,6 +104,11 @@ func detectMime(filePath string) string {
|
||||
return mt.String()
|
||||
}
|
||||
|
||||
// IsExplicitMediaMime 判断 MIME 是否明确属于视频/音频(区别于 octet-stream/空 等无法确定的情况)
|
||||
func IsExplicitMediaMime(fileMime string) bool {
|
||||
return strings.HasPrefix(fileMime, "video/") || strings.HasPrefix(fileMime, "audio/")
|
||||
}
|
||||
|
||||
// isPotentialMedia 判断是否可能是媒体文件(交由 ffprobe 进一步确认)
|
||||
func isPotentialMedia(fileMime string) bool {
|
||||
if fileMime == "" || fileMime == "application/octet-stream" {
|
||||
|
||||
Reference in New Issue
Block a user