Add manually check updates option

1. manually check updates
2. refactoring get http request to use async
3. remove some generic exception catch
4. remove unused code
This commit is contained in:
bao-qian
2016-05-09 02:32:47 +01:00
parent 373da78b7b
commit 6ac33b0568
13 changed files with 209 additions and 147 deletions

View File

@@ -2,9 +2,11 @@
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Wox.Infrastructure.Http;
using Wox.Infrastructure.Logger;
namespace Wox.Plugin.WebSearch.SuggestionSources
{
@@ -14,20 +16,24 @@ namespace Wox.Plugin.WebSearch.SuggestionSources
Regex reg = new Regex("window.baidu.sug\\((.*)\\)");
public override List<string> GetSuggestions(string query)
public override async Task<List<string>> GetSuggestions(string query)
{
var result = HttpRequest.Get("http://suggestion.baidu.com/su?json=1&wd=" + Uri.EscapeUriString(query), Proxy, "GB2312");
var result = await HttpRequest.Get("http://suggestion.baidu.com/su?json=1&wd=" + Uri.EscapeUriString(query), Proxy, "GB2312");
if (string.IsNullOrEmpty(result)) return new List<string>();
Match match = reg.Match(result);
if (match.Success)
{
JContainer json = null;
JContainer json;
try
{
json = JsonConvert.DeserializeObject(match.Groups[1].Value) as JContainer;
}
catch { }
catch (JsonSerializationException e)
{
Log.Error(e);
return new List<string>();
}
if (json != null)
{

View File

@@ -1,34 +1,39 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Wox.Infrastructure.Http;
using Wox.Infrastructure.Logger;
namespace Wox.Plugin.WebSearch.SuggestionSources
{
public class Google : SuggestionSource
{
public override string Domain { get; set; } = "www.google.com";
public override List<string> GetSuggestions(string query)
public override async Task<List<string>> GetSuggestions(string query)
{
var result = HttpRequest.Get("https://www.google.com/complete/search?output=chrome&q=" + Uri.EscapeUriString(query), Proxy);
var result = await HttpRequest.Get("https://www.google.com/complete/search?output=chrome&q=" + Uri.EscapeUriString(query), Proxy);
if (string.IsNullOrEmpty(result)) return new List<string>();
JContainer json;
try
{
JContainer json = JsonConvert.DeserializeObject(result) as JContainer;
if (json != null)
json = JsonConvert.DeserializeObject(result) as JContainer;
}
catch (JsonSerializationException e)
{
Log.Error(e);
return new List<string>();
}
if (json != null)
{
var results = json[1] as JContainer;
if (results != null)
{
var results = json[1] as JContainer;
if (results != null)
{
return results.OfType<JValue>().Select(o => o.Value).OfType<string>().ToList();
}
return results.OfType<JValue>().Select(o => o.Value).OfType<string>().ToList();
}
}
catch { }
return new List<string>();
}

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Wox.Plugin.WebSearch.SuggestionSources
{
@@ -12,7 +13,7 @@ namespace Wox.Plugin.WebSearch.SuggestionSources
Proxy = httpProxy;
}
public abstract List<string> GetSuggestions(string query);
public abstract Task<List<string>> GetSuggestions(string query);
public static SuggestionSource GetSuggestionSource(string name, PluginInitContext context)
{