2016-06-21 07:14:32 +08:00
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.ObjectModel;
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using Wox.Plugin.WebSearch.SuggestionSources;
|
2015-01-26 22:50:38 +08:00
|
|
|
|
|
|
|
|
|
namespace Wox.Plugin.WebSearch
|
|
|
|
|
{
|
2016-06-21 07:14:32 +08:00
|
|
|
|
public class Settings : BaseModel
|
2015-01-26 22:50:38 +08:00
|
|
|
|
{
|
2016-06-21 07:14:32 +08:00
|
|
|
|
public Settings()
|
|
|
|
|
{
|
|
|
|
|
SelectedSuggestion = Suggestions[0];
|
|
|
|
|
if (SearchSources.Count > 0)
|
2016-01-08 09:13:36 +08:00
|
|
|
|
{
|
2016-06-21 07:14:32 +08:00
|
|
|
|
SelectedSearchSource = SearchSources[0];
|
|
|
|
|
}
|
|
|
|
|
}
|
2016-06-21 07:18:35 +08:00
|
|
|
|
|
2016-06-21 07:14:32 +08:00
|
|
|
|
public ObservableCollection<SearchSource> SearchSources { get; set; } = new ObservableCollection<SearchSource>
|
2016-06-21 07:18:35 +08:00
|
|
|
|
{
|
|
|
|
|
new SearchSource
|
2016-06-21 07:14:32 +08:00
|
|
|
|
{
|
2016-06-21 07:18:35 +08:00
|
|
|
|
Title = "Google",
|
|
|
|
|
ActionKeyword = "g",
|
|
|
|
|
Icon = "google.png",
|
|
|
|
|
Url = "https://www.google.com/search?q={q}",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "Google Scholar",
|
|
|
|
|
ActionKeyword = "sc",
|
|
|
|
|
Icon = "google.png",
|
|
|
|
|
Url = "https://scholar.google.com/scholar?q={q}",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "Wikipedia",
|
|
|
|
|
ActionKeyword = "wiki",
|
|
|
|
|
Icon = "wiki.png",
|
|
|
|
|
Url = "https://en.wikipedia.org/wiki/{q}",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "FindIcon",
|
|
|
|
|
ActionKeyword = "findicon",
|
|
|
|
|
Icon = "pictures.png",
|
|
|
|
|
Url = "http://findicons.com/search/{q}",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "Facebook",
|
|
|
|
|
ActionKeyword = "facebook",
|
|
|
|
|
Icon = "facebook.png",
|
|
|
|
|
Url = "https://www.facebook.com/search/?q={q}",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "Twitter",
|
|
|
|
|
ActionKeyword = "twitter",
|
|
|
|
|
Icon = "twitter.png",
|
|
|
|
|
Url = "https://twitter.com/search?q={q}",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "Google Maps",
|
|
|
|
|
ActionKeyword = "maps",
|
|
|
|
|
Icon = "google_maps.png",
|
|
|
|
|
Url = "https://maps.google.com/maps?q={q}",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "Google Translate",
|
|
|
|
|
ActionKeyword = "translate",
|
|
|
|
|
Icon = "google_translate.png",
|
|
|
|
|
Url = "https://translate.google.com/#auto|en|{q}",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "Duckduckgo",
|
|
|
|
|
ActionKeyword = "duckduckgo",
|
|
|
|
|
Icon = "duckduckgo.png",
|
|
|
|
|
Url = "https://duckduckgo.com/?q={q}",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "Github",
|
|
|
|
|
ActionKeyword = "github",
|
|
|
|
|
Icon = "github.png",
|
|
|
|
|
Url = "https://github.com/search?q={q}",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "Github Gist",
|
|
|
|
|
ActionKeyword = "gist",
|
|
|
|
|
Icon = "gist.png",
|
|
|
|
|
Url = "https://gist.github.com/search?q={q}",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "Gmail",
|
|
|
|
|
ActionKeyword = "gmail",
|
|
|
|
|
Icon = "gmail.png",
|
|
|
|
|
Url = "https://mail.google.com/mail/ca/u/0/#apps/{q}",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "Google Drive",
|
|
|
|
|
ActionKeyword = "drive",
|
|
|
|
|
Icon = "google_drive.png",
|
|
|
|
|
Url = "https://drive.google.com/?hl=en&tab=bo#search/{q}",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "Wolframalpha",
|
|
|
|
|
ActionKeyword = "wolframalpha",
|
|
|
|
|
Icon = "wolframalpha.png",
|
|
|
|
|
Url = "https://www.wolframalpha.com/input/?i={q}",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "Stackoverflow",
|
|
|
|
|
ActionKeyword = "stackoverflow",
|
|
|
|
|
Icon = "stackoverflow.png",
|
|
|
|
|
Url = "https://stackoverflow.com/search?q={q}",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "I'm Feeling Lucky",
|
|
|
|
|
ActionKeyword = "lucky",
|
|
|
|
|
Icon = "google.png",
|
|
|
|
|
Url = "https://google.com/search?q={q}&btnI=I",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "Google Image",
|
|
|
|
|
ActionKeyword = "image",
|
|
|
|
|
Icon = "google.png",
|
|
|
|
|
Url = "https://www.google.com/search?q={q}&tbm=isch",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "Youtube",
|
|
|
|
|
ActionKeyword = "youtube",
|
|
|
|
|
Icon = "youtube.png",
|
|
|
|
|
Url = "https://www.youtube.com/results?search_query={q}",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "Bing",
|
|
|
|
|
ActionKeyword = "bing",
|
|
|
|
|
Icon = "bing.png",
|
|
|
|
|
Url = "https://www.bing.com/search?q={q}",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "Yahoo",
|
|
|
|
|
ActionKeyword = "yahoo",
|
|
|
|
|
Icon = "yahoo.png",
|
|
|
|
|
Url = "https://www.search.yahoo.com/search?p={q}",
|
|
|
|
|
Enabled = true
|
|
|
|
|
},
|
|
|
|
|
new SearchSource
|
|
|
|
|
{
|
|
|
|
|
Title = "Baidu",
|
|
|
|
|
ActionKeyword = "bd",
|
|
|
|
|
Icon = "baidu.png",
|
|
|
|
|
Url = "https://www.baidu.com/#ie=UTF-8&wd={q}",
|
|
|
|
|
Enabled = true
|
|
|
|
|
}
|
|
|
|
|
};
|
2016-04-21 08:53:21 +08:00
|
|
|
|
|
2016-06-21 07:14:32 +08:00
|
|
|
|
[JsonIgnore]
|
|
|
|
|
public SearchSource SelectedSearchSource { get; set; }
|
|
|
|
|
|
|
|
|
|
public bool EnableSuggestion { get; set; }
|
|
|
|
|
|
|
|
|
|
[JsonIgnore]
|
|
|
|
|
public SuggestionSource[] Suggestions { get; set; } = {
|
|
|
|
|
new Google(),
|
|
|
|
|
new Baidu()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
[JsonIgnore]
|
|
|
|
|
public SuggestionSource SelectedSuggestion { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// used to store Settings.json only
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string Suggestion
|
|
|
|
|
{
|
2016-06-21 07:18:35 +08:00
|
|
|
|
get { return SelectedSuggestion.ToString(); }
|
2016-06-21 07:14:32 +08:00
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
foreach (var s in Suggestions)
|
|
|
|
|
{
|
|
|
|
|
if (string.Equals(s.ToString(), value, StringComparison.OrdinalIgnoreCase))
|
|
|
|
|
{
|
|
|
|
|
SelectedSuggestion = s;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2015-01-26 22:50:38 +08:00
|
|
|
|
}
|
2016-01-08 09:13:36 +08:00
|
|
|
|
}
|