public string LiveRecommandList(LiveNavFilter filter) { try { var recommands = LiveRecommandCache.Instance.Items[new RecommandKey(filter.platform, filter.auth, filter.navid)]; if (recommands.Count <= 0) { return(NoModeNav()); } var pars = VideoParsUtils.FormateSearchVideoPars(filter); var filters = VideoNodesUtil.CommonCustomFilter(filter); if (filters.Count <= 0) { return(CreatePageList(recommands[0], recommands[0].Lists, filter, pars, false)); } else { var videos = FilterList(recommands[0], filters, filter); return(CreatePageList(recommands[0], videos, filter, pars, false)); } } catch (KeyNotFoundException) { return(NoPlatformNav()); } catch (Exception ex) { return(BoxUtils.FormatErrorMsg(ex)); } }
/// <summary> /// 获取节目信息扩展接口 /// </summary> public string LiveListsEx(LiveFilter filter) { try { var pars = VideoParsUtils.FormatLiveVideoPars(filter); var filters = VideoNodesUtil.FormateLiveVideoExFilter(filter, pars); var key = new VideoNodeKey(filter.platform, filter.type, filter.auth); var query = LiveListCache.Instance.Items[key].Where(v => { bool result = true; foreach (var f in filters) { result = result && f(v, pars, filter); } return(result); }); return(CreatePageList(VideoSortUtils <LiveVideoNode> .SortLiveVideos(query, filter, pars), filter, pars, key, true)); } catch (KeyNotFoundException) { return(NoPlatLive()); } catch (Exception ex) { return(BoxUtils.FormatErrorMsg(ex)); } }
public string NavLists(NavFilter filter) { try { var key = new VideoNodeKey(filter.platform, 0, filter.auth); var pars = VideoParsUtils.FormateSearchVideoPars(filter); var filters = VideoNodesUtil.FormateVodFilter(filter); var rel = RecommandCache.Instance.Dictionary[filter.navid]; var query = rel.Channels[key].Where(v => { bool result = true; var video = ListCache.Instance.Dictionary[v]; foreach (var f in filters) { result = result && f(video, filter); } return(result); }); return(CreatePageList(rel, query, filter, pars, false)); } catch (KeyNotFoundException) { return(NoPlatformNav()); } catch (Exception ex) { return(BoxUtils.FormatErrorMsg(ex)); } }
public string ListByTags(ListFilter filter) { try { var pindex = VideoNodeKeyArray.Instance.Items[new VideoNodeKey(filter.platform, 0, filter.auth)]; var pars = VideoParsUtils.FormatListByTags(filter); var filters = VideoNodesUtil.FormateVideoFilter(filter, pars); var tag = pars.SortTag.Substring(0, pars.SortTag.LastIndexOf(":")); var dimension = pars.SortTag.Substring(pars.SortTag.LastIndexOf(":") + 1); IEnumerable <int> channels = new List <int>(); foreach (var type in BoxTypeCache.Instance.Items.Values) { var key = new TagNodeKey() { Dimension = dimension, Type = type.TypeID }; if (TagCache.Instance.Items.ContainsKey(key)) { var vkey = new VideoNodeKey(filter.platform, type.TypeID, filter.auth); var node = TagCache.Instance.Items[key].FirstOrDefault(v => v.Language[CustomArray.LanguageArray[0]].Title == tag); if (node != null && node.Channels.ContainsKey(vkey)) { channels = channels.Union(node.Channels[vkey]); } } } var query = channels.Where(v => { bool result = true; var video = ListCache.Instance.Dictionary[v]; foreach (var f in filters) { result = result && f(video, pars, filter); } return(result); } ); return(CreatePageList(query, filter, pars, false)); } catch (KeyNotFoundException) { return(NoPlatForm()); } catch (Exception ex) { return(BoxUtils.FormatErrorMsg(ex)); } }
public string ImageRecommand(CoverFilter filter) { try { var pars = VideoParsUtils.FormateSearchVideoPars(filter); var filters = VideoNodesUtil.CommonCustomFilter(filter); var rel = CoverNavCache.Instance.Dictionary[filter.navid]; return(CreatePageList(rel, filter, pars, filters, false)); } catch (KeyNotFoundException) { return(NoPlatformNav()); } catch (Exception ex) { return(BoxUtils.FormatErrorMsg(ex)); } }
public string RelevanceEx(RelevanceFilter filter) { try { var vids = filter.vids.FormatStrToArray(SplitArray.LineArray); int vid = 0; if (int.TryParse(vids[0], out vid)) { var video = ListCache.Instance.Dictionary[vid]; return(CreateSmarkPageList(LuceneNetUtil.RelevanceSearchEx(filter, SegmentKeyWord(video), filter.c + 1), filter, VideoParsUtils.FormateSearchVideoPars(filter), true)); } return(NoPlatForm()); } catch (KeyNotFoundException) { return(NoPlatForm()); } catch (Exception ex) { return(BoxUtils.FormatErrorMsg(ex)); } }
/// <summary> /// 频道名拼音扩展搜索 /// </summary> public string VideoSearchCHEx(ListFilter filter) { try { return(CreateSmarkPageList(LuceneNetUtil.SearchEx(filter, EpgIndexNode.CnNameField, EpgIndexNode.NameOccurs, Searcher.SegmentChWord(filter.k), false), filter, VideoParsUtils.FormateSearchVideoPars(filter), true)); } catch (KeyNotFoundException) { return(NoPlatForm()); } catch (Exception ex) { return(BoxUtils.FormatErrorMsg(ex)); } }
/// <summary> /// 获取视频数据基本接口 /// </summary> public string VideoList(ListFilter filter) { try { var pars = VideoParsUtils.FormatVideoPars(filter); var vkey = new VideoNodeKey(filter.platform, filter.type, filter.auth); var filters = VideoNodesUtil.FormateVideoFilter(filter, pars); IEnumerable <int> channels; if (filter.treeleftid != 0) { var node = TreeNodeCache.Instance.Items[filter.treeleftid]; if (node.Channels.ContainsKey(vkey)) { channels = VideoSortUtils <VideoNode> .Sort(node.Channels[vkey], filter); } else { channels = new List <int>(); } } else if (!string.IsNullOrEmpty(pars.SortTag)) { try { var tag = pars.SortTag.Substring(0, pars.SortTag.LastIndexOf(":")); var dimension = pars.SortTag.Substring(pars.SortTag.LastIndexOf(":") + 1); var key = new TagNodeKey() { Dimension = dimension, Type = filter.type }; if (TagCache.Instance.Items.ContainsKey(key)) { var node = TagCache.Instance.Items[key].FirstOrDefault(v => v.Language[CustomArray.LanguageArray[0]].Title == tag); if (node != null && node.Channels.ContainsKey(vkey)) { channels = node.Channels[vkey]; } else { channels = new List <int>(); } } else { channels = new List <int>(); } } catch { return(BoxUtils.FormatErrorMsg("ntags分析错误")); } } else { channels = ListCache.Instance.Items[vkey].OrderArray; } var query = channels.Where(v => { bool result = true; var video = ListCache.Instance.Dictionary[v]; foreach (var f in filters) { result = result && f(video, pars, filter); } return(result); }); return(CreatePageList(VideoSortUtils <VideoNode> .Sort(query, filter), filter, pars, false)); } catch (KeyNotFoundException) { return(NoPlatForm()); } catch (Exception ex) { return(BoxUtils.FormatErrorMsg(ex)); } }