示例#1
0
        /// <summary>
        /// 在选中搜索结果时触发的方法
        /// </summary>
        /// <param name="result"></param>
        public void OnChooseSearchResult(ImPlayer.FM.Models.SearchResult result)
        {
            if (result == null)
            {
                return;
            }
            var channel = new ImPlayer.FM.Models.Channel()
            {
                Id = 0, Name = result.Title, Context = result.Context
            };

            this.CurrentChannel = channel;
        }
示例#2
0
        /// <summary>
        /// 获取搜索的结果
        /// </summary>
        /// <returns></returns>
        private IEnumerable <ImPlayer.FM.Models.SearchResult> GetSearchItems(string file)
        {
            List <ImPlayer.FM.Models.SearchResult> items = new List <ImPlayer.FM.Models.SearchResult>();

            try
            {
                bool isSearchFilterEnabled = true;

                //找出艺术家
                MatchCollection mc = Regex.Matches(file, @"<div class=\""result-item musician\"".*?>.*?</h3>", RegexOptions.IgnoreCase | RegexOptions.Singleline);
                foreach (Match mm in mc)
                {
                    string temp        = mm.Groups[0].Value;
                    string titleTemp   = Regex.Match(temp, @"<a.*?class=\""nbg\"".*?/?>", RegexOptions.IgnoreCase | RegexOptions.Singleline).Groups[0].Value;
                    string title       = Regex.Match(titleTemp, @".*?title=\""([^\""]+)\""", RegexOptions.IgnoreCase | RegexOptions.Singleline).Groups[1].Value;
                    string link        = Regex.Match(titleTemp, @".*?href=\""([^\""]+)\""", RegexOptions.IgnoreCase | RegexOptions.Singleline).Groups[1].Value;
                    string pictureTemp = Regex.Match(temp, @"<img.*?class=\""answer_pic\"".*?/?>", RegexOptions.IgnoreCase | RegexOptions.Singleline).Groups[0].Value;
                    string picture     = Regex.Match(pictureTemp, @".*?src=\""([^\""]+)\""", RegexOptions.IgnoreCase | RegexOptions.Singleline).Groups[1].Value;
                    Match  ma          = Regex.Match(temp, @".*?href=\""http://douban\.fm/\?context=([^\""]+)\""", RegexOptions.IgnoreCase | RegexOptions.Singleline);
                    string context     = null;
                    if (ma != null)
                    {
                        context = ma.Groups[1].Value;
                    }
                    ImPlayer.FM.Models.SearchResult item = new ImPlayer.FM.Models.SearchResult(title, picture, link, null, true, context);
                    if (!isSearchFilterEnabled || !string.IsNullOrEmpty(item.Context))
                    {
                        items.Add(item);
                    }
                }

                //找出专辑
                mc = Regex.Matches(file, @"<tr.*?class=\""item\"">.*?</tr>", RegexOptions.IgnoreCase | RegexOptions.Singleline);
                foreach (Match mm in mc)
                {
                    string temp        = mm.Groups[0].Value;
                    string titleTemp   = Regex.Match(temp, @"<a.*?class=\""nbg\"".*?/?>", RegexOptions.IgnoreCase | RegexOptions.Singleline).Groups[0].Value;
                    string subject     = Regex.Match(titleTemp, @"href=\"".*?subject/(\d+)", RegexOptions.IgnoreCase | RegexOptions.Singleline).Groups[1].Value;
                    string title       = Regex.Match(titleTemp, @".*?title=\""([^\""]+)\""", RegexOptions.IgnoreCase | RegexOptions.Singleline).Groups[1].Value;
                    string link        = Regex.Match(titleTemp, @".*?href=\""([^\""]+)\""", RegexOptions.IgnoreCase | RegexOptions.Singleline).Groups[1].Value;
                    string pictureTemp = Regex.Match(temp, @"<img.*?/?>", RegexOptions.IgnoreCase | RegexOptions.Singleline).Groups[0].Value;
                    string picture     = Regex.Match(pictureTemp, @".*?src=\""([^\""]+)\""", RegexOptions.IgnoreCase | RegexOptions.Singleline).Groups[1].Value;
                    Match  ma          = Regex.Match(temp, @".*?href=\""http://douban\.fm/\?context=([^\""]+)\""", RegexOptions.IgnoreCase | RegexOptions.Singleline);

                    string context = null;
                    if (ma != null && ma.Success)
                    {
                        context = ma.Groups[1].Value;
                    }
                    if (string.IsNullOrEmpty(context))
                    {
                        context = MakeContext(subject);
                    }

                    ImPlayer.FM.Models.SearchResult item = new ImPlayer.FM.Models.SearchResult(title, picture, link, null, false, context);
                    if (!isSearchFilterEnabled || !string.IsNullOrEmpty(item.Context))
                    {
                        items.Add(item);
                    }
                }
            }
            catch { }

            return(items);
        }