From 83f3a3bd6d6dabf13bc7fd3f35926d0eef7170a6 Mon Sep 17 00:00:00 2001 From: Zhe Fang Date: Sat, 27 Dec 2025 15:25:49 -0500 Subject: [PATCH] chores: fix SMB and local file system, add auto-sync, improve lyruics search, album art search, local music gallery load speed (after 1st time) --- .../BetterLyrics.WinUI3/App.xaml | 1 + .../BetterLyrics.WinUI3/App.xaml.cs | 5 +- .../Controls/LyricsSearchControl.xaml | 2 - .../Controls/MediaSettingsControl.xaml | 68 +- .../Controls/MediaSettingsControl.xaml.cs | 18 +- .../RemoteServerConfigControl.xaml.cs | 62 +- .../Converter/ByteArrayToImageConverter.cs | 10 +- .../Converter/PathToImageConverter.cs | 31 + .../Enums/AutoScanInterval.cs | 15 + .../BetterLyrics.WinUI3/Helper/FileHelper.cs | 12 + .../BetterLyrics.WinUI3/Helper/PathHelper.cs | 3 + .../Helper/StreamFileAbstraction.cs | 2 +- .../Models/ExtendedTrack.cs | 214 ++++++- .../Models/FileCacheEntity.cs | 49 +- .../BetterLyrics.WinUI3/Models/MediaFolder.cs | 84 ++- .../Models/UnifiedFileItem.cs | 11 - .../AlbumArtSearchService.cs | 102 ++- .../FileSystemService/FileSystemService.cs | 593 ++++++++++++++++-- .../FileSystemService/IFileSystemService.cs | 52 +- .../FileSystemService/IUnifiedFileSystem.cs | 14 +- .../Providers/FTPFileSystem.cs | 149 ++++- .../Providers/LocalFileSystem.cs | 100 ++- .../Providers/SMBFileSystem.cs | 218 +++++-- .../Providers/SMBReadOnlyStream.cs | 72 ++- .../Providers/WebDavFileSystem.cs | 130 ++-- .../LibWatcherService/ILibWatcherService.cs | 12 - .../LibWatcherService/LibWatcherService.cs | 91 --- .../LyricsSearchService.cs | 215 ++----- .../MediaSessionsService.AlbumArtUpdater.cs | 1 + .../MediaSessionsService.cs | 42 +- .../Strings/ar/Resources.resw | 45 +- .../Strings/de/Resources.resw | 45 +- .../Strings/en/Resources.resw | 45 +- .../Strings/es/Resources.resw | 45 +- .../Strings/fr/Resources.resw | 45 +- .../Strings/hi/Resources.resw | 45 +- .../Strings/id/Resources.resw | 45 +- .../Strings/ja/Resources.resw | 45 +- .../Strings/ko/Resources.resw | 45 +- .../Strings/ms/Resources.resw | 45 +- .../Strings/pt/Resources.resw | 45 +- .../Strings/ru/Resources.resw | 45 +- .../Strings/th/Resources.resw | 45 +- .../Strings/vi/Resources.resw | 45 +- .../Strings/zh-Hans/Resources.resw | 45 +- .../Strings/zh-Hant/Resources.resw | 45 +- .../MediaSettingsControlViewModel.cs | 104 +-- .../ViewModels/MusicGalleryPageViewModel.cs | 277 ++++---- .../Views/MusicGalleryPage.xaml | 17 +- .../Views/MusicGalleryPage.xaml.cs | 4 +- 50 files changed, 2622 insertions(+), 878 deletions(-) create mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Converter/PathToImageConverter.cs create mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Enums/AutoScanInterval.cs delete mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/UnifiedFileItem.cs delete mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/LibWatcherService/ILibWatcherService.cs delete mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/LibWatcherService/LibWatcherService.cs diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml index e13d843..b59987a 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml @@ -75,6 +75,7 @@ + diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml.cs index ba0fccf..1f3402d 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml.cs +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml.cs @@ -7,7 +7,6 @@ using BetterLyrics.WinUI3.Services.AlbumArtSearchService; using BetterLyrics.WinUI3.Services.DiscordService; using BetterLyrics.WinUI3.Services.FileSystemService; using BetterLyrics.WinUI3.Services.LastFMService; -using BetterLyrics.WinUI3.Services.LibWatcherService; using BetterLyrics.WinUI3.Services.LocalizationService; using BetterLyrics.WinUI3.Services.LyricsSearchService; using BetterLyrics.WinUI3.Services.MediaSessionsService; @@ -75,6 +74,9 @@ namespace BetterLyrics.WinUI3 { var settingsService = Ioc.Default.GetRequiredService(); + var fileSystemService = Ioc.Default.GetRequiredService(); + fileSystemService.StartAllFolderTimers(); + WindowHook.OpenOrShowWindow(); if (settingsService.AppSettings.GeneralSettings.AutoStartLyricsWindow) @@ -118,7 +120,6 @@ namespace BetterLyrics.WinUI3 .AddSingleton() .AddSingleton() .AddSingleton() - .AddSingleton() .AddSingleton() .AddSingleton() .AddSingleton() diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/LyricsSearchControl.xaml b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/LyricsSearchControl.xaml index 94ff8d2..29ca891 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/LyricsSearchControl.xaml +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/LyricsSearchControl.xaml @@ -240,8 +240,6 @@ diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/MediaSettingsControl.xaml b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/MediaSettingsControl.xaml index 2a3f335..f91ea9c 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/MediaSettingsControl.xaml +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/MediaSettingsControl.xaml @@ -50,37 +50,73 @@ SelectionMode="None"> - + + - + Content="{x:Bind ConnectionSummary, Mode=OneWay}" /> - - - - + +