From 3c9f55270a83b0e88ec0dc516f9d9921e4d7b6ea Mon Sep 17 00:00:00 2001 From: mkaay Date: Wed, 25 Aug 2010 16:48:55 +0200 Subject: merged gui --- core/module/plugins/hoster/ShareCx.py | 155 ++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 core/module/plugins/hoster/ShareCx.py (limited to 'core/module/plugins/hoster/ShareCx.py') diff --git a/core/module/plugins/hoster/ShareCx.py b/core/module/plugins/hoster/ShareCx.py new file mode 100644 index 000000000..e64459754 --- /dev/null +++ b/core/module/plugins/hoster/ShareCx.py @@ -0,0 +1,155 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import re +from module.plugins.Hoster import Hoster +from module.plugins.Plugin import chunks +from module.network.Request import getURL +#from module.BeautifulSoup import BeautifulSoup + +def getInfo(urls): + api_url = "http://www.share.cx/uapi?do=check&links=" + + for chunk in chunks(urls, 90): + get = "" + for url in chunk: + get += ";"+url + + api = getURL(api_url+get[1:]) + result = [] + + for i, link in enumerate(api.split()): + url,name,size = link.split(";") + if name and size: + status = 2 + else: + status = 1 + + if not name: name = chunk[i] + if not size: size = 0 + + result.append( (name, size, status, chunk[i]) ) + + yield result + +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