File size: 2,636 Bytes
e26fba6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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;
        }
    }
}