Exemplo n.º 1
0
 public static AutoSourceProvider FindDefaultImplsToCreate() => new AutoSourceProvider(
     SourceProviderManager.LyricsSourceProvidersTypes
     .Select(x => x.GetCustomAttribute <SourceProviderNameAttribute>())
     .OfType <SourceProviderNameAttribute>()
     .Where(x => !x.Name.Equals("auto", StringComparison.InvariantCultureIgnoreCase))
     .Select(x => SourceProviderManager.GetOrCreateSourceProvier(x.Name))
     .ToArray());
 public AutoSourceProvider()
 {
     search_engines = SourceProviderManager.LyricsSourceProvidersType
                      .Select(x => x.GetCustomAttribute <SourceProviderNameAttribute>())
                      .OfType <SourceProviderNameAttribute>()
                      .Where(x => !x.Name.Equals("auto", StringComparison.InvariantCultureIgnoreCase))
                      .Select(x => SourceProviderManager.GetOrCreateSourceProvier(x.Name))
                      .ToArray();
 }
Exemplo n.º 3
0
        async static Task Main(string[] args)
        {
            GlobalSetting.DebugMode = true;

            SourceProviderManager.LoadDefaultProviders();
            //var provider = AutoSourceProvider.FindDefaultImplsToCreate();
            var provider = new XiamiSourceProvider();
            var result   = await provider.ProvideLyricAsync("Leaf", "時の魔法", 321036, false);
        }
        private void Init()
        {
            Setting.DebugMode  = bool.Parse(DebugMode);
            Setting.BothLyrics = bool.Parse(BothLyrics);
            Setting.EnableOutputSearchResult = bool.Parse(EnableOutputSearchResult);
            Setting.PreferTranslateLyrics    = bool.Parse(PreferTranslateLyrics);
            Setting.LyricsSource             = LyricsSource;
            Setting.LyricsSentenceOutputPath = LyricsSentenceOutputPath;
            Setting.SearchAndDownloadTimeout = int.Parse(SearchAndDownloadTimeout);
            Setting.GobalTimeOffset          = int.Parse(GobalTimeOffset);
            Setting.ForceKeepTime            = uint.Parse(ForceKeepTime);
            Setting.StrictMatch            = bool.Parse(StrictMatch);
            Setting.UseStaticLyricsCombine = bool.Parse(UseStaticLyricsCombine);

            if (Setting.PreferTranslateLyrics)
            {
                Utils.Output("优先选择翻译歌词", ConsoleColor.Green);
            }

            Utils.Debug("调试模式已开启");

            //初始化歌词源管理器,从所有dll里面获取可用的歌词源
            ScanAvaliableLyricsSourceProvider();

            //加载指定的歌词源
            lyrics_provider = SourceProviderManager.GetOrCreateSourceProvier(LyricsSource);

            if (lyrics_provider == null)
            {
                Utils.Output("未知歌词源:" + LyricsSource, ConsoleColor.Red);
            }

            Utils.Output($"已选择歌词源:({LyricsSource}){lyrics_provider.GetType().Name}", ConsoleColor.Green);

            output = OutputBase.Create(LyricsSentenceOutputPath);
            if (output is MemoryMappedFileOutput mmf)
            {
                Utils.Output($"歌词文本将输出到内存映射文件:{mmf.FilePath.Replace(MemoryMappedFileOutput.MMF_FORMAT,"")}", ConsoleColor.Green);
            }
        }