Move alternative tag names mapping to metadata

This commit is contained in:
Deluan
2022-12-18 23:18:27 -05:00
committed by Deluan Quintão
parent 0c22af3585
commit 6f5aaa1ec4
7 changed files with 146 additions and 120 deletions
+14 -17
View File
@@ -39,6 +39,13 @@ func (e *Extractor) Parse(files ...string) (map[string]metadata.ParsedTags, erro
return fileTags, nil
}
func (e *Extractor) CustomMappings() metadata.ParsedTags {
return metadata.ParsedTags{
"disc": {"tpa"},
"has_picture": {"metadata_block_picture"},
}
}
func (e *Extractor) extractMetadata(filePath, info string) (metadata.ParsedTags, error) {
tags := e.parseInfo(info)
if len(tags) == 0 {
@@ -46,17 +53,6 @@ func (e *Extractor) extractMetadata(filePath, info string) (metadata.ParsedTags,
return nil, errors.New("not a media file")
}
alternativeTags := map[string][]string{
"disc": {"tpa"},
"has_picture": {"metadata_block_picture"},
}
for tagName, alternatives := range alternativeTags {
for _, altName := range alternatives {
if altValue, ok := tags[altName]; ok {
tags[tagName] = append(tags[tagName], altValue...)
}
}
}
return tags, nil
}
@@ -186,17 +182,18 @@ func (e *Extractor) parseDuration(tag string) string {
}
func (e *Extractor) parseChannels(tag string) string {
if tag == "mono" {
switch tag {
case "mono":
return "1"
} else if tag == "stereo" {
case "stereo":
return "2"
} else if tag == "5.1" {
case "5.1":
return "6"
} else if tag == "7.1" {
case "7.1":
return "8"
default:
return "0"
}
return "0"
}
// Inputs will always be absolute paths
+2
View File
@@ -77,6 +77,8 @@ Input #0, ogg, from '/Users/deluan/Music/iTunes/iTunes Media/Music/_Testes/Jamai
metadata_block_picture: AAAAAwAAAAppbWFnZS9qcGVnAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4Id/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ
TITLE : Jamaican In New York (Album Version)`
md, _ := e.extractMetadata("tests/fixtures/test.mp3", output)
Expect(md).To(HaveKey("metadata_block_picture"))
md = md.Map(e.CustomMappings())
Expect(md).To(HaveKey("has_picture"))
})