clean up scanner func order
This commit is contained in:
@@ -283,8 +283,7 @@ func (s *Scanner) handleTrack(it *item) error {
|
|||||||
// set album if this is the first track in the folder
|
// set album if this is the first track in the folder
|
||||||
folder := s.curFolder()
|
folder := s.curFolder()
|
||||||
if !folder.ReceivedPaths || folder.ReceivedTags {
|
if !folder.ReceivedPaths || folder.ReceivedTags {
|
||||||
// the folder hasn't been modified
|
// the folder hasn't been modified or already has it's tags
|
||||||
// or already has it's tags
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
folder.TagTitle = tags.Album()
|
folder.TagTitle = tags.Album()
|
||||||
|
|||||||
@@ -8,6 +8,31 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type tags struct {
|
||||||
|
map_ map[string]string
|
||||||
|
props *audiotags.AudioProperties
|
||||||
|
}
|
||||||
|
|
||||||
|
func readTags(path string) (*tags, error) {
|
||||||
|
map_, props, err := audiotags.Read(path)
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.Wrap(err, "audiotags module")
|
||||||
|
}
|
||||||
|
return &tags{
|
||||||
|
map_: map_,
|
||||||
|
props: props,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *tags) firstTag(keys ...string) string {
|
||||||
|
for _, key := range keys {
|
||||||
|
if val, ok := t.map_[key]; ok {
|
||||||
|
return val
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
func intSep(in, sep string) int {
|
func intSep(in, sep string) int {
|
||||||
if in == "" {
|
if in == "" {
|
||||||
return 0
|
return 0
|
||||||
@@ -20,20 +45,6 @@ func intSep(in, sep string) int {
|
|||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
type tags struct {
|
|
||||||
map_ map[string]string
|
|
||||||
props *audiotags.AudioProperties
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *tags) firstTag(keys ...string) string {
|
|
||||||
for _, key := range keys {
|
|
||||||
if val, ok := t.map_[key]; ok {
|
|
||||||
return val
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *tags) Title() string { return t.firstTag("title") }
|
func (t *tags) Title() string { return t.firstTag("title") }
|
||||||
func (t *tags) Artist() string { return t.firstTag("artist") }
|
func (t *tags) Artist() string { return t.firstTag("artist") }
|
||||||
func (t *tags) Album() string { return t.firstTag("album") }
|
func (t *tags) Album() string { return t.firstTag("album") }
|
||||||
@@ -43,14 +54,3 @@ func (t *tags) TrackNumber() int { return intSep(t.firstTag("tracknumber"), "
|
|||||||
func (t *tags) DiscNumber() int { return intSep(t.firstTag("discnumber"), "/") } // eg. 1/2
|
func (t *tags) DiscNumber() int { return intSep(t.firstTag("discnumber"), "/") } // eg. 1/2
|
||||||
func (t *tags) Length() int { return t.props.Length }
|
func (t *tags) Length() int { return t.props.Length }
|
||||||
func (t *tags) Bitrate() int { return t.props.Bitrate }
|
func (t *tags) Bitrate() int { return t.props.Bitrate }
|
||||||
|
|
||||||
func readTags(path string) (*tags, error) {
|
|
||||||
map_, props, err := audiotags.Read(path)
|
|
||||||
if err != nil {
|
|
||||||
return nil, errors.Wrap(err, "audiotags module")
|
|
||||||
}
|
|
||||||
return &tags{
|
|
||||||
map_: map_,
|
|
||||||
props: props,
|
|
||||||
}, nil
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user