Use the primary artist for upload destination folders
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
3edbf489a3
commit
5d0decbb2a
3 files changed
+19
-2
No files matched your search
@@ -81,6 +81,17 @@ type Meta struct {
|
||||
Disc *int `json:"disc,omitempty"`
|
||||
}
|
||||
|
||||
// PrimaryArtist — первый исполнитель альбома (при пустом album artist — трека; « & » имя не делит): «A;B» и «A feat. B»
|
||||
// лежат в папке «A», как и в каталоге, где альбом принадлежит первому исполнителю.
|
||||
func (m Meta) PrimaryArtist() string {
|
||||
for _, field := range []string{m.AlbumArtist, m.Artist} {
|
||||
if credits := meta.SplitArtists(field, func(string) bool { return true }); len(credits) > 0 {
|
||||
return credits[0].Name
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// Fields — значения для шаблона пути.
|
||||
func (m Meta) Fields() meta.Fields {
|
||||
num := func(p *int) string {
|
||||
@@ -90,7 +101,7 @@ func (m Meta) Fields() meta.Fields {
|
||||
return strconv.Itoa(*p)
|
||||
}
|
||||
return meta.Fields{
|
||||
Artist: m.Artist, AlbumArtist: m.AlbumArtist, Album: m.Album, Title: m.Title, Genre: m.Genre,
|
||||
Artist: m.Artist, AlbumArtist: m.PrimaryArtist(), Album: m.Album, Title: m.Title, Genre: m.Genre,
|
||||
Year: num(m.Year), Track: num(m.Track), Disc: num(m.Disc),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user