From 49c3ff13e8529954a983235d67a13329e506123d Mon Sep 17 00:00:00 2001 From: Jeix Date: Thu, 12 Aug 2010 15:31:09 +0200 Subject: Share.cx free user support and fixes for IRC Hook --- module/plugins/hoster/ShareCx.py | 128 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 module/plugins/hoster/ShareCx.py (limited to 'module/plugins/hoster/ShareCx.py') diff --git a/module/plugins/hoster/ShareCx.py b/module/plugins/hoster/ShareCx.py new file mode 100644 index 000000000..feee30cd3 --- /dev/null +++ b/module/plugins/hoster/ShareCx.py @@ -0,0 +1,128 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import re +from module.plugins.Hoster import Hoster +#from module.BeautifulSoup import BeautifulSoup + +class ShareCx(Hoster): + __name__ = "ShareCx" + __type__ = "hoster" + __pattern__ = r"http://[\w\.]*?share\.cx/(files|videos)/\d+" + __version__ = "0.1" + __description__ = """Share.cx Download Hoster""" + __author_name__ = ("jeix") + __author_mail__ = ("jeix@hasnomail.de") + + + def setup(self): + self.multiDL = False + + + def process(self, pyfile): + self.pyfile = pyfile + self.download_html() + if not self.file_exists(): + offline() + + pyfile.name = self.get_file_name() + self.doDownload() + + + def download_html(self): + self.html = self.load(self.pyfile.url) + + def doDownload(self): + """ returns the absolute downloadable filepath + """ + if self.html == None: + self.download_html() + + op = re.search(r'name="op" value="(.*?)"', self.html).group(1) + usr_login = re.search(r'name="usr_login" value="(.*?)"', self.html).group(1) + id = re.search(r'name="id" value="(.*?)"', self.html).group(1) + fname = re.search(r'name="fname" value="(.*?)"', self.html).group(1) + referer = re.search(r'name="referer" value="(.*?)"', self.html).group(1) + method_free = "Datei+herunterladen" + + self.html = self.load(self.pyfile.url, post={ + "op" : op, + "usr_login" : usr_login, + "id" : id, + "fname" : fname, + "referer" : referer, + "method_free" : method_free + }) + + + m = re.search(r'startTimer\((\d+)\)', self.html) + if m != None: + wait_time = int(m.group(1)) + self.setWait(wait_time) + self.wantReconnect = True + self.log.debug("%s: IP blocked wait %d seconds." % (self.__name__, wait_time)) + self.wait() + + m = re.search(r'countdown">.*?(\d+).*?', self.html) + if m == None: + m = re.search(r'id="countdown_str".*?.*?(\d+).*?(.*?)', self.html).group(1) + return name + + def file_exists(self): + """ returns True or False + """ + if self.html == None: + self.download_html() + + if re.search(r'File not found
It was deleted due to inactivity or abuse request', self.html) != None: + return False + + return True + + -- cgit v1.2.3