示例#1
0
        protected override List <Result> QueryInternal(Query query)
        {
            List <Result> results = new List <Result>();

            if (string.IsNullOrEmpty(query.ActionName))
            {
                return(results);
            }

            WebSearch webSearch =
                UserSettingStorage.Instance.WebSearches.FirstOrDefault(o => o.ActionWord == query.ActionName && o.Enabled);

            if (webSearch != null)
            {
                string keyword  = query.ActionParameters.Count > 0 ? query.GetAllRemainingParameter() : "";
                string title    = keyword;
                string subtitle = "Search " + webSearch.Title;
                if (string.IsNullOrEmpty(keyword))
                {
                    title    = subtitle;
                    subtitle = null;
                }
                context.PushResults(query, new List <Result>()
                {
                    new Result()
                    {
                        Title    = title,
                        SubTitle = subtitle,
                        Score    = 6,
                        IcoPath  = webSearch.IconPath,
                        Action   = (c) =>
                        {
                            Process.Start(webSearch.Url.Replace("{q}", keyword));
                            return(true);
                        }
                    }
                });

                if (!string.IsNullOrEmpty(keyword))
                {
                    ISuggestionSource sugg = new Google();
                    var result             = sugg.GetSuggestions(keyword);
                    if (result != null)
                    {
                        context.PushResults(query, result.Select(o => new Result()
                        {
                            Title    = o,
                            SubTitle = subtitle,
                            Score    = 5,
                            IcoPath  = webSearch.IconPath,
                            Action   = (c) =>
                            {
                                Process.Start(webSearch.Url.Replace("{q}", o));
                                return(true);
                            }
                        }).ToList());
                    }
                }
            }

            return(results);
        }