Extract all id3 frames from file
This commit is contained in:
@@ -79,7 +79,7 @@ func (m *baseMetadata) Composer() string { return m.getTag("composer", "t
|
|||||||
func (m *baseMetadata) Genre() string { return m.getTag("genre") }
|
func (m *baseMetadata) Genre() string { return m.getTag("genre") }
|
||||||
func (m *baseMetadata) Year() int { return m.parseYear("date") }
|
func (m *baseMetadata) Year() int { return m.parseYear("date") }
|
||||||
func (m *baseMetadata) Comment() string { return m.getTag("comment") }
|
func (m *baseMetadata) Comment() string { return m.getTag("comment") }
|
||||||
func (m *baseMetadata) Compilation() bool { return m.parseBool("compilation") }
|
func (m *baseMetadata) Compilation() bool { return m.parseBool("tcmp", "compilation") }
|
||||||
func (m *baseMetadata) TrackNumber() (int, int) { return m.parseTuple("track", "tracknumber") }
|
func (m *baseMetadata) TrackNumber() (int, int) { return m.parseTuple("track", "tracknumber") }
|
||||||
func (m *baseMetadata) DiscNumber() (int, int) { return m.parseTuple("disc", "discnumber") }
|
func (m *baseMetadata) DiscNumber() (int, int) { return m.parseTuple("disc", "discnumber") }
|
||||||
func (m *baseMetadata) DiscSubtitle() string {
|
func (m *baseMetadata) DiscSubtitle() string {
|
||||||
@@ -168,10 +168,12 @@ func (m *baseMetadata) parseTuple(tags ...string) (int, int) {
|
|||||||
return 0, 0
|
return 0, 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *baseMetadata) parseBool(tagName string) bool {
|
func (m *baseMetadata) parseBool(tags ...string) bool {
|
||||||
if v, ok := m.tags[tagName]; ok {
|
for _, tagName := range tags {
|
||||||
i, _ := strconv.Atoi(strings.TrimSpace(v))
|
if v, ok := m.tags[tagName]; ok {
|
||||||
return i == 1
|
i, _ := strconv.Atoi(strings.TrimSpace(v))
|
||||||
|
return i == 1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,10 +57,10 @@ int taglib_read(const char *filename, unsigned long id) {
|
|||||||
if (mp3File->ID3v2Tag()) {
|
if (mp3File->ID3v2Tag()) {
|
||||||
const auto &frameListMap(mp3File->ID3v2Tag()->frameListMap());
|
const auto &frameListMap(mp3File->ID3v2Tag()->frameListMap());
|
||||||
|
|
||||||
if (!frameListMap["TCMP"].isEmpty())
|
for (const auto &[name, values] : frameListMap) {
|
||||||
tags.insert("compilation", frameListMap["TCMP"].front()->toString());
|
if (!values.isEmpty())
|
||||||
if (!frameListMap["TSST"].isEmpty())
|
tags.insert(name, values.front()->toString());
|
||||||
tags.insert("discsubtitle", frameListMap["TSST"].front()->toString());
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user