Extract metadata from files in a directory in batch (one call to ffmpeg for all files)

This commit is contained in:
Deluan
2020-01-21 00:49:41 -05:00
parent d9ce6f3b51
commit c42e1bd2f5
7 changed files with 139 additions and 232 deletions
+12 -12
View File
@@ -6,9 +6,12 @@ import (
)
var _ = Describe("Metadata", func() {
FIt("correctly parses mp3 file", func() {
m, err := ExtractMetadata("../tests/fixtures/test.mp3")
Expect(err).To(BeNil())
It("correctly parses metadata from all files in folder", func() {
mds, err := ExtractAllMetadata("../tests/fixtures")
Expect(err).NotTo(HaveOccurred())
Expect(mds).To(HaveLen(3))
m := mds["../tests/fixtures/test.mp3"]
Expect(m.Title()).To(Equal("Song"))
Expect(m.Album()).To(Equal("Album"))
Expect(m.Artist()).To(Equal("Artist"))
@@ -29,10 +32,8 @@ var _ = Describe("Metadata", func() {
Expect(m.FilePath()).To(Equal("../tests/fixtures/test.mp3"))
Expect(m.Suffix()).To(Equal("mp3"))
Expect(m.Size()).To(Equal(60845))
})
It("correctly parses ogg file with no tags", func() {
m, err := ExtractMetadata("../tests/fixtures/test.ogg")
m = mds["../tests/fixtures/test.ogg"]
Expect(err).To(BeNil())
Expect(m.Title()).To(BeEmpty())
Expect(m.HasPicture()).To(BeFalse())
@@ -43,13 +44,12 @@ var _ = Describe("Metadata", func() {
Expect(m.Size()).To(Equal(4408))
})
FIt("returns error for invalid media file", func() {
_, err := ExtractMetadata("../tests/fixtures/itunes-library.xml")
Expect(err).ToNot(BeNil())
It("returns error if path does not exist", func() {
_, err := ExtractAllMetadata("./INVALID/PATH")
Expect(err).To(HaveOccurred())
})
It("returns error for file not found", func() {
_, err := ExtractMetadata("../tests/fixtures/NOT-FOUND.mp3")
Expect(err).ToNot(BeNil())
It("returns empty map if there are no audio files in path", func() {
Expect(ExtractAllMetadata(".")).To(BeEmpty())
})
})