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(); }
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); } }