本文整理汇总了C#中VideoInfo.CleanDescriptionAndTitle方法的典型用法代码示例。如果您正苦于以下问题:C# VideoInfo.CleanDescriptionAndTitle方法的具体用法?C# VideoInfo.CleanDescriptionAndTitle怎么用?C# VideoInfo.CleanDescriptionAndTitle使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VideoInfo
的用法示例。
在下文中一共展示了VideoInfo.CleanDescriptionAndTitle方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: LoadVideosFromUrl
/// <summary>
/// Load all video summary from the specified url
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public static List<VideoInfo> LoadVideosFromUrl(this string url, AmazonBrowserSession session)
{
var results = new List<VideoInfo>();
HtmlDocument doc = null;
var tmpWeb = session;
HtmlNode detailNode = null;
// Attempt the URL up to 15 times as amazon wants us to use the api!
for (int i = 0; i <= 15; i++)
{
doc = tmpWeb.Load(url);
detailNode = doc.GetElementbyId("aiv-main-content");
if (detailNode == null)
Thread.Sleep(400);
else
break;
}
if (detailNode != null)
{
var episodeContainer = doc.GetElementbyId("dv-episode-list");
if (episodeContainer == null || (episodeContainer != null && episodeContainer.FindFirstChildElement() == null))
{
// Movie, load this video
var video = new VideoInfo();
video.Title = detailNode.SelectSingleNode(".//h1[@id = 'aiv-content-title']").FirstChild.GetInnerTextTrim();
//doc.DocumentNode.GetNodeByClass("product_image").Attributes["alt"].Value;
var infoNode = detailNode.GetNodeByClass("dv-info");
var dvMetaInfo = infoNode.GetNodeByClass("dv-meta-info");
var altTitle = detailNode.NavigatePath(new[] { 0, 0 }).FirstChild.GetInnerTextTrim();
video.Description = string.Format("({0}amazon {1})\r\n{2}\r\n{3} {4}",
video.Title == altTitle ? "" : altTitle + ", ",
doc.GetElementbyId("summaryStars").FindFirstChildElement() == null ? string.Empty : doc.GetElementbyId("summaryStars").FindFirstChildElement().Attributes["title"].Value,
infoNode.GetNodeByClass("synopsis").GetInnerTextTrim(),
dvMetaInfo.NavigatePath(new[] { 0 }).GetInnerTextTrim(),
dvMetaInfo.NavigatePath(new[] { 1 }).GetInnerTextTrim());
var imageUrlNode = doc.GetElementbyId("dv-dp-left-content").GetNodeByClass("dp-meta-icon-container");
video.Thumb = imageUrlNode == null ? string.Empty : imageUrlNode.SelectSingleNode(".//img").Attributes["src"].Value;
video.Airdate = detailNode.GetNodeByClass("release-year").GetInnerTextTrim();
video.Length = dvMetaInfo.NavigatePath(new[] { 3 }).GetInnerTextTrim();
video.Other = doc.GetElementbyId("ASIN").Attributes["value"].Value;
results.Add(video);
}
else
{
// TV Series, load all videos
var episodeList = episodeContainer.GetNodesByClass("episode-list-link");
var usesAltLayout = false;
if (episodeList == null)
{
usesAltLayout = true;
episodeList = episodeContainer.GetNodesByClass("episode-list-item-inner");
}
foreach (var item in episodeList)
{
var video = new VideoInfo();
var titleNode = usesAltLayout ? item.GetNodeByClass("dv-extender").NavigatePath(new[] { 0, 0 }) : item.GetNodeByClass("episode-title");
var seen = "";
/*if (item.GetNodeByClass("progress-bar") == null)
{
seen = " (new)";
}*/
video.Title = Regex.Replace(titleNode.GetInnerTextTrim(), @"^\d+", m => m.Value.PadLeft(2, '0')) + seen;
video.Description = titleNode.NextSibling.GetInnerTextTrim();
video.Airdate = item.GetNodeByClass("release-date").GetInnerTextTrim();
var imageUrlNode = item.GetNodeByClass("episode-list-image");
if (imageUrlNode != null)
{
video.Thumb = imageUrlNode.Attributes["src"].Value;
}
else
{
imageUrlNode = doc.GetElementbyId("dv-dp-left-content").GetNodeByClass("dp-meta-icon-container");
video.Thumb = imageUrlNode == null ? string.Empty : imageUrlNode.SelectSingleNode(".//img").Attributes["src"].Value;
}
var videoUrl = usesAltLayout ? titleNode.GetAttribute("href") : item.GetAttribute("href");
videoUrl = videoUrl.Substring(videoUrl.IndexOf("/product/") + 9);
videoUrl = videoUrl.Substring(0, videoUrl.IndexOf("/"));
video.Other = videoUrl;
video.Length = item.GetNodeByClass("runtime").GetInnerTextTrim();
video.CleanDescriptionAndTitle();
results.Add(video);
}
}
}
//.........这里部分代码省略.........
示例2: LoadVideosFromUrl
//.........这里部分代码省略.........
var extendedProperties = new ExtendedProperties();
var video = new VideoInfo { Other = extendedProperties };
var titleNode =
layoutType == 0 ? item.GetNodeByClass("dv-extender").NavigatePath(new[] { 0, 0 }) :
layoutType == 1 ? item.GetNodeByClass("episode-title") :
item.GetNodeByClass("dv-el-title");
var seen = "";
/*if (item.GetNodeByClass("progress-bar") == null)
{
seen = " (new)";
}*/
video.Title = Regex.Replace(titleNode.GetInnerTextTrim(), @"^\d+", m => m.Value.PadLeft(2, '0')) + seen;
string videoUrl = null;
HtmlNode imageUrlNode;
if (layoutType == 2)
{
var synopsis = item.GetNodeByClass("dv-el-synopsis-content");
if (synopsis != null)
{
video.Description = synopsis.FirstChild.NextSibling.GetInnerTextTrim();
}
// <div class="dv-el-packshot-image" style="background-image: url(http://ecx.images-amazon.com/images/I/....jpg);"></div>
imageUrlNode = item.GetNodeByClass("dv-el-packshot-image");
if (imageUrlNode != null)
{
var re = new Regex("\\((.*?)\\)");
var htmlAttribute = imageUrlNode.GetAttributeValue("style", null);
if (htmlAttribute != null)
{
var match = re.Match(htmlAttribute);
if (match.Groups.Count == 2)
video.ThumbnailImage = match.Groups[1].Value;
}
}
// Certification, can be different classes,i.e. dv-ages_16_and_over
var certificationClasses = item.GetNodesByClass("dv-el-badge dv-ages_", true);
if (certificationClasses != null)
{
var certification = certificationClasses.First();
extendedProperties.VideoProperties["Certificate"] = certification.GetInnerTextTrim();
}
// Playback progress
extendedProperties.VideoProperties["Progress"] = string.Format("{0:0}%", 0);
var progress = item.GetNodesByClass("dv-linear-progress");
if (progress != null && progress.Count > 0)
{
var progressSpan = progress[0].ChildNodes.FirstOrDefault(n => n.Name == "span");
if (progressSpan != null)
{
var width = progressSpan.Attributes["style"].Value;
double percent;
if (double.TryParse(width.Replace("width:", "").Replace("%", ""), NumberStyles.Any, CultureInfo.InvariantCulture, out percent))
{
extendedProperties.VideoProperties["Progress"] = string.Format("{0:0}%", percent);
}
}
}
var tagValues = item.GetNodesByClass("dv-el-attr-value");
if (tagValues.Count == 3)
{
video.Airdate = tagValues[2].GetInnerTextTrim();
video.Length = tagValues[1].GetInnerTextTrim();
}
var urlNode = item.GetNodeByClass("dv-playback-container");
if (urlNode != null)
videoUrl = urlNode.GetAttributeValue("data-asin", null);
}
else
{
video.Description = titleNode.NextSibling.GetInnerTextTrim();
video.Airdate = item.GetNodeByClass("release-date").GetInnerTextTrim();
imageUrlNode = item.GetNodeByClass("episode-list-image");
video.Length = item.GetNodeByClass("runtime").GetInnerTextTrim();
videoUrl = layoutType == 0 ? titleNode.GetAttribute("href") : item.GetAttribute("href");
videoUrl = videoUrl.Substring(videoUrl.IndexOf("/product/") + 9);
videoUrl = videoUrl.Substring(0, videoUrl.IndexOf("/"));
if (imageUrlNode != null)
{
video.Thumb = imageUrlNode.Attributes["src"].Value;
}
else
{
imageUrlNode = doc.GetElementbyId("dv-dp-left-content").GetNodeByClass("dp-meta-icon-container");
video.Thumb = imageUrlNode == null ? string.Empty : imageUrlNode.SelectSingleNode(".//img").Attributes["src"].Value;
}
}
extendedProperties.Other = videoUrl;
video.CleanDescriptionAndTitle();
results.Add(video);
}
}
return results;
}