using System; using System.Collections.ObjectModel; using Newtonsoft.Json; using Wox.Plugin.WebSearch.SuggestionSources; namespace Wox.Plugin.WebSearch { public class Settings : BaseModel { public Settings() { SelectedSuggestion = Suggestions[0]; if (SearchSources.Count > 0) { SelectedSearchSource = SearchSources[0]; } } public ObservableCollection SearchSources { get; set; } = new ObservableCollection { new SearchSource { 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 } }; [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; } /// /// used to store Settings.json only /// public string Suggestion { get { return SelectedSuggestion.ToString(); } set { foreach (var s in Suggestions) { if (string.Equals(s.ToString(), value, StringComparison.OrdinalIgnoreCase)) { SelectedSuggestion = s; } } } } } }