PowerToys/Plugins/Wox.Plugin.WebSearch/Settings.cs
2016-06-21 00:18:35 +01:00

223 lines
7.0 KiB
C#

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<SearchSource> SearchSources { get; set; } = new ObservableCollection<SearchSource>
{
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; }
/// <summary>
/// used to store Settings.json only
/// </summary>
public string Suggestion
{
get { return SelectedSuggestion.ToString(); }
set
{
foreach (var s in Suggestions)
{
if (string.Equals(s.ToString(), value, StringComparison.OrdinalIgnoreCase))
{
SelectedSuggestion = s;
}
}
}
}
}
}