From bdc31c3e0da96bf9b83fc348da961f1e35c751fc Mon Sep 17 00:00:00 2001 From: Zhe Fang Date: Sun, 21 Dec 2025 06:34:11 -0500 Subject: [PATCH] fix: lyrics source search issue when id is not null; feat: support ftp, smb, webdav (still testing) --- .../Package.appxmanifest | 2 +- .../BetterLyrics.WinUI3/App.xaml | 2 +- .../BetterLyrics.WinUI3.csproj | 25 ++- .../Controls/MediaSettingsControl.xaml | 73 +++++-- .../Controls/MediaSettingsControl.xaml.cs | 2 +- .../Controls/RemoteServerConfigControl.xaml | 62 ++++++ .../RemoteServerConfigControl.xaml.cs | 101 +++++++++ .../FileSourceTypeToIconConverter.cs | 30 +++ .../Converter/TrackToLyricsConverter.cs | 24 --- .../Enums/FileSourceType.cs | 14 ++ .../Extensions/TrackExtensions.cs | 33 --- .../Models/ExtendedTrack.cs | 39 ++++ .../Models/FileSystem/FTPFileSystem.cs | 55 +++++ .../Models/FileSystem/IUnifiedFileSystem.cs | 17 ++ .../Models/FileSystem/LocalFileSystem.cs | 58 ++++++ .../Models/FileSystem/SMBFileSystem.cs | 131 ++++++++++++ .../Models/FileSystem/SMBReadOnlyStream.cs | 116 +++++++++++ .../FileSystem/StreamFileAbstraction.cs | 45 ++++ .../Models/FileSystem/UnifiedFileItem.cs | 15 ++ .../Models/FileSystem/WebDavFileSystem.cs | 87 ++++++++ .../Models/LocalLyricsFolder.cs | 20 -- .../BetterLyrics.WinUI3/Models/MediaFolder.cs | 73 +++++++ .../Models/PlayQueueItem.cs | 4 +- .../Models/Settings/AppSettings.cs | 2 +- .../AlbumArtSearchService.cs | 64 +++++- .../LyricsSearchService.cs | 197 +++++++++++++----- .../Strings/en-US/Resources.resw | 24 ++- .../Strings/ja-JP/Resources.resw | 24 ++- .../Strings/ko-KR/Resources.resw | 24 ++- .../Strings/zh-CN/Resources.resw | 24 ++- .../Strings/zh-TW/Resources.resw | 24 ++- .../MediaSettingsControlViewModel.cs | 101 +++++++-- .../ViewModels/MusicGalleryPageViewModel.cs | 93 +++++++-- .../Views/MusicGalleryPage.xaml | 4 +- .../Views/MusicGalleryPage.xaml.cs | 22 +- 35 files changed, 1400 insertions(+), 231 deletions(-) create mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/RemoteServerConfigControl.xaml create mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/RemoteServerConfigControl.xaml.cs create mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Converter/FileSourceTypeToIconConverter.cs delete mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Converter/TrackToLyricsConverter.cs create mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Enums/FileSourceType.cs delete mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Extensions/TrackExtensions.cs create mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/ExtendedTrack.cs create mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/FileSystem/FTPFileSystem.cs create mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/FileSystem/IUnifiedFileSystem.cs create mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/FileSystem/LocalFileSystem.cs create mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/FileSystem/SMBFileSystem.cs create mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/FileSystem/SMBReadOnlyStream.cs create mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/FileSystem/StreamFileAbstraction.cs create mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/FileSystem/UnifiedFileItem.cs create mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/FileSystem/WebDavFileSystem.cs delete mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/LocalLyricsFolder.cs create mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/MediaFolder.cs diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest b/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest index 5767bf3..338aaf4 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest @@ -12,7 +12,7 @@ + Version="1.1.201.0" /> diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml index 89a9e84..e13d843 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml @@ -65,7 +65,6 @@ - @@ -75,6 +74,7 @@ + diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/BetterLyrics.WinUI3.csproj b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/BetterLyrics.WinUI3.csproj index b279d3e..e76e68e 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/BetterLyrics.WinUI3.csproj +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/BetterLyrics.WinUI3.csproj @@ -37,6 +37,7 @@ + @@ -58,20 +59,21 @@ - - - - - - - - + + + + + + + + + @@ -85,6 +87,7 @@ + @@ -95,6 +98,7 @@ + @@ -339,6 +343,11 @@ + + + MSBuild:Compile + + MSBuild:Compile diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/MediaSettingsControl.xaml b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/MediaSettingsControl.xaml index 7ef65f4..964d0cd 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/MediaSettingsControl.xaml +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/MediaSettingsControl.xaml @@ -1,4 +1,3 @@ - @@ -49,25 +49,32 @@ ItemsSource="{x:Bind ViewModel.AppSettings.LocalMediaFolders, Mode=OneWay}" SelectionMode="None"> - - + + + + Content="{x:Bind Path, Mode=OneWay}" + Tag="{x:Bind Path, Mode=OneWay}" + ToolTipService.ToolTip="{x:Bind ConnectionSummary}" /> - + + + - + + @@ -76,15 +83,55 @@ - -