| 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 NowVideo : 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); | |
| url = new Uri(url).AbsoluteUri; | |
| return url; | |
| } | |
| public override string RootUrl | |
| { | |
| get { return "http://www.nowvideo.sx/"; } | |
| } | |
| public override string ID | |
| { | |
| get { return ScrapperId.NowVideo; } | |
| } | |
| public override string Title | |
| { | |
| get { return "NowVideo"; } | |
| } | |
| public override bool CanProcess(string url) | |
| { | |
| if (base.CanProcess(url)) | |
| return true; | |
| return url.ToLower().Contains("nowvideo.eu") || url.ToLower().Contains("nowvideo.ch") || | |
| url.ToLower().Contains("nowvideo.sx"); | |
| } | |
| public override string SanitizeUrl(string url) | |
| { | |
| url = url.Replace(".ch/", ".sx/").Replace(".eu/",".sx/"); | |
| if(url.Contains("embed")) | |
| { | |
| var start = url.IndexOf("v=") + 2; | |
| var end = url.IndexOf("&", start); | |
| if (end == -1) | |
| end = url.Length; | |
| url = String.Format("http://www.nowvideo.sx/video/{0}", url.Substring(start, end - start)); | |
| } | |
| if (!url.Contains("http://www.nowvideo.sx/video/")) | |
| throw new Exception("Unknown format"); | |
| return url; | |
| } | |
| public override ScraperRank Rank | |
| { | |
| get | |
| { | |
| return ScraperRank.NowVideo; | |
| } | |
| } | |
| } | |
| } | |