示例#1
0
        /// <summary>
        /// 从豆瓣获取歌词
        /// </summary>
        /// <param name="song">歌曲</param>
        /// <returns>歌词</returns>
        protected static Lyrics GetDoubanLyrics(Song song)
        {
            Parameters parameters = new Parameters();

            parameters["song_id"] = song.SongID;
            var url     = ConnectionBase.ConstructUrlWithParameters("http://music.douban.com/api/song/info", parameters);
            var conn    = new ConnectionBase();
            var content = conn.Get(url);

            if (string.IsNullOrEmpty(content))
            {
                return(null);
            }

            var songInfo = JsonHelper.Deserialize <SongInfo>(content);

            if (songInfo == null || string.IsNullOrEmpty(songInfo.Lyric))
            {
                return(null);
            }

            try
            {
                return(new Lyrics(songInfo.Lyric));
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.ToString());
                return(null);
            }
        }
示例#2
0
        public List <ImPlayer.FM.Models.SearchResult> RemoteSearch(string keywords, int pageIndex)
        {
            Parameters parameters = new Parameters();

            parameters["start"]       = ((pageIndex - 1) * 15).ToString();
            parameters["search_text"] = keywords;
            string url = ConnectionBase.ConstructUrlWithParameters("http://music.douban.com/subject_search", parameters);

            ConnectionBase connection = new ConnectionBase(true);
            string         file       = string.Empty;

            try
            {
                file = connection.Get(url);
            }
            catch (Exception ex)
            {
                file = new ConnectionBase().Get("http://music.douban.com");
                file = new ConnectionBase().Get(url);
            }

            var searhResult = GetSearchItems(file);
            var previous    = GetPreviousPageLink(file);
            var next        = GetNextPageLink(file);

            return(searhResult.ToList());
        }
示例#3
0
        public List <Models.GroupInfo> GetGroupInfoList()
        {
            var conn = new ConnectionBase();
            var json = conn.Get("https://api.douban.com/v2/fm/app_channels");

            Models.GroupListInfo groups = Framework.Common.Helpers.JsonHelper.Deserialize <Models.GroupListInfo>(json);
            return(groups.GroupList);
        }
示例#4
0
        public List <Models.Channel> GetChannelList()
        {
            var conn = new ConnectionBase();
            var json = conn.Get("https://api.douban.com/v2/fm/app_channels");

            Models.GroupListInfo  groups = Framework.Common.Helpers.JsonHelper.Deserialize <Models.GroupListInfo>(json);
            List <Models.Channel> list   = new List <Models.Channel>();

            foreach (var groupsChild in groups.GroupList)
            {
                foreach (var item in groupsChild.Chls)
                {
                    list.Add(item);
                }
            }
            return(list);
        }
示例#5
0
        public List<Models.SearchResult> RemoteSearch(string keywords, int pageIndex)
        {
            Parameters parameters = new Parameters();
            parameters["start"] = ((pageIndex - 1) * 15).ToString();
            parameters["search_text"] = keywords;
            string url = ConnectionBase.ConstructUrlWithParameters("http://music.douban.com/subject_search", parameters);

            ConnectionBase connection = new ConnectionBase(true);
            string file = string.Empty;
            try
            {
                file = connection.Get(url);
            }
            catch (Exception ex)
            {
                file = new ConnectionBase().Get("http://music.douban.com");
                file = new ConnectionBase().Get(url);
            }

            var searhResult = GetSearchItems(file);
            var previous = GetPreviousPageLink(file);
            var next = GetNextPageLink(file);
            return searhResult.ToList();
        }
示例#6
0
		/// <summary>
		/// 搜索
		/// </summary>
		/// <param name="text">搜索文本</param>
		/// <param name="start">Start值</param>
		void Search()
		{
			if (IsSearchFinished == false)return;
			SearchResult = null;
			IsSearchFinished = false;
			PreviousPageLink = null;
			NextPageLink = null;
			ThreadPool.QueueUserWorkItem(new WaitCallback((state)=>
				{
					//构造链接
					Parameters parameters = new Parameters();
					parameters["start"] = ((_page - 1) * 15).ToString();
					parameters["search_text"] = _searchText;
					string url = ConnectionBase.ConstructUrlWithParameters("http://music.douban.com/subject_search", parameters);

					//获取网页
					ConnectionBase connection= new ConnectionBase(true);
					string file = string.Empty;
					try
					{
						file = connection.Get(url);
					}
					catch (Exception ex)
					{
						Debug.WriteLine(ex);
						file = new ConnectionBase().Get("http://music.douban.com");
						file = new ConnectionBase().Get(url);
					}

					var searhResult = GetSearchItems(file);
					var previous = GetPreviousPageLink(file);
					var next = GetNextPageLink(file);
					Dispatcher.Invoke(new Action(() =>
						{
							SearchResult = searhResult;
							PreviousPageLink = previous;
							NextPageLink = next;
							IsSearchFinished = true;
						}));
				}));
		}
示例#7
0
 public Models.ChannelList GetChannelList()
 {
     var conn = new ConnectionBase();
     var json = conn.Get("http://doubanfmcloud-channelinfo.stor.sinaapp.com/channelinfo");
     return Framework.Common.Helpers.JsonHelper.Deserialize<Models.ChannelList>(json);
 }