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 MuchShare : VideoScraperBase { protected override string OnScrape(string url, HtmlNode elem) { var id = SelectItem(elem, "[name=id]").Attributes["value"].Value; var fname = SelectItem(elem, "[name=fname]").Attributes["value"].Value; var data = new NameValueCollection(); data.Add("op", "download1"); data.Add("usr_login", ""); data.Add("id", id); data.Add("fname", fname); data.Add("method_free", "Proceed to Video"); elem = Post(url, data); var rand = SelectItem(elem, "[name=rand]").Attributes["value"].Value; data.Clear(); data.Add("op", "download2"); data.Add("rand", rand); data.Add("id", id); data.Add("fname", fname); data.Add("method_free", "Proceed to Video"); data.Add("method_premium", ""); Thread.Sleep(45000); elem = Post(url, data); url = new Uri(SelectItem(elem, "#lnk_download").Attributes["href"].Value).AbsoluteUri; return url; } public override ScraperResult IsValid(string url) { var elem = Get(url); try { var id = SelectItem(elem, "[name=id]").Attributes["value"].Value; var fname = SelectItem(elem, "[name=fname]").Attributes["value"].Value; return ScraperResult.Success; } catch (Exception ex) { return IsVideoRemoved(elem.InnerText) ? ScraperResult.VideoDoesNotExist : ScraperResult.NetworkError; } } public override string RootUrl { get { return "http://muchshare.net"; } } public override string ID { get { return ScrapperId.MuchShare; } } public override string Title { get { return "MuchShare"; } } } }