Пример #1
0
        /// <summary>
        /// 初始化分类表
        /// </summary>
        /// <param name="LocalClassList">本地的分类表,本参数预留给以后扩展</param>
        public virtual void InitClassList(List <MaxcmsClassItem> LocalClassList = null)
        {
            MaxcmsRequestOptions requestOptions = new MaxcmsRequestOptions(ServerUrl, MaxcmsAccess.list);
            MaxcmsHttp           http           = new MaxcmsHttp(requestOptions);

            if (http.isComplete)
            {
                var ClassItem = new MaxcmsParser(http.XmlDoc).Rss.type;
                if (ClassItem != null)
                {
                    ServerClassList = ClassItem as List <MaxcmsClassItem>;
                }
                if (LocalClassList == null)
                {
                    return;
                }
                for (int i = 0; i < ServerClassList.Count; i++)
                {
                    for (int j = 0; j < LocalClassList.Count; j++)
                    {
                        if (ServerClassList[i].ID == LocalClassList[j].BindID)
                        {
                            ServerClassList[i].BindID = LocalClassList[j].ID;
                        }
                    }
                }
            }
        }
Пример #2
0
        /// <summary>
        /// 采集视频列表
        /// </summary>
        /// <param name="maxcmsRequestOptions"></param>
        /// <param name="AutoAllCollect"></param>
        public virtual void VideoListCollect(MaxcmsRequestOptions requestOptions, bool AutoAllCollect = false)
        {
            MaxcmsHttp http = new MaxcmsHttp(requestOptions);

            if (http.isComplete)
            {
                MaxcmsRssList VideoLists = new MaxcmsParser(http.XmlDoc).Rss.list;
                string        idstring   = "";
                VideoLists.ListVideo.ForEach(x => idstring += "," + x.ToString());
                VideoInfoCollect(new MaxcmsRequestOptions(ServerUrl, MaxcmsAccess.videolist)
                {
                    ids = idstring.TrimStart(new char[] { ',' })
                });
                if (AutoAllCollect)
                {
                    var page = VideoLists.page + 1;
                    if (VideoLists.page > VideoLists.pagecount)
                    {
                        return;
                    }
                    requestOptions.page = page.ToString();
                    VideoListCollect(requestOptions, AutoAllCollect);
                }
            }
        }
Пример #3
0
        /// <summary>
        /// 视频采集(原始方法)
        /// </summary>
        /// <param name="requestOptions"></param>
        /// <param name="AutoAllCollect"></param>
        public virtual void VideoInfoCollect(MaxcmsRequestOptions requestOptions, bool AutoAllCollect = false)
        {
            requestOptions.access = MaxcmsAccess.videolist;
            MaxcmsHttp http = new MaxcmsHttp(requestOptions);

            if (http.isComplete)
            {
                var Rss = new MaxcmsParser(http.XmlDoc).Rss;
                if (Rss != null)
                {
                    Rss.list.ListVideo.ForEach(x =>
                    {
                        if (OnComplet != null)
                        {
                            VideoInfo n = x as VideoInfo;
                            OnComplet(ServerName, n);
                        }
                    });
                    if (AutoAllCollect)
                    {
                        var page = Rss.list.page + 1;
                        if (page > Rss.list.pagecount)
                        {
                            return;
                        }
                        requestOptions.page = page.ToString();
                        VideoInfoCollect(requestOptions, AutoAllCollect);
                    }
                }
            }
        }
Пример #4
0
        /// <summary>
        /// 按关键字采集(复合扩展方法)
        /// </summary>
        /// <param name="keyword">关键字</param>
        /// <param name="AutoAllCollect">是否自动翻页</param>
        public virtual void VideoInfoCollectByKeyword(string keyword, bool AutoAllCollect = false)
        {
            MaxcmsRequestOptions requestOptions = new MaxcmsRequestOptions(ServerUrl, MaxcmsAccess.list);

            requestOptions.keyword = keyword;
            VideoListCollect(requestOptions, AutoAllCollect);
        }
Пример #5
0
        /// <summary>
        /// 按分类采集 (扩展方法)
        /// </summary>
        /// <param name="VideoType"></param>
        /// <param name="AutoAllCollect">是否自动翻页</param>
        public virtual void VideoInfoCollectByClass(int VideoType, bool AutoAllCollect = false)
        {
            MaxcmsRequestOptions requestOptions = new MaxcmsRequestOptions(ServerUrl, MaxcmsAccess.videolist);

            requestOptions.type = VideoType.ToString();
            VideoInfoCollect(requestOptions, AutoAllCollect);
        }
Пример #6
0
        /// <summary>
        /// 按当天采集
        /// </summary>
        /// <param name="AutoAllCollect"></param>
        public virtual void VideoInfoCollectByDay(bool AutoAllCollect = false)
        {
            MaxcmsRequestOptions requestOptions = new MaxcmsRequestOptions(ServerUrl, MaxcmsAccess.videolist);

            requestOptions.hour = "24";
            VideoInfoCollect(requestOptions, AutoAllCollect);
        }
Пример #7
0
        /// <summary>
        /// 按ID采集(复合扩展方法)
        /// </summary>
        /// <param name="ids">视频ID,可多个,一般不超过30个</param>
        public virtual void VideoInfoCollectByID(params string[] ids)
        {
            MaxcmsRequestOptions requestOptions = new MaxcmsRequestOptions(ServerUrl, MaxcmsAccess.videolist);
            string idstring = "";

            for (int i = 0; i < ids.Length; i++)
            {
                idstring += "," + ids[i].ToString();
            }
            requestOptions.ids = idstring.TrimStart(new char[] { ',' });
            VideoInfoCollect(requestOptions, false);
        }
Пример #8
0
        public virtual void HttpCollect(MaxcmsRequestOptions Request)
        {
            isComplete = false;
            XmlDoc     = null;
            Error      = string.Empty;
            body       = string.Empty;
            Encoding   = new UTF8Encoding(false); //默认utf8
            RequestUrl = Request.GetUrl();        //按照请求设置取得访问地址
            HttpWebRequest req = WebRequest.Create(RequestUrl) as HttpWebRequest;

            try
            {
                HttpWebResponse res = req.GetResponse() as HttpWebResponse;
                using (StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding))
                {
                    body = sr.ReadToEnd();
                }
            }
            catch (Exception ex)
            {
                isComplete = false;
                body       = string.Empty;
                Error      = ex.Message;                            //错误信息
            }
            if (body.Length > 5 && body.Substring(0, 5) == "<?xml") //body 内容是 xml 文本
            {
                try
                {
                    XmlDoc = new XmlDocument();
                    XmlDoc.LoadXml(body);//载入文档
                    isComplete = true;
                }
                catch (Exception ex)
                {
                    isComplete = false;
                    body       = string.Empty;
                    Error      = ex.Message;//错误信息
                }
            }
            else
            {
                isComplete = false;
                body       = string.Empty;
                Error      = "Response data is Not Maxcms XML!";
            }
        }
Пример #9
0
 /// <summary>
 /// 实例化网络访问
 /// </summary>
 /// <param name="Request">网络请求选项</param>
 public MaxcmsHttp(MaxcmsRequestOptions Request)
 {
     HttpCollect(Request);
 }