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 Novamov : 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);
return new Uri(url).AbsoluteUri;
}
public override string RootUrl
{
get { return "http://www.novamov.com/"; }
}
public override string ID
{
get { return ScrapperId.Novamov; }
}
public override string Title
{
get { return "Novamov"; }
}
public override bool CanProcess(string url)
{
if (base.CanProcess(url))
return true;
return url.ToLower().Contains("embed.novamov.com");
}
public override string SanitizeUrl(string url)
{
if (url.Contains("embed.novamov.com"))
{
var u = new Uri(url);
url = String.Format("http://www.novamov.com/video/{0}", HttpUtility.ParseQueryString(u.Query).Get("v"));
}
else if (url.Contains("embed.php"))
{
url = String.Format("http://www.novamov.com/video/{0}", SubstringBetween(url,".php?v="));
}
return url;
}
public override ScraperRank Rank
{
get
{
return ScraperRank.Novamov;
}
}
public override string GetFlashUrl(string url)
{
//http://embed.novamov.com/embed.php?v=9781cba507d6e
//http://www.novamov.com/video/p887x8ai5og7t
if (url.Contains("http://embed.novamov.com"))
{
var id = SubstringBetween(url, "v=");
url = string.Format("http://www.novamov.com/video/{0}", id);
}
return base.GetFlashUrl(url);
}
}
}