diff --git a/Plugins/Wox.Plugin.PluginManagement/Main.cs b/Plugins/Wox.Plugin.PluginManagement/Main.cs index 432d6a7362..960a2c328c 100644 --- a/Plugins/Wox.Plugin.PluginManagement/Main.cs +++ b/Plugins/Wox.Plugin.PluginManagement/Main.cs @@ -10,30 +10,21 @@ using Newtonsoft.Json; namespace Wox.Plugin.PluginManagement { - public class WoxPlugin - { - public int apiVersion { get; set; } - public List result { get; set; } - } - public class WoxPluginResult { - public string actionkeyword; - public string download; - public string author; + public string plugin_file; public string description; - public string id; - public int star; + public int liked_count; public string name; public string version; - public string website; } public class Main : IPlugin { + private static string APIBASE = "https://api.getwox.com"; private static string PluginPath = AppDomain.CurrentDomain.BaseDirectory + "Plugins"; private static string PluginConfigName = "plugin.json"; - private static string pluginSearchUrl = "http://www.getwox.com/api/plugin/search/"; + private static string pluginSearchUrl = APIBASE +"/plugin/search/"; private PluginInitContext context; public List Query(Query query) @@ -142,8 +133,18 @@ namespace Wox.Plugin.PluginManagement { StreamReader reader = new StreamReader(s, Encoding.UTF8); string json = reader.ReadToEnd(); - WoxPlugin o = JsonConvert.DeserializeObject(json); - foreach (WoxPluginResult r in o.result) + List searchedPlugins = null; + try + { + searchedPlugins = JsonConvert.DeserializeObject>(json); + } + catch + { + context.API.ShowMsg("Coundn't parse api search results", "Please update your Wox!",string.Empty); + return results; + } + + foreach (WoxPluginResult r in searchedPlugins) { WoxPluginResult r1 = r; results.Add(new Result() @@ -169,7 +170,8 @@ namespace Wox.Plugin.PluginManagement { try { - Client.DownloadFile(r1.download, filePath); + string pluginUrl = APIBASE + "/media/" + r1.plugin_file; + Client.DownloadFile(pluginUrl, filePath); context.API.InstallPlugin(filePath); context.API.ReloadPlugins(); }