/// <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; } } } } }
/// <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); } } }
/// <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); } } } }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
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!"; } }
/// <summary> /// 实例化网络访问 /// </summary> /// <param name="Request">网络请求选项</param> public MaxcmsHttp(MaxcmsRequestOptions Request) { HttpCollect(Request); }