コード例 #1
0
ファイル: CliWorker.cs プロジェクト: ogrishman/NLyric
        /// <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));
        }
コード例 #2
0
ファイル: NLyricImpl.cs プロジェクト: ljxinternet/NLyric
 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();
 }
コード例 #3
0
ファイル: CliWorker.cs プロジェクト: ogrishman/NLyric
        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);
        }
コード例 #4
0
ファイル: CliWorker.cs プロジェクト: ogrishman/NLyric
        /// <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));
        }
コード例 #5
0
ファイル: CliWorker.cs プロジェクト: ogrishman/NLyric
        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);
        }
コード例 #6
0
        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();
        }