mirror of
https://github.com/jayfunc/BetterLyrics.git
synced 2026-01-12 19:08:33 +08:00
- 将 `Package.appxmanifest` 的版本号更新为 `1.0.71.0`。 - 移除 `BetterLyrics.WinUI3.csproj` 中对 `TinyPinyin.Net` 的引用。 - 在 `PlaybackSettingsControl.xaml` 中更新目标语言选择,移除中文选项并添加多个新语言。 - 新增 Apple Music 令牌输入框和按钮,允许用户保存令牌。 - 在 `LyricsSearchProviderToDisplayNameConverter.cs` 和 `TranslationSearchProviderToDisplayNameConverter.cs` 中添加对 Apple Music 的支持。 - 在 `LyricsSearchProvider.cs` 中新增 `AppleMusic` 作为歌词搜索提供者,并添加相关缓存目录和格式。 - 更新 `LanguageHelper.cs` 中的目标语言列表。 - 将 `TranslationSettings.cs` 中的 `SelectedTargetLanguageIndex` 属性更改为 `SelectedTargetLanguageCode`。 - 在 `LyricsSearchService.cs` 中添加 Apple Music 的歌词搜索功能。 - 更新 `MediaSessionsService.cs` 中的翻译和歌词更新逻辑。 - 移除 `SettingsPageViewModel.cs` 中的库信息支持,添加对媒体会话服务的引用。 - 新增 `AppleMusic.cs` 文件,包含与 Apple Music API 交互的逻辑。
87 lines
3.5 KiB
C#
87 lines
3.5 KiB
C#
// 2025/6/23 by Zhe Fang
|
|
|
|
using BetterLyrics.WinUI3.Helper;
|
|
|
|
namespace BetterLyrics.WinUI3.Enums
|
|
{
|
|
public enum LyricsSearchProvider
|
|
{
|
|
QQ,
|
|
Kugou,
|
|
Netease,
|
|
LrcLib,
|
|
AmllTtmlDb,
|
|
LocalMusicFile,
|
|
LocalLrcFile,
|
|
LocalEslrcFile,
|
|
LocalTtmlFile,
|
|
AppleMusic,
|
|
}
|
|
|
|
public static class LyricsSearchProviderExtensions
|
|
{
|
|
public static string GetCacheDirectory(this LyricsSearchProvider provider)
|
|
{
|
|
return provider switch
|
|
{
|
|
LyricsSearchProvider.LrcLib => PathHelper.LrcLibLyricsCacheDirectory,
|
|
LyricsSearchProvider.QQ => PathHelper.QQLyricsCacheDirectory,
|
|
LyricsSearchProvider.Netease => PathHelper.NeteaseLyricsCacheDirectory,
|
|
LyricsSearchProvider.Kugou => PathHelper.KugouLyricsCacheDirectory,
|
|
LyricsSearchProvider.AmllTtmlDb => PathHelper.AmllTtmlDbLyricsCacheDirectory,
|
|
LyricsSearchProvider.AppleMusic => PathHelper.AppleMusicCacheDirectory,
|
|
_ => throw new System.ArgumentOutOfRangeException(nameof(provider)),
|
|
};
|
|
}
|
|
|
|
public static LyricsFormat GetLyricsFormat(this LyricsSearchProvider provider)
|
|
{
|
|
return provider switch
|
|
{
|
|
LyricsSearchProvider.LrcLib => LyricsFormat.Lrc,
|
|
LyricsSearchProvider.QQ => LyricsFormat.Qrc,
|
|
LyricsSearchProvider.Kugou => LyricsFormat.Krc,
|
|
LyricsSearchProvider.Netease => LyricsFormat.Lrc,
|
|
LyricsSearchProvider.AmllTtmlDb => LyricsFormat.Ttml,
|
|
LyricsSearchProvider.AppleMusic => LyricsFormat.Ttml,
|
|
LyricsSearchProvider.LocalLrcFile => LyricsFormat.Lrc,
|
|
LyricsSearchProvider.LocalEslrcFile => LyricsFormat.Eslrc,
|
|
LyricsSearchProvider.LocalTtmlFile => LyricsFormat.Ttml,
|
|
_ => LyricsFormat.NotSpecified,
|
|
};
|
|
}
|
|
|
|
public static bool IsLocal(this LyricsSearchProvider provider)
|
|
{
|
|
return provider
|
|
is LyricsSearchProvider.LocalMusicFile
|
|
or LyricsSearchProvider.LocalLrcFile
|
|
or LyricsSearchProvider.LocalEslrcFile
|
|
or LyricsSearchProvider.LocalTtmlFile;
|
|
}
|
|
|
|
public static bool IsRemote(this LyricsSearchProvider provider)
|
|
{
|
|
return !provider.IsLocal();
|
|
}
|
|
|
|
public static TranslationSearchProvider? ToTranslationSearchProvider(this LyricsSearchProvider? provider)
|
|
{
|
|
return provider switch
|
|
{
|
|
LyricsSearchProvider.LrcLib => TranslationSearchProvider.LrcLib,
|
|
LyricsSearchProvider.QQ => TranslationSearchProvider.QQ,
|
|
LyricsSearchProvider.Kugou => TranslationSearchProvider.Kugou,
|
|
LyricsSearchProvider.Netease => TranslationSearchProvider.Netease,
|
|
LyricsSearchProvider.AmllTtmlDb => TranslationSearchProvider.AmllTtmlDb,
|
|
LyricsSearchProvider.AppleMusic => TranslationSearchProvider.AppleMusic,
|
|
LyricsSearchProvider.LocalMusicFile => TranslationSearchProvider.LocalMusicFile,
|
|
LyricsSearchProvider.LocalLrcFile => TranslationSearchProvider.LocalLrcFile,
|
|
LyricsSearchProvider.LocalEslrcFile => TranslationSearchProvider.LocalEslrcFile,
|
|
LyricsSearchProvider.LocalTtmlFile => TranslationSearchProvider.LocalTtmlFile,
|
|
_ => null,
|
|
};
|
|
}
|
|
}
|
|
}
|