diff --git a/Plugins/Flow.Launcher.Plugin.PluginsManager/PluginsManager.cs b/Plugins/Flow.Launcher.Plugin.PluginsManager/PluginsManager.cs index 15cbda7f211..2d71329b4b9 100644 --- a/Plugins/Flow.Launcher.Plugin.PluginsManager/PluginsManager.cs +++ b/Plugins/Flow.Launcher.Plugin.PluginsManager/PluginsManager.cs @@ -203,11 +203,11 @@ internal async ValueTask> RequestUpdateAsync(string search, Cancell pluginFromLocalPath = Utilities.GetPluginInfoFromZip(search); pluginFromLocalPath.LocalInstallPath = search; updateFromLocalPath = true; - } + } var updateSource = !updateFromLocalPath - ? PluginsManifest.UserPlugins - : new List { pluginFromLocalPath }; + ? PluginsManifest.UserPlugins + : new List { pluginFromLocalPath }; var resultsForUpdate = ( from existingPlugin in Context.API.GetAllPlugins() @@ -291,7 +291,7 @@ await Http.DownloadAsync(x.PluginNewUserPlugin.UrlDownload, downloadToFilePath) { downloadToFilePath = x.PluginNewUserPlugin.LocalInstallPath; } - + PluginManager.UpdatePlugin(x.PluginExistingMetadata, x.PluginNewUserPlugin, downloadToFilePath); @@ -327,7 +327,6 @@ await Http.DownloadAsync(x.PluginNewUserPlugin.UrlDownload, downloadToFilePath) }, TaskContinuationOptions.OnlyOnFaulted); return true; - }, ContextData = new UserPlugin @@ -513,7 +512,8 @@ internal List InstallFromLocalPath(string localPath) { if (!InstallSourceKnown(plugin.Website) && MessageBox.Show(string.Format( - Context.API.GetTranslation("plugin_pluginsmanager_install_unknown_source_warning"), + Context.API.GetTranslation( + "plugin_pluginsmanager_install_unknown_source_warning"), Environment.NewLine), Context.API.GetTranslation( "plugin_pluginsmanager_install_unknown_source_warning_title"), @@ -532,7 +532,12 @@ internal List InstallFromLocalPath(string localPath) private bool InstallSourceKnown(string url) { - var author = url.Split('/')[3]; + var pieces = url.Split('/'); + + if (pieces.Length < 4) + return false; + + var author = pieces[3]; var acceptedSource = "https://github.com"; var constructedUrlPart = string.Format("{0}/{1}/", acceptedSource, author); @@ -589,7 +594,7 @@ private void Install(UserPlugin plugin, string downloadedFilePath) try { PluginManager.InstallPlugin(plugin, downloadedFilePath); - + if (!plugin.IsFromLocalInstallPath) File.Delete(downloadedFilePath); }