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 HtmlAgilityPack;
namespace MovieTube.Client.Scraper
{
public class VideoRaj : 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(".filekey=\"") + 10;
end = elem.InnerHtml.IndexOf("\"", start);
var fileKey = elem.InnerHtml.Substring(start, end - start);
url = String.Format("{0}/api/player.api.php?cid=undefined&key={1}&pass=undefined&user=undefined&file={2}&cid3=undefined&numOfErrors=0&cid2=undefined",
RootUrl, fileKey, file);
elem = Get(new Uri(url).AbsoluteUri);
url = elem.InnerHtml.Substring(4, elem.InnerHtml.IndexOf("&") - 4);
return new Uri(HttpUtility.UrlDecode(url)).AbsoluteUri;
}
public override bool IsWebSupported
{
get
{
return false;
}
}
public override string RootUrl
{
get { return "http://www.videoraj.ch"; }
}
public override string ID
{
get { return ScrapperId.VideoRaj; }
}
public override string Title
{
get { return "VideoRaj"; }
}
public override ScraperRank Rank
{
get
{
return ScraperRank.VideoRaj;
}
}
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.videoraj.ch/embed.php?id={0}", url.Substring(start, end - start));
}
return url;
}
public override bool CanProcess(string url)
{
if (base.CanProcess(url))
return true;
return url.ToLower().Contains(".videoraj.");
}
}
}