Exemplo n.º 1
0
        public override int DiscoverSubCategories(Category parentCategory)
        {
            SubCatHolder holder = parentCategory.Other as SubCatHolder;

            if (holder != null)
            {
                if (holder.SubCategories != null && holder.SubCategories.Count > 0)
                {
                    parentCategory.SubCategories = holder.SubCategories;
                    searchableCats = holder.SearchableCategories;
                    return(holder.SubCategories.Count);
                }
            }
            else
            {
                NaviXMediaItem naviXItem = parentCategory.Other as NaviXMediaItem;
                if (naviXItem != null)
                {
                    if (naviXItem.Type == "search")
                    {
                        throw new OnlineVideosException("To search specify search category and use OnlineVideos search feature");
                    }
                }
            }

            string plUrl = (parentCategory as RssLink).Url;

            holder = getCats(plUrl, parentCategory);
            parentCategory.SubCategories = holder.SubCategories;
            searchableCats       = holder.SearchableCategories;
            parentCategory.Other = holder;
            return(holder.SubCategories.Count);
        }
Exemplo n.º 2
0
        public override List <VideoInfo> GetVideos(Category category)
        {
            List <VideoInfo> vids = new List <VideoInfo>();
            NaviXMediaItem   item = category.Other as NaviXMediaItem;

            if (item == null)
            {
                return(vids);
            }
            if (item.Type == "video")
            {
                VideoInfo vid = new VideoInfo();
                vid.Title       = category.Name;
                vid.Description = category.Description;
                vid.Thumb       = category.Thumb;
                vid.Airdate     = item.Date;
                vid.Other       = item;
                vids.Add(vid);
            }
            else if (item.Type.StartsWith("rss"))
            {
                string url = item.URL;
                if (url.StartsWith("rss://"))
                {
                    url = "http://" + url.Substring(6);
                }
                RssToolkit.Rss.RssDocument doc = GetWebData <RssToolkit.Rss.RssDocument>(url);
                if (doc != null)
                {
                    foreach (RssToolkit.Rss.RssItem rssItem in doc.Channel.Items)
                    {
                        VideoInfo vid = Helpers.RssUtils.VideoInfoFromRssItem(rssItem, true, new Predicate <string>(IsPossibleVideo));
                        if (vid != null)
                        {
                            vids.Add(vid);
                        }
                    }
                }
            }
            return(vids);
        }
Exemplo n.º 3
0
        public override string GetVideoUrl(VideoInfo video)
        {
            NaviXMediaItem item = video.Other as NaviXMediaItem;

            if (item == null)
            {
                return(video.VideoUrl);
            }

            string urlStr = item.URL;

            if (item.Type == "video" && !string.IsNullOrEmpty(item.Processor))
            {
                NaviXProcessor proc = new NaviXProcessor(item.Processor, item.URL, item.Version, nxId);
                if (proc.Process())
                {
                    urlStr = proc.Data;
                }
                else
                {
                    string message = string.IsNullOrEmpty(proc.LastError) ? "Error retrieving url" : proc.LastError;
                    throw new OnlineVideosException("Navi-X says: " + message);
                }
            }

            if (urlStr != null && urlStr.ToLower().StartsWith("rtmp"))
            {
                MPUrlSourceFilter.RtmpUrl url = getRTMPUrl(urlStr);
                return(url.ToString());
            }

            if (item.Player == "default")
            {
                Settings.Player = PlayerType.Internal;
            }
            else
            {
                Settings.Player = PlayerType.Auto;
            }
            return(urlStr);
        }