当前位置: 首页>>代码示例>>C#>>正文


C# RssLink.SetState方法代码示例

本文整理汇总了C#中RssLink.SetState方法的典型用法代码示例。如果您正苦于以下问题:C# RssLink.SetState方法的具体用法?C# RssLink.SetState怎么用?C# RssLink.SetState使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在RssLink的用法示例。


在下文中一共展示了RssLink.SetState方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Search

        public override List<SearchResultItem> Search(string query, string category = null)
        {
            List<SearchResultItem> results = new List<SearchResultItem>();
            string data = MyGetWebData(string.Format(searchUrl, apiRoot, HttpUtility.UrlEncode(query), MaxSearchResults));
            JObject json = (JObject)JsonConvert.DeserializeObject(data);
            JToken galery = json["galleryVideos"];
            if (galery != null)
            {
                JToken items = galery["items"];
                if (items != null)
                {
                    foreach (JToken item in items)
                    {
                        RssLink cat = new RssLink() { Name = (string)item["title"], Url = ((int)item["id"]).ToString(), Thumb = (string)item["boxart"], HasSubCategories = true };
                        cat.SetState(NetflixUtils.TitleState);
                        if (enableDesc || enableAddRemoveMylist)
                            cat.SetTrackId(((int)item["trackId"]).ToString());
                        results.Add(cat);

                    }
                }
            }
            return results;
        }
开发者ID:leesanghyun2,项目名称:mp-onlinevideos2,代码行数:24,代码来源:NetfilxWebUtil.cs

示例2: DiscoverNextPageCategories

        public override int DiscoverNextPageCategories(NextPageCategory nextPagecategory)
        {
            nextPagecategory.ParentCategory.SubCategories.Remove(nextPagecategory);

            string index = nextPagecategory.GetStartIndex();
            int iIndex = 0;
            int.TryParse(index, out iIndex);
            string url = nextPagecategory.Url;
            url = url.Replace("START_INDEX", index);
            url = url.Replace("STOP_INDEX", (iIndex + 50 - 1).ToString());

            string data = MyGetWebData(url);
            JObject json = (JObject)JsonConvert.DeserializeObject(data);
            int i = 0;
            foreach (JObject item in json["catalogItems"])
            {
                RssLink cat = new RssLink()
                {
                    Name = (string)item["title"],
                    Url = ((int)item["titleId"]).ToString(),
                    Thumb = (string)item["boxart"],
                    ParentCategory = nextPagecategory.ParentCategory,
                    HasSubCategories = true,
                    Description = enableDesc && enableDescInListing ? GetTitleDescription(((int)item["titleId"]).ToString(), ((int)item["trackId"]).ToString()) : ""
                };
                cat.SetState(NetflixUtils.TitleState);
                if (enableDesc || enableAddRemoveMylist)
                    cat.SetTrackId(((int)item["trackId"]).ToString());
                i++;
                nextPagecategory.ParentCategory.SubCategories.Add(cat);
            }
            if (i == 50)
            {
                NextPageCategory next = new NextPageCategory() { Url = nextPagecategory.Url, ParentCategory = nextPagecategory.ParentCategory };
                next.SetState(NetflixUtils.TitleState);
                next.SetStartIndex((iIndex + 50).ToString());
                nextPagecategory.ParentCategory.SubCategories.Add(next);
            }
            return i;
        }
开发者ID:leesanghyun2,项目名称:mp-onlinevideos2,代码行数:40,代码来源:NetfilxWebUtil.cs

