mirror of
https://github.com/zhaarey/apple-music-downloader.git
synced 2025-10-23 15:11:05 +00:00
Update track existence checks in ripTrack function
This commit is contained in:
29
main.go
29
main.go
@@ -754,10 +754,12 @@ func ripTrack(track *task.Track, token string, mediaUserToken string) {
|
|||||||
var err error
|
var err error
|
||||||
counter.Total++
|
counter.Total++
|
||||||
fmt.Printf("Track %d of %d: %s\n", track.TaskNum, track.TaskTotal, track.Type)
|
fmt.Printf("Track %d of %d: %s\n", track.TaskNum, track.TaskTotal, track.Type)
|
||||||
|
|
||||||
//提前获取到的播放列表下track所在的专辑信息
|
//提前获取到的播放列表下track所在的专辑信息
|
||||||
if track.PreType == "playlists" && Config.UseSongInfoForPlaylist {
|
if track.PreType == "playlists" && Config.UseSongInfoForPlaylist {
|
||||||
track.GetAlbumData(token)
|
track.GetAlbumData(token)
|
||||||
}
|
}
|
||||||
|
|
||||||
//mv dl dev
|
//mv dl dev
|
||||||
if track.Type == "music-videos" {
|
if track.Type == "music-videos" {
|
||||||
if len(mediaUserToken) <= 50 {
|
if len(mediaUserToken) <= 50 {
|
||||||
@@ -779,6 +781,7 @@ func ripTrack(track *task.Track, token string, mediaUserToken string) {
|
|||||||
counter.Success++
|
counter.Success++
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
needDlAacLc := false
|
needDlAacLc := false
|
||||||
if dl_aac && Config.AacType == "aac-lc" {
|
if dl_aac && Config.AacType == "aac-lc" {
|
||||||
needDlAacLc = true
|
needDlAacLc = true
|
||||||
@@ -858,6 +861,17 @@ func ripTrack(track *task.Track, token string, mediaUserToken string) {
|
|||||||
trackPath := filepath.Join(track.SaveDir, track.SaveName)
|
trackPath := filepath.Join(track.SaveDir, track.SaveName)
|
||||||
lrcFilename := fmt.Sprintf("%s.%s", forbiddenNames.ReplaceAllString(songName, "_"), Config.LrcFormat)
|
lrcFilename := fmt.Sprintf("%s.%s", forbiddenNames.ReplaceAllString(songName, "_"), Config.LrcFormat)
|
||||||
|
|
||||||
|
// Determine possible post-conversion target file (so we can skip re-download)
|
||||||
|
var convertedPath string
|
||||||
|
considerConverted := false
|
||||||
|
if Config.ConvertAfterDownload &&
|
||||||
|
Config.ConvertFormat != "" &&
|
||||||
|
strings.ToLower(Config.ConvertFormat) != "copy" &&
|
||||||
|
!Config.ConvertKeepOriginal {
|
||||||
|
convertedPath = strings.TrimSuffix(trackPath, filepath.Ext(trackPath)) + "." + strings.ToLower(Config.ConvertFormat)
|
||||||
|
considerConverted = true
|
||||||
|
}
|
||||||
|
|
||||||
//get lrc
|
//get lrc
|
||||||
var lrc string = ""
|
var lrc string = ""
|
||||||
if Config.EmbedLrc || Config.SaveLrcFile {
|
if Config.EmbedLrc || Config.SaveLrcFile {
|
||||||
@@ -877,16 +891,27 @@ func ripTrack(track *task.Track, token string, mediaUserToken string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
exists, err := fileExists(trackPath)
|
// Existence check now considers converted output (if original was deleted)
|
||||||
|
existsOriginal, err := fileExists(trackPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Failed to check if track exists.")
|
fmt.Println("Failed to check if track exists.")
|
||||||
}
|
}
|
||||||
if exists {
|
if existsOriginal {
|
||||||
fmt.Println("Track already exists locally.")
|
fmt.Println("Track already exists locally.")
|
||||||
counter.Success++
|
counter.Success++
|
||||||
okDict[track.PreID] = append(okDict[track.PreID], track.TaskNum)
|
okDict[track.PreID] = append(okDict[track.PreID], track.TaskNum)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if considerConverted {
|
||||||
|
existsConverted, err2 := fileExists(convertedPath)
|
||||||
|
if err2 == nil && existsConverted {
|
||||||
|
fmt.Println("Converted track already exists locally.")
|
||||||
|
counter.Success++
|
||||||
|
okDict[track.PreID] = append(okDict[track.PreID], track.TaskNum)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if needDlAacLc {
|
if needDlAacLc {
|
||||||
if len(mediaUserToken) <= 50 {
|
if len(mediaUserToken) <= 50 {
|
||||||
fmt.Println("Invalid media-user-token")
|
fmt.Println("Invalid media-user-token")
|
||||||
|
|||||||
Reference in New Issue
Block a user