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 VideoWeed : VideoScraperBase { protected override string OnScrape(string url, HtmlNode elem) { var start = elem.InnerHtml.IndexOf("flashvars.file=\"") + 16; var end = elem.InnerHtml.IndexOf("\"", start); var file = elem.InnerHtml.Substring(start, end - start); start = elem.InnerHtml.IndexOf("fkzd=\""); if (start > -1) start += 6; else { start = elem.InnerHtml.IndexOf(".filekey=\"") + 10; } end = elem.InnerHtml.IndexOf("\"", start); var fileKey = elem.InnerHtml.Substring(start, end - start); start = elem.InnerHtml.IndexOf(".cid=\"") + 6; end = elem.InnerHtml.IndexOf("\"", start); var cid = elem.InnerHtml.Substring(start, end - start); start = elem.InnerHtml.IndexOf(".cid2=\"") + 7; end = elem.InnerHtml.IndexOf("\"", start); var cid2 = elem.InnerHtml.Substring(start, end - start); url = String.Format("{5}api/player.api.php?cid={0}&key={1}&pass=undefined&user=undefined&file={2}&cid3={3}&numOfErrors=0&cid2={4}", cid, fileKey, file, "", cid2, RootUrl); elem = Get(new Uri(url).AbsoluteUri); url = elem.InnerHtml.Substring(4, elem.InnerHtml.IndexOf("&") - 4); return new Uri(url).AbsoluteUri; } public override string RootUrl { get { return "http://www.videoweed.es/"; } } public override string ID { get { return ScrapperId.VideoWeed; } } public override string Title { get { return "Videoweed"; } } public override ScraperRank Rank { get { return ScraperRank.VideoWeed; } } public override string SanitizeUrl(string url) { if (url.ToLower().Contains("embed.")) { var start = url.IndexOf("v=") + 2; var end = url.IndexOf("&", start); if (end == -1) end = url.Length; url = String.Format("http://www.videoweed.es/file/{0}", url.Substring(start, end - start)); } return url; } public override string GetFlashUrl(string url) { return url.Replace(".ch", ".es").Replace(".com", ".es"); } public override bool CanProcess(string url) { if (base.CanProcess(url)) return true; return url.ToLower().Contains(".videoweed."); } } }