using System; using System.Collections.Generic; using System.Text; using System.Collections.Specialized; using System.Web; using System.Threading; using HtmlAgilityPack; namespace MovieTube.Client.Scraper { public class Veoh : VideoScraperBase { protected override string OnScrape(string url, HtmlNode elem) { var start = elem.InnerHtml.IndexOf("previewUrl\":\"") + 13; var end = elem.InnerHtml.IndexOf(",\"", start) - 1; url = elem.InnerHtml.Substring(start, end - start).Replace("\\",""); return new Uri(url).AbsoluteUri; } public override string RootUrl { get { return "http://www.veoh.com/"; } } public override string ID { get { return ScrapperId.Veoh; } } public override string Title { get { return "Veoh"; } } public override ScraperRank Rank { get { return ScraperRank.Veoh; } } public override string SanitizeUrl(string url) { if (!url.ToLower().Contains("http://www.veoh.com") && !url.Contains("/watch/") && !url.Contains("http://veoh.com/videos/")) throw new Exception("Unknown format"); var id = SubstringBetween(url, url.ToLower().Contains("/videos/") ? "videos/" : "watch/"); url = String.Format("http://www.veoh.com/watch/{0}", id); return url; } public override bool CanProcess(string url) { if (base.CanProcess(url)) return true; return url.ToLower().Contains(".veoh."); } } }