diff options
| -rw-r--r-- | module/config/core_default.xml | 3 | ||||
| -rwxr-xr-x | module/network/Request.py | 10 | ||||
| -rw-r--r-- | module/plugins/hoster/PornhostCom.py | 73 | ||||
| -rw-r--r-- | module/plugins/hoster/PornhubCom.py | 64 | ||||
| -rw-r--r-- | module/plugins/hoster/RedtubeCom.py | 54 | 
5 files changed, 200 insertions, 4 deletions
| diff --git a/module/config/core_default.xml b/module/config/core_default.xml index a0d9ffbf2..4d2e59aad 100644 --- a/module/config/core_default.xml +++ b/module/config/core_default.xml @@ -107,7 +107,10 @@          module.plugins.hoster.MegavideoCom,          module.plugins.hoster.MyvideoDe,          module.plugins.hoster.NetloadIn, +        module.plugins.hoster.PornhostCom, +        module.plugins.hoster.PornhubCom,          module.plugins.hoster.RapidshareCom, +        module.plugins.hoster.RedtubeCom,          module.plugins.hoster.ShareonlineBiz,          module.plugins.hoster.ShragleCom,          module.plugins.hoster.StorageTo, diff --git a/module/network/Request.py b/module/network/Request.py index 1fb76d7e0..4c7de2b22 100755 --- a/module/network/Request.py +++ b/module/network/Request.py @@ -123,12 +123,13 @@ class Request:              return self.cookieJar.getCookie(name)          return None -    def load(self, url, get={}, post={}, ref=True, cookies=True, just_header=False): +    def load(self, url, get={}, post={}, ref=True, cookies=True, just_header=False, no_post_encode=False):          url = str(url)          if post: -            post = urllib.urlencode(post) +            if not no_post_encode: +                post = urllib.urlencode(post)          else:              post = None @@ -199,12 +200,13 @@ class Request:          self.pycurl.setopt(pycurl.PROXY, adress.split(":")[0])          self.pycurl.setopt(pycurl.PROXYPORT, adress.split(":")[1]) -    def download(self, url, file_name, get={}, post={}, ref=True, cookies=True): +    def download(self, url, file_name, get={}, post={}, ref=True, cookies=True, no_post_encode=False):          url = str(url)          if post: -            post = urllib.urlencode(post) +            if not no_post_encode: +                post = urllib.urlencode(post)          else:              post = None diff --git a/module/plugins/hoster/PornhostCom.py b/module/plugins/hoster/PornhostCom.py new file mode 100644 index 000000000..92bc93f24 --- /dev/null +++ b/module/plugins/hoster/PornhostCom.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python
 +# -*- coding: utf-8 -*-
 +
 +import re
 +from time import time
 +from module.plugins.Hoster import Hoster
 +from module.unescape import unescape
 +
 +class PornhostCom(Hoster):
 +    __name__ = "PornhostCom"
 +    __type__ = "hoster"
 +    __pattern__ = r'http://[\w\.]*?pornhost\.com/([0-9]+/[0-9]+\.html|[0-9]+)'
 +    __version__ = "0.1"
 +    __description__ = """Pornhost.com Download Hoster"""
 +    __author_name__ = ("jeix")
 +    __author_mail__ = ("jeix@hasnomail.de")
 +        
 +    def __init__(self, parent):
 +        Hoster.__init__(self, parent)
 +        self.parent = parent
 +        self.html = None
 +        
 +    def download_html(self):
 +        url = self.parent.url
 +        self.html = self.req.load(url)
 +
 +    def get_file_url(self):
 +        """ returns the absolute downloadable filepath
 +        """
 +        if self.html == None:
 +            self.download_html()
 +
 +        file_url = re.search(r'download this file</label>.*?<a href="(.*?)"', self.html)
 +        if not file_url: 
 +            file_url = re.search(r'"(http://dl[0-9]+\.pornhost\.com/files/.*?/.*?/.*?/.*?/.*?/.*?\..*?)"', self.html)
 +            if not file_url:
 +                file_url = re.search(r'width: 894px; height: 675px">.*?<img src="(.*?)"', self.html)
 +                if not file_url:
 +                    file_url = re.search(r'"http://file[0-9]+\.pornhost\.com/[0-9]+/.*?"', self.html) # TODO: fix this one since it doesn't match
 +
 +        file_url = file_url.group(1).strip()
 +                    
 +        return file_url
 +    
 +    def get_file_name(self):
 +        if self.html == None:
 +            self.download_html()
 +            
 +        name = re.search(r'<title>pornhost\.com - free file hosting with a twist - gallery(.*?)</title>', self.html)
 +        if not name:
 +            name = re.search(r'id="url" value="http://www\.pornhost\.com/(.*?)/"', self.html)
 +            if not name:
 +                name = re.search(r'<title>pornhost\.com - free file hosting with a twist -(.*?)</title>', self.html)
 +                if not name:
 +                    name = re.search(r'"http://file[0-9]+\.pornhost\.com/.*?/(.*?)"', self.html)
 +       
 +        name = name.group(1).strip() + ".flv"
 +        
 +        return name
 +
 +    def file_exists(self):
 +        """ returns True or False
 +        """
 +        if self.html == None:
 +            self.download_html()
 +        
 +        if re.search(r'gallery not found', self.html) != None \
 +        or re.search(r'You will be redirected to', self.html) != None:
 +            return False
 +        else:
 +            return True
 +            
 +            
 diff --git a/module/plugins/hoster/PornhubCom.py b/module/plugins/hoster/PornhubCom.py new file mode 100644 index 000000000..c5fda76ae --- /dev/null +++ b/module/plugins/hoster/PornhubCom.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python
 +# -*- coding: utf-8 -*-
 +
 +import re
 +from time import time
 +from module.plugins.Hoster import Hoster
 +from module.unescape import unescape
 +
 +class PornhubCom(Hoster):
 +    __name__ = "PornhubCom"
 +    __type__ = "hoster"
 +    __pattern__ = r'http://[\w\.]*?pornhub\.com/view_video\.php\?viewkey=[\w\d]+'
 +    __version__ = "0.1"
 +    __description__ = """Pornhub.com Download Hoster"""
 +    __author_name__ = ("jeix")
 +    __author_mail__ = ("jeix@hasnomail.de")
 +        
 +    def __init__(self, parent):
 +        Hoster.__init__(self, parent)
 +        self.parent = parent
 +        self.html = None
 +        
 +    def download_html(self):
 +        url = self.parent.url
 +        self.html = self.req.load(url)
 +
 +    def get_file_url(self):
 +        """ returns the absolute downloadable filepath
 +        """
 +        if self.html == None:
 +            self.download_html()
 +
 +        url = "http://www.pornhub.com//gateway.php"
 +        video_id = self.parent.url.split('=')[-1]
 +        # thanks to jD team for this one  v
 +        post_data = "\x00\x03\x00\x00\x00\x01\x00\x0c\x70\x6c\x61\x79\x65\x72\x43\x6f\x6e\x66\x69\x67\x00\x02\x2f\x31\x00\x00\x00\x44\x0a\x00\x00\x00\x03\x02\x00"
 +        post_data += chr(len(video_id))
 +        post_data += video_id
 +        post_data += "\x02\x00\x02\x2d\x31\x02\x00\x20"
 +        post_data += "add299463d4410c6d1b1c418868225f7"
 +        
 +        content = self.req.load(url, post=post_data, no_post_encode=True)
 +        file_url = re.search(r'flv_url.*(http.*?)\?r=.*', content).group(1)
 +
 +        return file_url
 +    
 +    def get_file_name(self):
 +        if self.html == None:
 +            self.download_html()
 +            
 +        name = re.findall('<h1>(.*?)</h1>', self.html)[1] + ".flv"
 +        
 +        return name
 +
 +    def file_exists(self):
 +        """ returns True or False
 +        """
 +        if self.html == None:
 +            self.download_html()
 +        
 +        if re.search(r'This video is no longer in our database or is in conversion', self.html) != None:
 +            return False
 +        else:
 +            return True
 diff --git a/module/plugins/hoster/RedtubeCom.py b/module/plugins/hoster/RedtubeCom.py new file mode 100644 index 000000000..3d97e12d6 --- /dev/null +++ b/module/plugins/hoster/RedtubeCom.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python
 +# -*- coding: utf-8 -*-
 +
 +import re
 +from time import time
 +from module.plugins.Hoster import Hoster
 +from module.unescape import unescape
 +
 +class RedtubeCom(Hoster):
 +    __name__ = "RedtubeCom"
 +    __type__ = "hoster"
 +    __pattern__ = r'http://[\w\.]*?redtube\.com/\d+'
 +    __version__ = "0.1"
 +    __description__ = """Redtube.com Download Hoster"""
 +    __author_name__ = ("jeix")
 +    __author_mail__ = ("jeix@hasnomail.de")
 +        
 +    def __init__(self, parent):
 +        Hoster.__init__(self, parent)
 +        self.parent = parent
 +        self.html = None
 +        
 +    def download_html(self):
 +        url = self.parent.url
 +        self.html = self.req.load(url)
 +
 +    def get_file_url(self):
 +        """ returns the absolute downloadable filepath
 +        """
 +        if self.html == None:
 +            self.download_html()
 +
 +        file_url = unescape(re.search(r'hashlink=(http.*?)"', self.html).group(1))
 +
 +        return file_url
 +    
 +    def get_file_name(self):
 +        if self.html == None:
 +            self.download_html()
 +            
 +        name = re.search('<title>(.*?)- RedTube - Free Porn Videos</title>', self.html).group(1).strip() + ".flv"        
 +        return name
 +
 +    def file_exists(self):
 +        """ returns True or False
 +        """
 +        if self.html == None:
 +            self.download_html()
 +        
 +        if re.search(r'This video has been removed.', self.html) != None:
 +            return False
 +        else:
 +            return True
 +            
 | 
