|
|
@ -45,6 +45,7 @@ type Config struct { |
|
|
|
AlacSaveFolder string `yaml:"alac-save-folder"` |
|
|
|
AlacSaveFolder string `yaml:"alac-save-folder"` |
|
|
|
AtmosSaveFolder string `yaml:"atmos-save-folder"` |
|
|
|
AtmosSaveFolder string `yaml:"atmos-save-folder"` |
|
|
|
AlbumFolderFormat string `yaml:"album-folder-format"` |
|
|
|
AlbumFolderFormat string `yaml:"album-folder-format"` |
|
|
|
|
|
|
|
PlaylistFolderFormat string `yaml:"playlist-folder-format"` |
|
|
|
ArtistFolderFormat string `yaml:"artist-folder-format"` |
|
|
|
ArtistFolderFormat string `yaml:"artist-folder-format"` |
|
|
|
SongFileFormat string `yaml:"song-file-format"` |
|
|
|
SongFileFormat string `yaml:"song-file-format"` |
|
|
|
ExplicitChoice string `yaml:"explicit-choice"` |
|
|
|
ExplicitChoice string `yaml:"explicit-choice"` |
|
|
@ -1123,10 +1124,18 @@ func rip(albumId string, token string, storefront string, userToken string) erro |
|
|
|
} |
|
|
|
} |
|
|
|
singerFolder:="" |
|
|
|
singerFolder:="" |
|
|
|
if config.ArtistFolderFormat != ""{ |
|
|
|
if config.ArtistFolderFormat != ""{ |
|
|
|
singerFoldername := strings.NewReplacer( |
|
|
|
var singerFoldername string |
|
|
|
|
|
|
|
if strings.Contains(albumId, "pl.") { |
|
|
|
|
|
|
|
singerFoldername = strings.NewReplacer( |
|
|
|
|
|
|
|
"{ArtistName}", "Apple Music", |
|
|
|
|
|
|
|
"{ArtistId}", "", |
|
|
|
|
|
|
|
).Replace(config.ArtistFolderFormat) |
|
|
|
|
|
|
|
}else{ |
|
|
|
|
|
|
|
singerFoldername = strings.NewReplacer( |
|
|
|
"{ArtistName}", meta.Data[0].Attributes.ArtistName, |
|
|
|
"{ArtistName}", meta.Data[0].Attributes.ArtistName, |
|
|
|
"{ArtistId}", meta.Data[0].Relationships.Artists.Data[0].ID, |
|
|
|
"{ArtistId}", meta.Data[0].Relationships.Artists.Data[0].ID, |
|
|
|
).Replace(config.ArtistFolderFormat) |
|
|
|
).Replace(config.ArtistFolderFormat) |
|
|
|
|
|
|
|
} |
|
|
|
if strings.HasSuffix(singerFoldername, ".") { |
|
|
|
if strings.HasSuffix(singerFoldername, ".") { |
|
|
|
singerFoldername = strings.ReplaceAll(singerFoldername, ".", "") |
|
|
|
singerFoldername = strings.ReplaceAll(singerFoldername, ".", "") |
|
|
|
} |
|
|
|
} |
|
|
@ -1134,7 +1143,16 @@ func rip(albumId string, token string, storefront string, userToken string) erro |
|
|
|
fmt.Println(singerFoldername) |
|
|
|
fmt.Println(singerFoldername) |
|
|
|
singerFolder = filepath.Join(config.AlacSaveFolder, forbiddenNames.ReplaceAllString(singerFoldername, "_")) |
|
|
|
singerFolder = filepath.Join(config.AlacSaveFolder, forbiddenNames.ReplaceAllString(singerFoldername, "_")) |
|
|
|
} |
|
|
|
} |
|
|
|
albumFolder := strings.NewReplacer( |
|
|
|
var albumFolder string |
|
|
|
|
|
|
|
if strings.Contains(albumId, "pl.") { |
|
|
|
|
|
|
|
albumFolder = strings.NewReplacer( |
|
|
|
|
|
|
|
"{ArtistName}", "Apple Music", |
|
|
|
|
|
|
|
"{PlaylistName}", meta.Data[0].Attributes.Name, |
|
|
|
|
|
|
|
"{PlaylistId}", albumId, |
|
|
|
|
|
|
|
"{Quality}","Atmos", |
|
|
|
|
|
|
|
).Replace(config.PlaylistFolderFormat) |
|
|
|
|
|
|
|
}else{ |
|
|
|
|
|
|
|
albumFolder = strings.NewReplacer( |
|
|
|
"{ReleaseDate}", meta.Data[0].Attributes.ReleaseDate, |
|
|
|
"{ReleaseDate}", meta.Data[0].Attributes.ReleaseDate, |
|
|
|
"{ReleaseYear}", meta.Data[0].Attributes.ReleaseDate[:4], |
|
|
|
"{ReleaseYear}", meta.Data[0].Attributes.ReleaseDate[:4], |
|
|
|
"{ArtistName}", meta.Data[0].Attributes.ArtistName, |
|
|
|
"{ArtistName}", meta.Data[0].Attributes.ArtistName, |
|
|
@ -1142,8 +1160,9 @@ func rip(albumId string, token string, storefront string, userToken string) erro |
|
|
|
"{UPC}", meta.Data[0].Attributes.Upc, |
|
|
|
"{UPC}", meta.Data[0].Attributes.Upc, |
|
|
|
"{Copyright}", meta.Data[0].Attributes.Copyright, |
|
|
|
"{Copyright}", meta.Data[0].Attributes.Copyright, |
|
|
|
"{AlbumId}", albumId, |
|
|
|
"{AlbumId}", albumId, |
|
|
|
"{Quality}","", |
|
|
|
"{Quality}","Atmos", |
|
|
|
).Replace(config.AlbumFolderFormat) |
|
|
|
).Replace(config.AlbumFolderFormat) |
|
|
|
|
|
|
|
} |
|
|
|
if meta.Data[0].Attributes.IsMasteredForItunes{ |
|
|
|
if meta.Data[0].Attributes.IsMasteredForItunes{ |
|
|
|
if config.AppleMasterChoice != ""{ |
|
|
|
if config.AppleMasterChoice != ""{ |
|
|
|
albumFolder = fmt.Sprintf("%s %s", albumFolder,config.AppleMasterChoice) |
|
|
|
albumFolder = fmt.Sprintf("%s %s", albumFolder,config.AppleMasterChoice) |
|
|
@ -1159,7 +1178,6 @@ func rip(albumId string, token string, storefront string, userToken string) erro |
|
|
|
albumFolder = fmt.Sprintf("%s %s", albumFolder,config.CleanChoice) |
|
|
|
albumFolder = fmt.Sprintf("%s %s", albumFolder,config.CleanChoice) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
albumFolder = fmt.Sprintf("%s [Atmos]", albumFolder) |
|
|
|
|
|
|
|
if strings.HasSuffix(albumFolder, ".") { |
|
|
|
if strings.HasSuffix(albumFolder, ".") { |
|
|
|
albumFolder = strings.ReplaceAll(albumFolder, ".", "") |
|
|
|
albumFolder = strings.ReplaceAll(albumFolder, ".", "") |
|
|
|
} |
|
|
|
} |
|
|
|