niobures's picture
VideoSearch
e26fba6 verified
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);
//elem = Post(new Uri(url).AbsoluteUri, data);
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;
}
}
}