From d95010697dea1074b19e6d547379838f9cacec28 Mon Sep 17 00:00:00 2001 From: Ioannis G Date: Tue, 11 Jan 2022 08:55:59 +0200 Subject: [PATCH] PluginsManager: simplify passing down of queries --- .../Main.cs | 20 +++--- .../PluginsManager.cs | 66 ++----------------- 2 files changed, 16 insertions(+), 70 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.PluginsManager/Main.cs b/Plugins/Flow.Launcher.Plugin.PluginsManager/Main.cs index 3d3f9307e..2cd8a7511 100644 --- a/Plugins/Flow.Launcher.Plugin.PluginsManager/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.PluginsManager/Main.cs @@ -47,23 +47,21 @@ namespace Flow.Launcher.Plugin.PluginsManager public async Task> QueryAsync(Query query, CancellationToken token) { - var search = query.Search; - - if (string.IsNullOrWhiteSpace(search)) + if (string.IsNullOrWhiteSpace(query.Search)) return pluginManager.GetDefaultHotKeys(); - return search switch + return query.FirstSearch switch { //search could be url, no need ToLower() when passed in - var s when s.StartsWith(Settings.HotKeyInstall, StringComparison.OrdinalIgnoreCase) - => await pluginManager.RequestInstallOrUpdate(search, token), - var s when s.StartsWith(Settings.HotkeyUninstall, StringComparison.OrdinalIgnoreCase) - => pluginManager.RequestUninstall(search), - var s when s.StartsWith(Settings.HotkeyUpdate, StringComparison.OrdinalIgnoreCase) - => await pluginManager.RequestUpdate(search, token), + var s when s.Equals(Settings.HotKeyInstall, StringComparison.OrdinalIgnoreCase) + => await pluginManager.RequestInstallOrUpdate(query.SecondToEndSearch, token), + var s when s.Equals(Settings.HotkeyUninstall, StringComparison.OrdinalIgnoreCase) + => pluginManager.RequestUninstall(query.SecondToEndSearch), + var s when s.Equals(Settings.HotkeyUpdate, StringComparison.OrdinalIgnoreCase) + => await pluginManager.RequestUpdate(query.SecondToEndSearch, token), _ => pluginManager.GetDefaultHotKeys().Where(hotkey => { - hotkey.Score = StringMatcher.FuzzySearch(search, hotkey.Title).Score; + hotkey.Score = StringMatcher.FuzzySearch(query.Search, hotkey.Title).Score; return hotkey.Score > 0; }).ToList() }; diff --git a/Plugins/Flow.Launcher.Plugin.PluginsManager/PluginsManager.cs b/Plugins/Flow.Launcher.Plugin.PluginsManager/PluginsManager.cs index b85a80f11..1395325d9 100644 --- a/Plugins/Flow.Launcher.Plugin.PluginsManager/PluginsManager.cs +++ b/Plugins/Flow.Launcher.Plugin.PluginsManager/PluginsManager.cs @@ -186,16 +186,6 @@ namespace Flow.Launcher.Plugin.PluginsManager { await UpdateManifestAsync(token); - var autocompletedResults = AutoCompleteReturnAllResults(search, - Settings.HotkeyUpdate, - "Update", - "Select a plugin to update"); - - if (autocompletedResults.Any()) - return autocompletedResults; - - var uninstallSearch = search.Replace(Settings.HotkeyUpdate, string.Empty, StringComparison.OrdinalIgnoreCase).TrimStart(); - var resultsForUpdate = from existingPlugin in Context.API.GetAllPlugins() join pluginFromManifest in PluginsManifest.UserPlugins @@ -283,7 +273,7 @@ namespace Flow.Launcher.Plugin.PluginsManager } }); - return Search(results, uninstallSearch); + return Search(results, search); } internal bool PluginExists(string id) @@ -367,15 +357,13 @@ namespace Flow.Launcher.Plugin.PluginsManager return url.StartsWith(acceptedSource) && Context.API.GetAllPlugins().Any(x => x.Metadata.Website.StartsWith(contructedUrlPart)); } - internal async ValueTask> RequestInstallOrUpdate(string searchName, CancellationToken token) + internal async ValueTask> RequestInstallOrUpdate(string search, CancellationToken token) { await UpdateManifestAsync(token); - var searchNameWithoutKeyword = searchName.Replace(Settings.HotKeyInstall, string.Empty, StringComparison.OrdinalIgnoreCase).Trim(); - - if (Uri.IsWellFormedUriString(searchNameWithoutKeyword, UriKind.Absolute) - && searchNameWithoutKeyword.Split('.').Last() == zip) - return InstallFromWeb(searchNameWithoutKeyword); + if (Uri.IsWellFormedUriString(search, UriKind.Absolute) + && search.Split('.').Last() == zip) + return InstallFromWeb(search); var results = PluginsManifest @@ -401,7 +389,7 @@ namespace Flow.Launcher.Plugin.PluginsManager ContextData = x }); - return Search(results, searchNameWithoutKeyword); + return Search(results, search); } private void Install(UserPlugin plugin, string downloadedFilePath) @@ -461,16 +449,6 @@ namespace Flow.Launcher.Plugin.PluginsManager internal List RequestUninstall(string search) { - var autocompletedResults = AutoCompleteReturnAllResults(search, - Settings.HotkeyUninstall, - "Uninstall", - "Select a plugin to uninstall"); - - if (autocompletedResults.Any()) - return autocompletedResults; - - var uninstallSearch = search.Replace(Settings.HotkeyUninstall, string.Empty, StringComparison.OrdinalIgnoreCase).TrimStart(); - var results = Context.API .GetAllPlugins() .Select(x => @@ -501,7 +479,7 @@ namespace Flow.Launcher.Plugin.PluginsManager } }); - return Search(results, uninstallSearch); + return Search(results, search); } private void Uninstall(PluginMetadata plugin, bool removedSetting = true) @@ -516,36 +494,6 @@ namespace Flow.Launcher.Plugin.PluginsManager using var _ = File.CreateText(Path.Combine(plugin.PluginDirectory, "NeedDelete.txt")); } - private List AutoCompleteReturnAllResults(string search, string hotkey, string title, string subtitle) - { - if (!string.IsNullOrEmpty(search) - && hotkey.StartsWith(search) - && (hotkey != search || !search.StartsWith(hotkey))) - { - return - new List - { - new Result - { - Title = title, - IcoPath = icoPath, - SubTitle = subtitle, - Action = e => - { - Context - .API - .ChangeQuery( - $"{Context.CurrentPluginMetadata.ActionKeywords.FirstOrDefault()} {hotkey} "); - - return false; - } - } - }; - } - - return new List(); - } - private bool SameOrLesserPluginVersionExists(string metadataPath) { var newMetadata = JsonSerializer.Deserialize(File.ReadAllText(metadataPath));