trimmed down metadata & own extractor for vobis(flac)
This commit is contained in:
@@ -11,18 +11,27 @@ import (
|
||||
)
|
||||
|
||||
type Metadata struct {
|
||||
Title string
|
||||
Title *string
|
||||
Artist []string
|
||||
Album string
|
||||
Album *string
|
||||
AlbumArtist []string
|
||||
Track int
|
||||
TotalTracks int
|
||||
Disc int
|
||||
TotalDiscs int
|
||||
Comment string
|
||||
Comment *string
|
||||
}
|
||||
|
||||
func ReadAudioTags(filePath string) (*Metadata, error) {
|
||||
ext := strings.ToLower(filepath.Ext(filePath))
|
||||
|
||||
switch {
|
||||
case ext == ".flac":
|
||||
return readVorbisMetadata(filePath)
|
||||
default:
|
||||
return readGenericAudioTags(filePath)
|
||||
}
|
||||
}
|
||||
|
||||
func readGenericAudioTags(filePath string) (*Metadata, error) {
|
||||
f, err := os.Open(filePath)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to open file: %w", err)
|
||||
@@ -35,18 +44,19 @@ func ReadAudioTags(filePath string) (*Metadata, error) {
|
||||
}
|
||||
|
||||
track, totalTracks := m.Track()
|
||||
disc, totalDiscs := m.Disc()
|
||||
|
||||
title := m.Title()
|
||||
album := m.Album()
|
||||
comment := m.Comment()
|
||||
|
||||
info := &Metadata{
|
||||
Title: m.Title(),
|
||||
Title: &title,
|
||||
Artist: parseSeperatedTag(m.Artist()),
|
||||
Album: m.Album(),
|
||||
Album: &album,
|
||||
AlbumArtist: parseSeperatedTag(m.AlbumArtist()),
|
||||
Track: track,
|
||||
TotalTracks: totalTracks,
|
||||
Disc: disc,
|
||||
TotalDiscs: totalDiscs,
|
||||
Comment: m.Comment(),
|
||||
Comment: &comment,
|
||||
}
|
||||
|
||||
return info, nil
|
||||
|
||||
Reference in New Issue
Block a user