示例3: DiscoverDynamicCategories

        public override int DiscoverDynamicCategories()
        {
            string data = MyGetWebData(homeUrl);
            HtmlDocument doc = new HtmlDocument();
            doc.LoadHtml(data);
            
            RssLink home = new RssLink() { Name = "Netflix Home", HasSubCategories = true, Url = homeUrl};
            home.SetState(NetflixUtils.HomeCategoriesState);
            Settings.Categories.Add(home);
            
            RssLink myList = new RssLink() { Name = "My List", HasSubCategories = !enableMylListPlayNow, Url = myListUrl };
            myList.SetState(NetflixUtils.SinglePageCategoriesState);
            myList.SetPlayNow(enableMylListPlayNow);
            myList.SetRememberDiscoveredItems(false);
            Settings.Categories.Add(myList);
            if (!IsKidsProfile)
            {
                try
                {
                    Category genres = new Category() { Name = "Browse", HasSubCategories = true, SubCategories = new List<Category>() };
                    HtmlNodeCollection genreNodes = doc.DocumentNode.SelectNodes("//a[contains(@href, 'netflix.com/WiGenre')]");
                    if (genreNodes != null)
                    {
                        foreach (HtmlNode a in genreNodes)
                        {
                            RssLink rl = new RssLink()
                            {
                                Name = a.InnerText.Trim(),
                                Url = a.GetAttributeValue("href", ""),
                                HasSubCategories = true,
                                ParentCategory = genres
                            };
                            rl.SetState(NetflixUtils.MultiplePageCategoriesState);
                            genres.SubCategories.Add(rl);
                        }
                    }
                    genres.SubCategoriesDiscovered = genres.SubCategories.Count > 0;
                    Settings.Categories.Add(genres);
                }
                catch { }
            }

            RssLink kids = new RssLink() { Name = "Kids", HasSubCategories = true, Url = kidsUrl };
            kids.SetState(NetflixUtils.KidsState);
            Settings.Categories.Add(kids);
            RssLink profiles = new RssLink() { Name = ProfileCategoryName, HasSubCategories = true };
            profiles.SetState(NetflixUtils.ProfilesState);
            Settings.Categories.Add(profiles);
            if (enableHelp)
            {
                RssLink help = new RssLink() { Name = "Help", HasSubCategories = true };
                help.SetState(NetflixUtils.HelpState);
                Settings.Categories.Add(help);
            }
            Settings.DynamicCategoriesDiscovered = Settings.Categories.Count > (enableHelp ? 4 : 3) || IsKidsProfile;
            return Settings.Categories.Count;
        }
开发者ID:leesanghyun2,项目名称:mp-onlinevideos2,代码行数:57,代码来源:NetfilxWebUtil.cs

