|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Text;
|
|
|
using System.Collections.Specialized;
|
|
|
using System.Web;
|
|
|
using System.Threading;
|
|
|
using System.Xml;
|
|
|
using HtmlAgilityPack;
|
|
|
|
|
|
namespace MovieTube.Client.Scraper
|
|
|
{
|
|
|
public class FlashX : VideoScraperBase
|
|
|
{
|
|
|
protected override string OnScrape(string url, HtmlNode elem)
|
|
|
{
|
|
|
var start = elem.InnerHtml.IndexOf("vid=") + 4;
|
|
|
var end = elem.InnerHtml.IndexOf("&", start);
|
|
|
url = elem.InnerHtml.Substring(start, end - start);
|
|
|
elem = Get(String.Format("http://play.flashx.tv/player/embed.php?vid={0}&width=620&height=400",url));
|
|
|
|
|
|
|
|
|
try
|
|
|
{
|
|
|
var yes = SelectItem(elem, "[name=hash]").Attributes["value"].Value;
|
|
|
var sec = SelectItem(elem, "[name=sechash]").Attributes["value"].Value;
|
|
|
var data = new NameValueCollection();
|
|
|
data.Add("hash", yes);
|
|
|
data.Add("sechash", sec);
|
|
|
elem = Post("http://play.flashx.tv/player/player.php", data);
|
|
|
|
|
|
}
|
|
|
catch
|
|
|
{
|
|
|
var yes = SelectItem(elem, "[name=yes]").Attributes["value"].Value;
|
|
|
var sec = SelectItem(elem, "[name=sec]").Attributes["value"].Value;
|
|
|
var data = new NameValueCollection();
|
|
|
data.Add("yes", yes);
|
|
|
data.Add("sec", sec);
|
|
|
elem = Post("http://play.flashx.tv/player/player.php", data);
|
|
|
}
|
|
|
|
|
|
start = elem.InnerHtml.IndexOf("config=") +7;
|
|
|
end = elem.InnerHtml.IndexOf("\"", start);
|
|
|
url = elem.InnerHtml.Substring(start, end - start);
|
|
|
|
|
|
var doc = new XmlDocument();
|
|
|
doc.Load(new Uri(url).AbsoluteUri);
|
|
|
var n = doc.SelectSingleNode("//file");
|
|
|
return new Uri(n.InnerText).AbsoluteUri;
|
|
|
}
|
|
|
|
|
|
|
|
|
public override string RootUrl
|
|
|
{
|
|
|
get { return "http://www.flashx.tv/"; }
|
|
|
}
|
|
|
|
|
|
public override string ID
|
|
|
{
|
|
|
get { return ScrapperId.FlashX; }
|
|
|
}
|
|
|
|
|
|
public override string Title
|
|
|
{
|
|
|
get { return "FlashX"; }
|
|
|
}
|
|
|
public override bool CanProcess(string url)
|
|
|
{
|
|
|
return base.CanProcess(url) || url.Contains("flashx.tv");
|
|
|
}
|
|
|
|
|
|
public override string SanitizeUrl(string url)
|
|
|
{
|
|
|
url = url.Replace("video/","");
|
|
|
return url;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|