/// <summary> /// 点播基本接口条件过滤方法集 /// </summary> public static List<Func<VideoNode, VideoPars, ListFilter, bool>> FormateVideoFilter(ListFilter filter, VideoPars pars) { var filters = new List<Func<VideoNode, VideoPars, ListFilter, bool>>(4); if (!string.IsNullOrEmpty(filter.beginletter)) filters.Add(FilterFunUtils.BeginLetter); if (pars.Flags != null) filters.Add(FilterFunUtils.Flags); if (pars.Tags != null) filters.Add(FilterFunUtils.Tags); if (filter.ver <= 1) { filters.Add(FilterFunUtils.Ver1); } else { filters.Add(FilterFunUtils.Ver2); if (filter.screen != "v") { filters.Add(FilterFunUtils.Virtual); } } if (filter.forbidden) { filters.Add(FilterFunUtils.Forbidden); } return filters; }
/// <summary> /// LuceneNet搜索请求参数处理 /// </summary> public static VideoPars FormateSearchVideoPars(ExFilterBase filter) { var vp = new VideoPars(); if (filter.conlen == 0) { if (filter.ver <= 1) { vp.ResponseFun = VideoResponseUtils.CustomListRes; } else { vp.ResponseFun = VideoResponseUtils.CustomListResVer2; } } else { if (filter.ver <= 1) { vp.ResponseFun = VideoResponseUtils.ConLenListRes; } else { vp.ResponseFun = VideoResponseUtils.ConLenListResVer2; } } return(vp); //var vp = new VideoPars(); //if (filter.conlen == 0) // vp.ResponseFun = VideoResponseUtils.CustomListRes; //else // vp.ResponseFun = VideoResponseUtils.ConLenListRes; //return vp; }
/// <summary> /// 直播搜索请求参数处理 /// </summary> public static VideoPars FormatLiveSearchVideoPars(LiveSearchFilter filter) { var vp = new VideoPars(); if (!string.IsNullOrEmpty(filter.flag)) { vp.Flags = filter.flag.FormatStrToArray(SplitArray.LineArray); } if (filter.forbidden) { filter.forbidden = VideoNodeKeyArray.Instance.Forbidden[new VideoNodeKey(filter.platform, 0, filter.auth)]; if (filter.forbidden) { if (ForbiddenAreaCache.Instance.Items.ContainsKey(filter.fbcode)) { vp.ForbiddenName = ForbiddenAreaCache.Instance.Items[filter.fbcode].ForbiddenAreaName; } else { filter.forbidden = false; } } } return(vp); }
/// <summary> /// 搜索请求参数处理 /// </summary> public static VideoPars FormatSearchVideoPars(ListFilter filter) { VideoPars vp = new VideoPars(); if (!string.IsNullOrEmpty(filter.flag)) { vp.Flags = filter.flag.FormatStrToArray(SplitArray.LineArray); } if (filter.conlen == 0) { vp.ResponseFun = VideoResponseUtils.CustomListRes; } else { vp.ResponseFun = VideoResponseUtils.ConLenListRes; } if (filter.forbidden) { filter.forbidden = VideoNodeKeyArray.Instance.Forbidden[new VideoNodeKey(filter.platform, 0, filter.auth)]; if (filter.forbidden) { if (ForbiddenAreaCache.Instance.Items.ContainsKey(filter.fbcode)) { vp.ForbiddenName = ForbiddenAreaCache.Instance.Items[filter.fbcode].ForbiddenAreaName; } else { filter.forbidden = false; } } } return(vp); }
/// <summary> /// 分页输出 /// </summary> private string CreatePageList(CoverNavNode node, CoverFilter filter, VideoPars pars, List <Func <VideoBase, ExFilterBase, bool> > filters, bool isEx) { var key = new VideoNodeKey(filter.platform, 0, filter.auth); var xml = new XElement("cover_list"); int all = 0; var images = node.Images[key]; for (var i = 0; i < images.Count && all < filter.c; i++) { var image = CoverImageCache.Instance.Items[images[i]]; bool result = true; VideoBase video = null; if (image.ChannelType == 3) { video = ListCache.Instance.Dictionary[image.ChannelId]; } else { video = LiveListCache.Instance.Dictionary[image.ChannelId]; } foreach (var f in filters) { result = result && f(video, filter); } if (!result) { continue; } all++; XElement playlink; if (image.ChannelType == 3) { playlink = VideoResponseUtils.CreateVodPlayLinkVer2(image.ChannelId, filter, isEx); } else { playlink = VideoResponseUtils.CreateLivePlayLinkVer2(image.ChannelId, filter, isEx); } var subttitle = image.Language[filter.lang].SubTitle; if (filter.conlen != 0) { subttitle = subttitle.FormateSubStr(filter.conlen); } xml.Add(new XElement("c", new XElement("title", image.Language[filter.lang].Title), new XElement("note", subttitle), new XElement("vid", image.ChannelId), new XElement("vtype", image.ChannelType == 3 ? "vod" : "live"), playlink, new XElement("cover_imgurl", image.ImageUrl), new XElement("onlinetime", image.OnlineTime.ToString("yyyy-MM-dd HH:mm:ss")) )); } return(xml.ToString(SaveOptions.DisableFormatting)); }
/// <summary> /// 点播扩展接口条件过滤方法集 /// </summary> public static List<Func<VideoNode, VideoPars, ListFilter, bool>> FormateVideoExFilter(ListFilter filter, VideoPars pars) { var filters = new List<Func<VideoNode, VideoPars, ListFilter, bool>>(10); if (!string.IsNullOrEmpty(filter.beginletter)) filters.Add(FilterFunUtils.BeginLetter); if (pars.Flags != null) filters.Add(FilterFunUtils.Flags); if (pars.Tags != null) filters.Add(FilterFunUtils.Tags); if (filter.ver <= 1) { filters.Add(FilterFunUtils.Ver1); } else { filters.Add(FilterFunUtils.Ver2); if (filter.screen != "v") { filters.Add(FilterFunUtils.Virtual); } } if (filter.forbidden) { filters.Add(FilterFunUtils.Forbidden); } if (filter.forbidvip == 1) filters.Add(FilterFunUtils.ForbidVip); if (filter.bitratemin != 0) filters.Add(FilterFunUtils.BitMin); if (filter.bitratemax != 0) filters.Add(FilterFunUtils.BitMax); if (filter.wmin != 0) filters.Add(FilterFunUtils.WMin); if (filter.wmax != 0) filters.Add(FilterFunUtils.WMax); if (filter.hmin != 0) filters.Add(FilterFunUtils.HMin); if (filter.hmax != 0) filters.Add(FilterFunUtils.HMax); return filters; }
public static VideoPars FormatListByTags(ListFilter filter) { var vp = new VideoPars(); var ntags = filter.ntags.FormatStrToArray(SplitArray.LineArray); if (ntags.Length > 0) { vp.SortTag = ntags[0]; } vp.Tags = ntags.Skip(1); if (!string.IsNullOrEmpty(filter.flag)) { vp.Flags = filter.flag.FormatStrToArray(SplitArray.LineArray); } if (filter.conlen == 0) { vp.ResponseFun = VideoResponseUtils.CustomListResVer2; } else { vp.ResponseFun = VideoResponseUtils.ConLenListResVer2; } if (filter.forbidden) { filter.forbidden = VideoNodeKeyArray.Instance.Forbidden[new VideoNodeKey(filter.platform, 0, filter.auth)]; if (filter.forbidden) { if (ForbiddenAreaCache.Instance.Items.ContainsKey(filter.fbcode)) { vp.ForbiddenName = ForbiddenAreaCache.Instance.Items[filter.fbcode].ForbiddenAreaName; } else { filter.forbidden = false; } } } return(vp); }
/// <summary> /// 点播基本接口条件过滤方法集 /// </summary> public static List <Func <VideoNode, VideoPars, ListFilter, bool> > FormateVideoFilter(ListFilter filter, VideoPars pars) { var filters = new List <Func <VideoNode, VideoPars, ListFilter, bool> >(4); if (!string.IsNullOrEmpty(filter.beginletter)) { filters.Add(FilterFunUtils.BeginLetter); } if (pars.Flags != null) { filters.Add(FilterFunUtils.Flags); } if (pars.Tags != null) { filters.Add(FilterFunUtils.Tags); } if (filter.ver <= 1) { filters.Add(FilterFunUtils.Ver1); } else { filters.Add(FilterFunUtils.Ver2); if (filter.screen != "v") { filters.Add(FilterFunUtils.Virtual); } } if (filter.forbidden) { filters.Add(FilterFunUtils.Forbidden); } return(filters); }
/// <summary> /// 直播基本接口条件过滤方法集 /// </summary> public static List <Func <LiveVideoNode, VideoPars, LiveFilter, bool> > FormateLiveVideoFilter(LiveFilter filter, VideoPars pars) { var filters = new List <Func <LiveVideoNode, VideoPars, LiveFilter, bool> >(4); filters.Add(FilterFunUtils.LiveHiddenFlag); if (filter.forbidden) { filters.Add(FilterFunUtils.LiveForbidden); } if (!string.IsNullOrEmpty(filter.beginletter)) { filters.Add(FilterFunUtils.LiveBeginLetter); } if (pars.Flags != null) { filters.Add(FilterFunUtils.LiveFlags); } if (filter.ver <= 1) { filters.Add(FilterFunUtils.LiveVer1); } else { filters.Add(FilterFunUtils.LiveVer2); } return(filters); }
/// <summary> /// 直播标准排序 /// </summary> public static IEnumerable <LiveVideoNode> StandardLiveSort(IEnumerable <LiveVideoNode> query, LiveFilter filter, VideoPars pars) { if (string.IsNullOrEmpty(pars.SortTag)) { //AuthKey key = new AuthKey() { Auth = filter.auth, PlatForm = filter.platform }; //if (PlatFormCache.Instance.AuthItems.ContainsKey(key)) //{ // return query.OrderBy(v => { if (v.MainRank.ContainsKey(key))return v.MainRank[key]; return 0; }); //} //key.Auth = null; //return query.OrderBy(v => { if (v.MainRank.ContainsKey(key))return v.MainRank[key]; return 0; }); //return query.OrderByDescending(video => video.Hot); return(query.OrderBy(v => v.Rank)); } return(query.OrderBy(video => video.TagsRank[pars.SortTag])); }
/// <summary> /// 频道排序,节目获取接口使用 /// </summary> public static IEnumerable <T> SortVideos(IEnumerable <T> query, ListFilter filter, VideoPars pars) { if (!string.IsNullOrEmpty(filter.order)) { if (filter.order == "t") //热度、排行榜 { query = HotSort(query, filter); } else if (filter.order == "n") //更新时间 { query = query.OrderByDescending(video => video.Main.ModifyTime); } else //标准 { query = StandardSort(query, filter, pars); } } else //标准 { query = StandardSort(query, filter, pars); } return(query); }
/// <summary> /// 分页输出 /// </summary> private static string CreatePageList(IEnumerable <int> list, ListFilter filter, VideoPars pars, bool isEx) { if (filter.order != "s") { list = VideoSortUtils <VideoNode> .Sort(list, filter); } var xml = new XElement("vlist"); xml.Add(new XElement("countInPage", filter.c), new XElement("page", filter.s)); var count = list.PageList(filter, pars, xml, isEx); xml.AddFirst(new XElement("count", count), new XElement("page_count", PageUtils.PageCount(count, filter.c))); return(xml.ToString(SaveOptions.DisableFormatting)); }
/// <summary> /// 直播基本接口条件过滤方法集 /// </summary> public static List<Func<LiveVideoNode, VideoPars, LiveFilter, bool>> FormateLiveVideoFilter(LiveFilter filter, VideoPars pars) { var filters = new List<Func<LiveVideoNode, VideoPars, LiveFilter, bool>>(4); filters.Add(FilterFunUtils.LiveHiddenFlag); if (filter.forbidden) { filters.Add(FilterFunUtils.LiveForbidden); } if (!string.IsNullOrEmpty(filter.beginletter)) filters.Add(FilterFunUtils.LiveBeginLetter); if (pars.Flags != null) filters.Add(FilterFunUtils.LiveFlags); if (filter.ver <= 1) filters.Add(FilterFunUtils.LiveVer1); else filters.Add(FilterFunUtils.LiveVer2); return filters; }
/// <summary> /// 分页输出 /// </summary> private string CreatePageList(RecommandNode recommand, IEnumerable <int> videos, NavFilter filter, VideoPars pars, bool isEx) { var xml = new XElement("vlist"); xml.Add(new XElement("nav_id", recommand.Id), new XElement("nav_name", recommand.Language[filter.lang].Title), new XElement("count", 0), new XElement("page_count", 0) ); var count = videos.PageList(filter, pars, xml, isEx); xml.Element("count").SetValue(count); xml.Element("page_count").SetValue(PageUtils.PageCount(count, filter.c)); return(xml.ToString(SaveOptions.DisableFormatting)); }
/// <summary> /// 点播节目请求参数处理 /// </summary> public static VideoPars FormatVideoPars(ListFilter filter) { var vp = new VideoPars(); if (filter.ver <= 1) { if (!string.IsNullOrEmpty(filter.tag)) { var tags = filter.tag.FormatStrToArrayEmpty(SplitArray.LineArray); var dimensiontags = new List <string>(tags.Length); for (int i = 0; i < tags.Length; i++) { var childetags = tags[i].FormatStrToArray(SplitArray.DHArray); if (i == 0 && childetags.Length > 0) { dimensiontags.AddEnumerator(childetags.Select(v => VideoUtils.FormatStrArray(v.Length + 8, v, ":", CustomArray.CatalogDimension))); } else if (i == 1 && childetags.Length > 0) { dimensiontags.AddEnumerator(childetags.Select(v => VideoUtils.FormatStrArray(v.Length + 8, v, ":", CustomArray.AreaDimension))); } else if (i == 2 && childetags.Length > 0) { dimensiontags.AddEnumerator(childetags.Select(v => VideoUtils.FormatStrArray(v.Length + 8, v, ":", CustomArray.YearDimension))); } else if (i == 3 && childetags.Length > 0) { dimensiontags.AddEnumerator(childetags.Select(v => VideoUtils.FormatStrArray(v.Length + 8, v, ":", CustomArray.ActDimension))); } else if (i == 4 && childetags.Length > 0) { dimensiontags.AddEnumerator(childetags.Select(v => VideoUtils.FormatStrArray(v.Length + 12, v, ":", CustomArray.DirectorDimension))); } } if (dimensiontags.Count > 0 && filter.order == "s") { vp.SortTag = dimensiontags[0]; dimensiontags.RemoveAt(0); } vp.Tags = dimensiontags; } } else { if (!string.IsNullOrEmpty(filter.ntags)) { var ntags = filter.ntags.FormatStrToArray(SplitArray.LineArray); if (ntags.Length > 0 && filter.order == "s") { vp.SortTag = ntags[0]; } vp.Tags = ntags; } } if (!string.IsNullOrEmpty(filter.flag)) { vp.Flags = filter.flag.FormatStrToArray(SplitArray.LineArray); } if (filter.conlen == 0) { if (filter.ver <= 1) { vp.ResponseFun = VideoResponseUtils.CustomListRes; } else { vp.ResponseFun = VideoResponseUtils.CustomListResVer2; } } else { if (filter.ver <= 1) { vp.ResponseFun = VideoResponseUtils.ConLenListRes; } else { vp.ResponseFun = VideoResponseUtils.ConLenListResVer2; } } if (filter.forbidden) { filter.forbidden = VideoNodeKeyArray.Instance.Forbidden[new VideoNodeKey(filter.platform, 0, filter.auth)]; if (filter.forbidden) { if (ForbiddenAreaCache.Instance.Items.ContainsKey(filter.fbcode)) { vp.ForbiddenName = ForbiddenAreaCache.Instance.Items[filter.fbcode].ForbiddenAreaName; } else { filter.forbidden = false; } } } return(vp); }
/// <summary> /// 分页输出 /// </summary> private string CreatePageList(LiveRecommandNode recommand, List<LiveVideoNode> videos, LiveNavFilter filter, VideoPars pars, bool isEx) { var vkey = new VideoNodeKey(filter.platform, 0, filter.auth); var xml = new XElement("vlist"); xml.Add(new XElement("nav_id", recommand.ID)); xml.Add(new XElement("nav_name", recommand.Language[filter.lang].Title)); xml.Add(new XElement("count", videos.Count)); xml.Add(new XElement("page_count", PageUtils.PageCount(videos.Count, filter.c))); if (filter.c != 0 && filter.s != 0) { //currentVideos = videos.Skip(filter.c * (filter.s - 1)).Take(filter.c).ToList(); xml.Add(new XElement("countInPage", filter.c)); xml.Add(new XElement("page", filter.s)); var index = (filter.s - 1) * filter.c; var max = index + filter.c; if (max > videos.Count) max = videos.Count; for (var i = index; i < max; i++) { xml.Add(VideoResponseUtils.CustomLiveListRes(videos[i], filter, 0, isEx)); } } else { xml.Add(from v in videos select VideoResponseUtils.CustomLiveListRes(v, filter, 0, isEx)); } return xml.ToString(SaveOptions.DisableFormatting); }
/// <summary> /// 分页输出频道列表 /// </summary> private string CreatePageList(IEnumerable <LiveVideoNode> list, LiveFilter filter, VideoPars pars, VideoNodeKey key, bool isEx) { var xml = new XElement("vlist"); xml.Add(new XElement("countInPage", filter.c), new XElement("page", filter.s)); var count = list.PageList(filter, pars, xml, isEx); xml.AddFirst(new XElement("count", count), new XElement("page_count", PageUtils.PageCount(count, filter.c))); return(xml.ToString(SaveOptions.DisableFormatting)); }
/// <summary> /// 直播扩展接口条件过滤方法集 /// </summary> public static List<Func<LiveVideoNode, VideoPars, LiveFilter, bool>> FormateLiveVideoExFilter(LiveFilter filter, VideoPars pars) { var filters = new List<Func<LiveVideoNode, VideoPars, LiveFilter, bool>>(11); filters.Add(FilterFunUtils.LiveHiddenFlag); if (filter.forbidden) { filters.Add(FilterFunUtils.LiveForbidden); } if (!string.IsNullOrEmpty(filter.beginletter)) filters.Add(FilterFunUtils.LiveBeginLetter); if (pars.Flags != null) filters.Add(FilterFunUtils.LiveFlags); if (filter.ver <= 1) filters.Add(FilterFunUtils.LiveVer1); else filters.Add(FilterFunUtils.LiveVer2); if (filter.forbidvip == 1) filters.Add(FilterFunUtils.LiveForbidVip); if (filter.bitratemin != 0) filters.Add(FilterFunUtils.LiveBitMin); if (filter.bitratemax != 0) filters.Add(FilterFunUtils.LiveBitMax); if (filter.wmin != 0) filters.Add(FilterFunUtils.LiveWMin); if (filter.wmax != 0) filters.Add(FilterFunUtils.LiveWMax); if (filter.hmin != 0) filters.Add(FilterFunUtils.LiveHMin); if (filter.hmax != 0) filters.Add(FilterFunUtils.LiveHMax); return filters; }
/// <summary> /// 分页输出 /// </summary> private string CreatePageList(LiveRecommandNode recommand, List <LiveVideoNode> videos, LiveNavFilter filter, VideoPars pars, bool isEx) { var vkey = new VideoNodeKey(filter.platform, 0, filter.auth); var xml = new XElement("vlist"); xml.Add(new XElement("nav_id", recommand.ID)); xml.Add(new XElement("nav_name", recommand.Language[filter.lang].Title)); xml.Add(new XElement("count", videos.Count)); xml.Add(new XElement("page_count", PageUtils.PageCount(videos.Count, filter.c))); if (filter.c != 0 && filter.s != 0) { //currentVideos = videos.Skip(filter.c * (filter.s - 1)).Take(filter.c).ToList(); xml.Add(new XElement("countInPage", filter.c)); xml.Add(new XElement("page", filter.s)); var index = (filter.s - 1) * filter.c; var max = index + filter.c; if (max > videos.Count) { max = videos.Count; } for (var i = index; i < max; i++) { xml.Add(VideoResponseUtils.CustomLiveListRes(videos[i], filter, 0, isEx)); } } else { xml.Add(from v in videos select VideoResponseUtils.CustomLiveListRes(v, filter, 0, isEx)); } return(xml.ToString(SaveOptions.DisableFormatting)); }
/// <summary> /// 分页输出 /// </summary> private string CreatePageList(RecommandNode recommand, IEnumerable<int> videos, NavFilter filter, VideoPars pars, bool isEx) { var xml = new XElement("vlist"); xml.Add(new XElement("nav_id", recommand.Id), new XElement("nav_name", recommand.Language[filter.lang].Title), new XElement("count", 0), new XElement("page_count", 0) ); var count = videos.PageList(filter, pars, xml, isEx); xml.Element("count").SetValue(count); xml.Element("page_count").SetValue(PageUtils.PageCount(count, filter.c)); return xml.ToString(SaveOptions.DisableFormatting); }
/// <summary> /// LuceneNet分页输出 /// </summary> private static string CreateSmarkPageList(LuceneResultNode result, RelevanceFilter filter, VideoPars pars, bool isEx) { var xml = new XElement("vlist"); var count = result.AllCount - 1; if (count < 0) count = 0; xml.Add(new XElement("count", count)); //xml.Add(new XElement("page_count", PageUtils.PageCount(result.AllCount, filter.c))); //xml.Add(new XElement("countInPage", filter.c)); //xml.Add(new XElement("page", filter.s)); for (var i = 1; i < result.AllCount; i++) { xml.Add(pars.ResponseFun(ListCache.Instance.Dictionary[int.Parse(result.Result[i])], filter, isEx)); } return xml.ToString(SaveOptions.DisableFormatting); }
/// <summary> /// 标准排序 /// </summary> public static IEnumerable <T> StandardSort(IEnumerable <T> query, ExFilterBase filter, VideoPars pars) { if (string.IsNullOrEmpty(pars.SortTag)) { //return query.OrderByDescending(video => video.Main.CreateTime); return(query.OrderByDescending(video => video.Main.Rank).ThenByDescending(video => video.Main.CreateTime)); } return(query.OrderBy(video => video.TagsRank[pars.SortTag])); }
/// <summary> /// LuceneNet分页输出 /// </summary> private static string CreateSmarkPageList(LuceneResultNode result, ListFilter filter, VideoPars pars, bool isEx) { var xml = new XElement("vlist"); xml.Add(new XElement("count", result.AllCount)); xml.Add(new XElement("page_count", PageUtils.PageCount(result.AllCount, filter.c))); xml.Add(new XElement("countInPage", filter.c)); xml.Add(new XElement("page", filter.s)); if (filter.shownav == 1) { xml.Add(new XElement("nav", from type in result.Types select new XElement("type", new XAttribute("id", type.Key), new XAttribute("name", BoxTypeCache.Instance.Items[type.Key].Language[filter.lang].Title), new XAttribute("count", type.Value) ))); } xml.Add(from v in result.Result select pars.ResponseFun(ListCache.Instance.Dictionary[int.Parse(v)], filter, isEx)); return xml.ToString(SaveOptions.DisableFormatting); }
/// <summary> /// 直播频道排序,节目获取接口使用 /// </summary> public static IEnumerable <LiveVideoNode> SortLiveVideos(IEnumerable <LiveVideoNode> query, LiveFilter filter, VideoPars pars) { if (!string.IsNullOrEmpty(filter.order)) { if (filter.order == "t") //热度、排行榜 { query = HotLiveSort(query, filter); } else if (filter.order == "n") //更新时间 { query = query.OrderByDescending(video => video.Main.ModifyTime); } else if (filter.order == "a") { query = query.OrderBy(video => video.ChannelName); } else if (filter.order == "g") { query = query.OrderByDescending(video => video.BKInfo.Score); } else //标准 { query = StandardLiveSort(query, filter, pars); } } else //标准 { query = StandardLiveSort(query, filter, pars); } return(query); }
/// <summary> /// 分页输出 /// </summary> private string CreatePageList(CoverNavNode node, CoverFilter filter, VideoPars pars, List<Func<VideoBase, ExFilterBase, bool>> filters, bool isEx) { var key = new VideoNodeKey(filter.platform, 0, filter.auth); var xml = new XElement("cover_list"); int all = 0; var images = node.Images[key]; for (var i = 0; i < images.Count && all < filter.c; i++) { var image = CoverImageCache.Instance.Items[images[i]]; bool result = true; VideoBase video = null; if (image.ChannelType == 3) video = ListCache.Instance.Dictionary[image.ChannelId]; else video = LiveListCache.Instance.Dictionary[image.ChannelId]; foreach (var f in filters) { result = result && f(video, filter); } if (!result) continue; all++; XElement playlink; if (image.ChannelType == 3) playlink = VideoResponseUtils.CreateVodPlayLinkVer2(image.ChannelId, filter, isEx); else playlink = VideoResponseUtils.CreateLivePlayLinkVer2(image.ChannelId, filter, isEx); var subttitle = image.Language[filter.lang].SubTitle; if (filter.conlen != 0) subttitle = subttitle.FormateSubStr(filter.conlen); xml.Add(new XElement("c", new XElement("title", image.Language[filter.lang].Title), new XElement("note", subttitle), new XElement("vid", image.ChannelId), new XElement("vtype", image.ChannelType == 3 ? "vod" : "live"), playlink, new XElement("cover_imgurl", image.ImageUrl), new XElement("onlinetime", image.OnlineTime.ToString("yyyy-MM-dd HH:mm:ss")) )); } return xml.ToString(SaveOptions.DisableFormatting); }
/// <summary> /// LuceneNet分页输出 /// </summary> private static string CreateSmarkPageList(LuceneResultNode result, RelevanceFilter filter, VideoPars pars, bool isEx) { var xml = new XElement("vlist"); var count = result.AllCount - 1; if (count < 0) { count = 0; } xml.Add(new XElement("count", count)); //xml.Add(new XElement("page_count", PageUtils.PageCount(result.AllCount, filter.c))); //xml.Add(new XElement("countInPage", filter.c)); //xml.Add(new XElement("page", filter.s)); for (var i = 1; i < result.AllCount; i++) { xml.Add(pars.ResponseFun(ListCache.Instance.Dictionary[int.Parse(result.Result[i])], filter, isEx)); } return(xml.ToString(SaveOptions.DisableFormatting)); }
/// <summary> /// LuceneNet分页输出 /// </summary> private static string CreateSmarkPageList(LuceneResultNode result, ListFilter filter, VideoPars pars, bool isEx) { var xml = new XElement("vlist"); xml.Add(new XElement("count", result.AllCount)); xml.Add(new XElement("page_count", PageUtils.PageCount(result.AllCount, filter.c))); xml.Add(new XElement("countInPage", filter.c)); xml.Add(new XElement("page", filter.s)); if (filter.shownav == 1) { xml.Add(new XElement("nav", from type in result.Types select new XElement("type", new XAttribute("id", type.Key), new XAttribute("name", BoxTypeCache.Instance.Items[type.Key].Language[filter.lang].Title), new XAttribute("count", type.Value) ))); } xml.Add(from v in result.Result select pars.ResponseFun(ListCache.Instance.Dictionary[int.Parse(v)], filter, isEx)); return(xml.ToString(SaveOptions.DisableFormatting)); }
/// <summary> /// 直播扩展接口条件过滤方法集 /// </summary> public static List <Func <LiveVideoNode, VideoPars, LiveFilter, bool> > FormateLiveVideoExFilter(LiveFilter filter, VideoPars pars) { var filters = new List <Func <LiveVideoNode, VideoPars, LiveFilter, bool> >(11); filters.Add(FilterFunUtils.LiveHiddenFlag); if (filter.forbidden) { filters.Add(FilterFunUtils.LiveForbidden); } if (!string.IsNullOrEmpty(filter.beginletter)) { filters.Add(FilterFunUtils.LiveBeginLetter); } if (pars.Flags != null) { filters.Add(FilterFunUtils.LiveFlags); } if (filter.ver <= 1) { filters.Add(FilterFunUtils.LiveVer1); } else { filters.Add(FilterFunUtils.LiveVer2); } if (filter.forbidvip == 1) { filters.Add(FilterFunUtils.LiveForbidVip); } if (filter.bitratemin != 0) { filters.Add(FilterFunUtils.LiveBitMin); } if (filter.bitratemax != 0) { filters.Add(FilterFunUtils.LiveBitMax); } if (filter.wmin != 0) { filters.Add(FilterFunUtils.LiveWMin); } if (filter.wmax != 0) { filters.Add(FilterFunUtils.LiveWMax); } if (filter.hmin != 0) { filters.Add(FilterFunUtils.LiveHMin); } if (filter.hmax != 0) { filters.Add(FilterFunUtils.LiveHMax); } return(filters); }
/// <summary> /// 分页输出 /// </summary> private static string CreatePageList(IEnumerable<int> list, ListFilter filter, VideoPars pars, bool isEx) { if (filter.order != "s") list = VideoSortUtils<VideoNode>.Sort(list, filter); var xml = new XElement("vlist"); xml.Add(new XElement("countInPage", filter.c), new XElement("page", filter.s)); var count = list.PageList(filter, pars, xml, isEx); xml.AddFirst(new XElement("count", count), new XElement("page_count", PageUtils.PageCount(count, filter.c))); return xml.ToString(SaveOptions.DisableFormatting); }
/// <summary> /// 点播扩展接口条件过滤方法集 /// </summary> public static List <Func <VideoNode, VideoPars, ListFilter, bool> > FormateVideoExFilter(ListFilter filter, VideoPars pars) { var filters = new List <Func <VideoNode, VideoPars, ListFilter, bool> >(10); if (!string.IsNullOrEmpty(filter.beginletter)) { filters.Add(FilterFunUtils.BeginLetter); } if (pars.Flags != null) { filters.Add(FilterFunUtils.Flags); } if (pars.Tags != null) { filters.Add(FilterFunUtils.Tags); } if (filter.ver <= 1) { filters.Add(FilterFunUtils.Ver1); } else { filters.Add(FilterFunUtils.Ver2); if (filter.screen != "v") { filters.Add(FilterFunUtils.Virtual); } } if (filter.forbidden) { filters.Add(FilterFunUtils.Forbidden); } if (filter.forbidvip == 1) { filters.Add(FilterFunUtils.ForbidVip); } if (filter.bitratemin != 0) { filters.Add(FilterFunUtils.BitMin); } if (filter.bitratemax != 0) { filters.Add(FilterFunUtils.BitMax); } if (filter.wmin != 0) { filters.Add(FilterFunUtils.WMin); } if (filter.wmax != 0) { filters.Add(FilterFunUtils.WMax); } if (filter.hmin != 0) { filters.Add(FilterFunUtils.HMin); } if (filter.hmax != 0) { filters.Add(FilterFunUtils.HMax); } return(filters); }
/// <summary> /// 分页输出频道列表 /// </summary> private string CreatePageList(IEnumerable<LiveVideoNode> list, LiveFilter filter, VideoPars pars, VideoNodeKey key, bool isEx) { var xml = new XElement("vlist"); xml.Add(new XElement("countInPage", filter.c), new XElement("page", filter.s)); var count = list.PageList(filter, pars, xml, isEx); xml.AddFirst(new XElement("count", count), new XElement("page_count", PageUtils.PageCount(count, filter.c))); return xml.ToString(SaveOptions.DisableFormatting); }