mirror of
https://github.com/navidrome/navidrome.git
synced 2025-12-23 23:18:05 -05:00
refactor(scanner): refactor legacyReleaseDate logic and add tests for date mapping
Signed-off-by: Deluan <deluan@navidrome.org>
This commit is contained in:
@@ -23,7 +23,7 @@ func legacyTrackID(mf model.MediaFile, prependLibId bool) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func legacyAlbumID(mf model.MediaFile, md Metadata, prependLibId bool) string {
|
func legacyAlbumID(mf model.MediaFile, md Metadata, prependLibId bool) string {
|
||||||
releaseDate := legacyReleaseDate(md)
|
_, _, releaseDate := md.mapDates()
|
||||||
albumPath := strings.ToLower(fmt.Sprintf("%s\\%s", legacyMapAlbumArtistName(md), legacyMapAlbumName(md)))
|
albumPath := strings.ToLower(fmt.Sprintf("%s\\%s", legacyMapAlbumArtistName(md), legacyMapAlbumName(md)))
|
||||||
if !conf.Server.Scanner.GroupAlbumReleases {
|
if !conf.Server.Scanner.GroupAlbumReleases {
|
||||||
if len(releaseDate) != 0 {
|
if len(releaseDate) != 0 {
|
||||||
@@ -55,9 +55,3 @@ func legacyMapAlbumName(md Metadata) string {
|
|||||||
consts.UnknownAlbum,
|
consts.UnknownAlbum,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Keep the TaggedLikePicard logic for backwards compatibility
|
|
||||||
func legacyReleaseDate(md Metadata) string {
|
|
||||||
_, _, releaseDate := md.mapDates()
|
|
||||||
return string(releaseDate)
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
package metadata
|
|
||||||
|
|
||||||
import (
|
|
||||||
. "github.com/onsi/ginkgo/v2"
|
|
||||||
. "github.com/onsi/gomega"
|
|
||||||
)
|
|
||||||
|
|
||||||
var _ = Describe("legacyReleaseDate", func() {
|
|
||||||
|
|
||||||
DescribeTable("legacyReleaseDate",
|
|
||||||
func(recordingDate, originalDate, releaseDate, expected string) {
|
|
||||||
md := New("", Info{
|
|
||||||
Tags: map[string][]string{
|
|
||||||
"DATE": {recordingDate},
|
|
||||||
"ORIGINALDATE": {originalDate},
|
|
||||||
"RELEASEDATE": {releaseDate},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
result := legacyReleaseDate(md)
|
|
||||||
Expect(result).To(Equal(expected))
|
|
||||||
},
|
|
||||||
Entry("regular mapping", "2020-05-15", "2019-02-10", "2021-01-01", "2021-01-01"),
|
|
||||||
Entry("legacy mapping", "2020-05-15", "2019-02-10", "", "2020-05-15"),
|
|
||||||
Entry("legacy mapping, originalYear < year", "2018-05-15", "2019-02-10", "2021-01-01", "2021-01-01"),
|
|
||||||
Entry("legacy mapping, originalYear empty", "2020-05-15", "", "2021-01-01", "2021-01-01"),
|
|
||||||
Entry("legacy mapping, releaseYear", "2020-05-15", "2019-02-10", "2021-01-01", "2021-01-01"),
|
|
||||||
Entry("legacy mapping, same dates", "2020-05-15", "2020-05-15", "", "2020-05-15"),
|
|
||||||
)
|
|
||||||
})
|
|
||||||
@@ -75,6 +75,23 @@ var _ = Describe("ToMediaFile", func() {
|
|||||||
Expect(mf.OriginalYear).To(Equal(1966))
|
Expect(mf.OriginalYear).To(Equal(1966))
|
||||||
Expect(mf.ReleaseYear).To(Equal(2014))
|
Expect(mf.ReleaseYear).To(Equal(2014))
|
||||||
})
|
})
|
||||||
|
DescribeTable("legacyReleaseDate (TaggedLikePicard old behavior)",
|
||||||
|
func(recordingDate, originalDate, releaseDate, expected string) {
|
||||||
|
mf := toMediaFile(model.RawTags{
|
||||||
|
"DATE": {recordingDate},
|
||||||
|
"ORIGINALDATE": {originalDate},
|
||||||
|
"RELEASEDATE": {releaseDate},
|
||||||
|
})
|
||||||
|
|
||||||
|
Expect(mf.ReleaseDate).To(Equal(expected))
|
||||||
|
},
|
||||||
|
Entry("regular mapping", "2020-05-15", "2019-02-10", "2021-01-01", "2021-01-01"),
|
||||||
|
Entry("legacy mapping", "2020-05-15", "2019-02-10", "", "2020-05-15"),
|
||||||
|
Entry("legacy mapping, originalYear < year", "2018-05-15", "2019-02-10", "2021-01-01", "2021-01-01"),
|
||||||
|
Entry("legacy mapping, originalYear empty", "2020-05-15", "", "2021-01-01", "2021-01-01"),
|
||||||
|
Entry("legacy mapping, releaseYear", "2020-05-15", "2019-02-10", "2021-01-01", "2021-01-01"),
|
||||||
|
Entry("legacy mapping, same dates", "2020-05-15", "2020-05-15", "", "2020-05-15"),
|
||||||
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
Describe("Lyrics", func() {
|
Describe("Lyrics", func() {
|
||||||
|
|||||||
Reference in New Issue
Block a user