Beispiel #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);
        }
Beispiel #2
0
        SubCatHolder getCats(string playlistUrl, Category parentCategory = null)
        {
            SubCatHolder holder = new SubCatHolder();

            holder.SubCategories        = new List <Category>();
            holder.SearchableCategories = new Dictionary <string, string>();

            if (playlistUrl.StartsWith("http://www.navixtreme.com"))
            {
                login();
            }

            NaviXPlaylist pl = NaviXPlaylist.Load(playlistUrl, nxId);

            if (pl != null)
            {
                foreach (NaviXMediaItem item in pl.Items)
                {
                    RssLink cat;
                    if (!string.IsNullOrEmpty(item.URL) && System.Text.RegularExpressions.Regex.IsMatch(item.URL, @"[?&]page=\d+"))
                    {
                        cat = new NextPageCategory();
                    }
                    else
                    {
                        cat = new RssLink();
                    }

                    cat.Name = item.Name;
                    if (!string.IsNullOrEmpty(item.InfoTag))
                    {
                        cat.Name += string.Format(" ({0})", item.InfoTag);
                    }
                    cat.Description = string.IsNullOrEmpty(item.Description) ? pl.Description : item.Description;
                    cat.Url         = item.URL;
                    if (!string.IsNullOrEmpty(item.Thumb))
                    {
                        cat.Thumb = item.Thumb;
                    }
                    else if (!string.IsNullOrEmpty(item.Icon))
                    {
                        cat.Thumb = item.Icon;
                    }
                    else
                    {
                        cat.Thumb = pl.Logo;
                    }
                    cat.HasSubCategories = item.Type == "playlist" || item.Type == "search";
                    cat.ParentCategory   = parentCategory;
                    cat.Other            = item;
                    holder.SubCategories.Add(cat);
                    if (item.Type == "search")
                    {
                        holder.SearchableCategories[cat.Name] = cat.Url;
                    }
                }
            }
            return(holder);
        }
Beispiel #3
0
        public override int DiscoverNextPageCategories(NextPageCategory category)
        {
            SubCatHolder holder = category.ParentCategory.Other as SubCatHolder;

            if (holder == null)
            {
                return(category.ParentCategory.SubCategories.Count);
            }

            holder.SubCategories.Remove(category);
            holder.SubCategories.AddRange(getCats((category as RssLink).Url, category.ParentCategory).SubCategories);
            category.ParentCategory.SubCategories = holder.SubCategories;
            return(holder.SubCategories.Count);
        }