本文整理汇总了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;
}
示例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;
}
示例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;
}
示例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
//.........这里部分代码省略.........
示例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;
}