diff --git a/scanner/metadata_test.go b/scanner/metadata_test.go index bbd3e82c9..f66405edf 100644 --- a/scanner/metadata_test.go +++ b/scanner/metadata_test.go @@ -55,6 +55,7 @@ var _ = Describe("Metadata", func() { Expect(files).To(HaveKey("tests/fixtures/test.ogg")) Expect(files).To(HaveKey("tests/fixtures/test.mp3")) Expect(files).To(HaveKey("tests/fixtures/01 Invisible (RED) Edit Version.mp3")) + Expect(files).ToNot(HaveKey("tests/fixtures/playlist.m3u")) }) It("returns error if path does not exist", func() { _, err := LoadAllAudioFiles("./INVALID/PATH") diff --git a/tests/fixtures/playlist.m3u b/tests/fixtures/playlist.m3u new file mode 100644 index 000000000..e69de29bb diff --git a/utils/files.go b/utils/files.go index 449c6d365..64d19b604 100644 --- a/utils/files.go +++ b/utils/files.go @@ -6,9 +6,14 @@ import ( "strings" ) +var excludeAudioType = []string{ + "audio/x-mpegurl", +} + func IsAudioFile(filePath string) bool { extension := filepath.Ext(filePath) - return strings.HasPrefix(mime.TypeByExtension(extension), "audio/") + mimeType := mime.TypeByExtension(extension) + return !StringInSlice(mimeType, excludeAudioType) && strings.HasPrefix(mimeType, "audio/") } func IsImageFile(filePath string) bool { diff --git a/utils/files_test.go b/utils/files_test.go index 3ba2148bb..cc237ce5b 100644 --- a/utils/files_test.go +++ b/utils/files_test.go @@ -20,6 +20,14 @@ var _ = Describe("Files", func() { It("returns false for a non-audio file", func() { Expect(IsAudioFile("test.jpg")).To(BeFalse()) }) + + It("returns false for m3u files", func() { + Expect(IsAudioFile("test.m3u")).To(BeFalse()) + }) + + It("returns false for pls files", func() { + Expect(IsAudioFile("test.pls")).To(BeFalse()) + }) }) Describe("IsImageFile", func() {