Exemplo n.º 1
0
 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));
     }
 }
Exemplo n.º 2
0
 /// <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));
     }
 }
Exemplo n.º 3
0
 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));
     }
 }
Exemplo n.º 4
0
 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));
     }
 }
Exemplo n.º 5
0
 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));
     }
 }
Exemplo n.º 6
0
 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));
     }
 }
Exemplo n.º 7
0
 /// <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));
     }
 }
Exemplo n.º 8
0
 /// <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));
     }
 }