/// <summary> /// 获取网易云音乐上的专辑 /// </summary> /// <param name="album"></param> /// <param name="withArtists">是否带艺术家搜索</param> /// <returns></returns> private static async Task <NcmAlbum> MapToAsync(Album album, bool withArtists) { NcmAlbum[] ncmAlbums; ncmAlbums = (await CloudMusic.SearchAlbumAsync(album, _searchSettings.Limit, withArtists)).Where(t => ComputeSimilarity(t.Name, album.Name, false) != 0).ToArray(); return(MatchByUser(ncmAlbums, album)); }
private static async Task LoginIfNeedAsync(Arguments arguments) { if (string.IsNullOrEmpty(arguments.Account) || string.IsNullOrEmpty(arguments.Password)) { for (int i = 0; i < 3; i++) { Logger.Instance.LogInfo("登录可避免出现大部分API错误!!!当前是免登录状态,若软件出错请尝试登录!!!", ConsoleColor.Green); } Logger.Instance.LogInfo("强烈建议登录使用软件:\"NLyric.exe -d C:\\Music -a [email protected] -p 123456\"", ConsoleColor.Green); } else { Logger.Instance.LogInfo("登录中...", ConsoleColor.Green); if (await CloudMusic.LoginAsync(arguments.Account, arguments.Password)) { Logger.Instance.LogInfo("登录成功!", ConsoleColor.Green); } else { Logger.Instance.LogError("登录失败,输入任意键以免登录模式运行或重新运行尝试再次登录!"); try { Console.ReadKey(true); } catch { } } } Logger.Instance.LogNewLine(); }
private static async Task <NcmLyric> GetLyricAsync(int trackId) { NcmLyric lyric; if (!_cachedNcmLyrics.TryGetValue(trackId, out lyric)) { lyric = await CloudMusic.GetLyricAsync(trackId); _cachedNcmLyrics[trackId] = lyric; } return(lyric); }
/// <summary> /// 获取网易云音乐上的歌曲 /// </summary> /// <param name="track"></param> /// <param name="withArtists">是否带艺术家搜索</param> /// <returns></returns> private static async Task <NcmTrack> MapToAsync(Track track, bool withArtists) { List <NcmTrack> list; NcmTrack[] ncmTracks; list = new List <NcmTrack>(); foreach (NcmTrack item in (await CloudMusic.SearchTrackAsync(track, _searchSettings.Limit, withArtists)).Where(t => ComputeSimilarity(t.Name, track.Name, false) != 0)) { if ((await GetLyricAsync(item.Id)).IsCollected) { list.Add(item); } } ncmTracks = list.ToArray(); return(MatchByUser(ncmTracks, track)); }
private static async Task <NcmTrack[]> GetTracksAsync(NcmAlbum ncmAlbum) { NcmTrack[] ncmTracks; if (!_cachedNcmTrackses.TryGetValue(ncmAlbum.Id, out ncmTracks)) { List <NcmTrack> list; list = new List <NcmTrack>(); foreach (NcmTrack item in await CloudMusic.GetTracksAsync(ncmAlbum.Id)) { if ((await GetLyricAsync(item.Id)).IsCollected) { list.Add(item); } } ncmTracks = list.ToArray(); _cachedNcmTrackses[ncmAlbum.Id] = ncmTracks; } return(ncmTracks); }
private static async Task LoginIfNeedAsync() { do { string userInput; Logger.Instance.LogInfo("如果需要登录,请输入Y,反之输入N"); userInput = Console.ReadLine().Trim().ToUpperInvariant(); if (userInput == "Y") { string account; string password; Console.WriteLine("请输入账号"); account = Console.ReadLine(); Console.WriteLine("请输入密码"); password = Console.ReadLine(); if (await CloudMusic.LoginAsync(account, password)) { Logger.Instance.LogInfo("登录成功", ConsoleColor.Green); break; } else { Logger.Instance.LogError("登录失败,请重试"); Logger.Instance.LogNewLine(); } } else if (userInput == "N") { break; } else { Logger.Instance.LogWarning("输入有误,请重新输入!"); } } while (true); Logger.Instance.LogNewLine(); }