func CompareTrackList(cli UserData) {
	if len(cachedSongList) <= 0 {
		fmt.Println("No twitch sings cached yet, reading from disk or remote...")
		CachedTwitchGetSongs(true)
	}
	fmt.Println("Found", len(cli.TrackList), "tracks")
	fmt.Println("Searching and downloading tracks")
	uiprogress.Start()
	bar := uiprogress.AddBar(len(cli.TrackList))

	bar.AppendCompleted()
	bar.PrependFunc(func(b *uiprogress.Bar) string {
		if b.Current() == len(cli.TrackList) {
			return "   🔍 " + strutil.Resize("Search complete", 30)
		}
		return "   🔍 " + strutil.Resize(cli.TrackList[b.Current()].Name, 30)
	})
	uiprogress.Stop()
	fmt.Println("Tracks : ")
	for _, val := range cli.TrackList {
		artists := []string{}
		for _, artistforname := range val.Artists {
			artists = append(artists, artistforname.Name)
		}
		matchKind, twitchSingsSong := SpotifyListContains(val.Name, artists)
		if matchKind != MatchNoMatch {
			fmt.Print(twitchSingsSong.Name + " by " + twitchSingsSong.Artist + " matches ")
			if matchKind == MatchBothNameAndArtist {
				fmt.Println("both track name and artist")
			} else {
				fmt.Println("just track name")
			}
		}
	}
}
// CompareTrackList Start downloading given list of tracks
CompareTrackList Start downloading given list of tracks
// CompareTrackList Start downloading given list of tracks
func CompareTrackList(cli UserData) {
	if len(cachedSongList) <= 0 {
		fmt.Println("No twitch sings cached yet, reading from disk or remote...")
		CachedTwitchGetSongs(true)
	}
	fmt.Println("Found", len(cli.TrackList), "tracks")
	fmt.Println("Searching and downloading tracks")
	uiprogress.Start()
	bar := uiprogress.AddBar(len(cli.TrackList))
	bar.AppendCompleted()
	bar.PrependFunc(func(b *uiprogress.Bar) string {
		if b.Current() == len(cli.TrackList) {
			return "   🔍 " + strutil.Resize("Search complete", 30)
		}
		return "   🔍 " + strutil.Resize(cli.TrackList[b.Current()].Name, 30)
	})
	uiprogress.Stop()
	fmt.Println("Tracks : ")
	for _, val := range cli.TrackList {
		artists := []string{}
		for _, artistforname := range val.Artists {
			artists = append(artists, artistforname.Name)
		}
		matchKind, twitchSingsSong := SpotifyListContains(val.Name, artists)
		if matchKind != MatchNoMatch {
			fmt.Print(twitchSingsSong.Name + " by " + twitchSingsSong.Artist + " matches ")
			if matchKind == MatchBothNameAndArtist {
				fmt.Println("both track name and artist")
			} else {
				fmt.Println("just track name")
			}
		}
	}
}
func CompareTrackList ( cli UserData ) { if len ( cachedSongList ) <= 0 { fmt . Println ( " " ) CachedTwitchGetSongs ( true ) } fmt . Println ( " " , len ( cli . TrackList ) , " " ) fmt . Println ( " " ) uiprogress . Start ( ) bar := uiprogress . AddBar ( len ( cli . TrackList ) ) bar . AppendCompleted ( ) bar . PrependFunc ( func ( b * uiprogress . Bar ) string { if b . Current ( ) == len ( cli . TrackList ) { return " t util.Re s ize("S e a 3 0 } return " t util.Re s ize(cl i .Tr a ckList[b. C u r rent()] . N a m e, 3 0 } ) uiprogress . Stop ( ) fmt . Println ( " " ) for _ , val := range cli . TrackList { artists := [ ] string { } for _ , artistforname := range val . Artists { artists = append ( artists , artistforname . Name ) } matchKind , twitchSingsSong := SpotifyListContains ( val . Name , artists ) if matchKind != MatchNoMatch { fmt . Print ( twitchSingsSong . Name + " " + twitchSingsSong . Artist + " " ) if matchKind == MatchBothNameAndArtist { fmt . Println ( " " ) } else { fmt . Println ( " " ) } } } }
CompareTrackList Start downloading given list of tracks
CompareTrackList Start downloading given list of tracks