示例4: DiscoverSubCategories

        public override int DiscoverSubCategories(Category parentCategory)
        {
            parentCategory.SubCategories = new List<Category>();

            #region Help

            if (parentCategory.IsHelpState())
                throw new OnlineVideosException("Forum: http://tinyurl.com/ov-netflix");

            #endregion

            #region Profiles
            if (parentCategory.IsProfilesState())
            {
                foreach (JToken profile in profiles)
                {
                    Category profileCat = new Category() { Name = profile["profileName"].Value<string>(), HasSubCategories = true, Thumb = profile["avatar"]["images"]["100"].Value<string>(), ParentCategory = parentCategory };
                    profileCat.SetState(NetflixUtils.ProfileState);
                    profileCat.SetProfile(profile);
                    parentCategory.SubCategories.Add(profileCat);
                }
            }

            else if (parentCategory.IsProfileState())
            {
                Settings.Categories.Clear();
                Settings.DynamicCategoriesDiscovered = false;
                currentProfile = parentCategory.GetProfile();
                parentCategory.ParentCategory.Name = ProfileCategoryName;
                MyGetWebData(string.Format(switchProfileUrl, apiRoot, ProfileToken));
                if (rememberStartupUserProfile)
                {
                    List<OnlineVideos.Reflection.FieldPropertyDescriptorByRef> props = GetUserConfigurationProperties();
                    OnlineVideos.Reflection.FieldPropertyDescriptorByRef prop = props.First(p => p.DisplayName == "Startup user profile");
                    this.SetConfigValueFromString(prop, ProfileName);
                    startupUserProfile = ProfileName;
                }
                throw new OnlineVideosException(CangedToProfile);

            }
            #endregion

            #region Home Categories
            

            else if (parentCategory.IsHomeCategoriesState())
            {
                string data = MyGetWebData((parentCategory as RssLink).Url);
                List<Category> cats = GetHomeCategories(data, parentCategory);
                parentCategory.SubCategories = cats;
            }

            #endregion

            #region Kids
            else if (parentCategory.IsKidsState())
            {
                string data = MyGetWebData((parentCategory as RssLink).Url);
                HtmlDocument doc = new HtmlDocument();
                doc.LoadHtml(data);
                RssLink characters = new RssLink() { Name = "Characters", HasSubCategories = true, SubCategories = new List<Category>(), ParentCategory = parentCategory };
                //Well use regex in this case...
                Regex rgx = new Regex(@"title=\\\""(?<name>[^\\]*)\\\"".href=\\\""(?<url>[^\\]*)(?:[^<]*)<img.src=\\""(?<thumb>[^\\]*)");
                foreach (Match m in rgx.Matches(data))
                {
                    RssLink character = new RssLink()
                    {
                        Name = m.Groups["name"].Value,
                        Url = m.Groups["url"].Value,
                        Thumb = m.Groups["thumb"].Value,
                        ParentCategory = characters,
                        HasSubCategories = true
                    };
                    character.SetState(NetflixUtils.SinglePageCategoriesState);
                    characters.SubCategories.Add(character);
                }
                characters.SubCategoriesDiscovered = characters.SubCategories.Count > 0;
                parentCategory.SubCategories.Add(characters);

                foreach (HtmlNode a in doc.DocumentNode.SelectNodes("//a[contains(@href, 'netflix.com/KidsAltGenre')]"))
                {
                    string url = a.GetAttributeValue("href", "");
                    if (!parentCategory.SubCategories.Any(c => (c as RssLink).Url == url))
                    {
                        RssLink category = new RssLink()
                        {
                            Name = a.InnerText.Trim(),
                            Url = a.GetAttributeValue("href", ""),
                            HasSubCategories = true,
                            ParentCategory = parentCategory
                        };
                        category.SetState(NetflixUtils.SinglePageCategoriesState);
                        parentCategory.SubCategories.Add(category);
                    }
                }

            }
            #endregion

            #region SinglePageCategories
//.........这里部分代码省略.........
开发者ID:leesanghyun2,项目名称:mp-onlinevideos2,代码行数:101,代码来源:NetfilxWebUtil.cs

示例5: GetHomeCategories

        private List<Category> GetHomeCategories(string data, Category parentCategory)
        {
            List<Category> cats = new List<Category>();
            Regex rgx = new Regex(@"nf\.constants\.page\.contextData =(.*); }\(netflix\)\);");
            Match m = rgx.Match(data);
            JObject json = null;
            if (m.Success)
            {
                string jsonData = m.Groups[1].Value;
                json = (JObject)JsonConvert.DeserializeObject(jsonData);
            }
            HtmlDocument doc = new HtmlDocument();
            doc.LoadHtml(data);
            try
            {
                HtmlNodeCollection mrows = doc.DocumentNode.SelectSingleNode("//div[@class = 'mrows']").SelectNodes("div[contains(@class, 'mrow')]");
                foreach (HtmlNode mrow in mrows.Where(mr => mr.GetAttributeValue("class", "") == "mrow" || mr.GetAttributeValue("class", "").Contains("evidence")))
                {
                    HtmlNode name = mrow.SelectSingleNode(".//h3");
                    HtmlNode imageNode = mrow.SelectSingleNode(".//img");
                    string img = "";
                    if (imageNode != null)
                    {
                        img = imageNode.GetAttributeValue("src", "");
                        if (string.IsNullOrEmpty(img))
                            img = imageNode.GetAttributeValue("hsrc", "");
                    }

                    RssLink cat = new RssLink()
                    {
                        Name = name.InnerText.Trim(),
                        HasSubCategories = !enableHomePlayNow,
                        Thumb = img,
                        ParentCategory = parentCategory,
                        
                    };
                    string html = mrow.OuterHtml;
                    if (json != null)
                    {
                        HtmlNode slider = mrow.SelectSingleNode(".//div[starts-with(@id, 'slider_')]");
                        if (slider != null)
                        {
                            string sliderId = slider.GetAttributeValue("id", "");
                            JToken initData = json["sliders"]["data"]["initData"].FirstOrDefault(n => n["domId"].Value<string>() == sliderId);
                            if (initData != null)
                            {
                                string remainderHTML = initData["remainderHTML"].Value<string>();
                                if (!string.IsNullOrEmpty(remainderHTML))
                                    html += remainderHTML;
                            }
                        }
                    }
                    cat.SetData(html);
                    cat.SetState(NetflixUtils.SinglePageCategoriesState);
                    cat.SetPlayNow(enableHomePlayNow);
                    cats.Add(cat);
                }
            }
            catch { }

            return cats;
        }
开发者ID:leesanghyun2,项目名称:mp-onlinevideos2,代码行数:62,代码来源:NetfilxWebUtil.cs


注:本文中的RssLink.SetState方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。