diff options
Diffstat (limited to 'module/plugins/hoster/ZippyshareCom.py')
-rw-r--r-- | module/plugins/hoster/ZippyshareCom.py | 93 |
1 files changed, 31 insertions, 62 deletions
diff --git a/module/plugins/hoster/ZippyshareCom.py b/module/plugins/hoster/ZippyshareCom.py index 335f218d4..5b32b4068 100644 --- a/module/plugins/hoster/ZippyshareCom.py +++ b/module/plugins/hoster/ZippyshareCom.py @@ -2,81 +2,50 @@ # -*- coding: utf-8 -*- import re -from module.plugins.Hoster import Hoster +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo -class ZippyshareCom(Hoster): +class ZippyshareCom(SimpleHoster): __name__ = "ZippyshareCom" __type__ = "hoster" - __pattern__ = r"(http://)?www?\d{0,2}\.zippyshare.com/v/" - __version__ = "0.3" + __pattern__ = r"(http://www\d{0,2}\.zippyshare.com)/v(?:/|iew.jsp.*key=)(\d+)" + __version__ = "0.31" __description__ = """Zippyshare.com Download Hoster""" - __author_name__ = ("spoob") - __author_mail__ = ("spoob@pyload.org") + __author_name__ = ("spoob", "zoidberg") + __author_mail__ = ("spoob@pyload.org", "zoidberg@mujmail.cz") + + FILE_NAME_PATTERN = r'>Name:</font>\s*<font [^>]*>(?P<N>[^<]+)</font><br />' + FILE_SIZE_PATTERN = r'>Size:</font>\s*<font [^>]*>(?P<S>[0-9.,]+) (?P<U>[kKMG]+)i?B</font><br />' + FILE_OFFLINE_PATTERN = r'>File does not exist on this server</div>' + + DOWNLOAD_URL_PATTERN = r"document\.getElementById\('dlbutton'\).href = ([^;]+);" + SEED_PATTERN = r"seed: (\d*)" def setup(self): self.html = None self.wantReconnect = False self.multiDL = True - - def process(self, pyfile): - self.pyfile = pyfile - self.download_html() - if not self.file_exists(): - self.offline() - - pyfile.name = self.get_file_name() - pyfile.url = self.get_file_url() - if pyfile.url: - self.download(pyfile.url) - else: - self.fail("URL could not be extracted") - - def download_html(self): - url = self.pyfile.url - self.html = self.load(url) - - + def handleFree(self): + url = self.get_file_url() + self.logDebug("Download URL %s" % url) + self.download(url, cookies = True) + def get_file_url(self): """ returns the absolute downloadable filepath """ + file_host, file_key = re.search(self.__pattern__, self.pyfile.url).groups() - file_host_pattern = r"http://([^/]*)/v/(\d*)/.*" - file_host_search = re.search(file_host_pattern, self.pyfile.url) - if file_host_search is None: - return False - - file_host = "http://" + file_host_search.group(1) - file_key = file_host_search.group(2) - - seed_pattern = r"seed: (\d*)" - seed_search = re.search(seed_pattern, self.html) - if seed_search is None: - self.fail("Problem downloading file.. offline?") - - file_seed = int(seed_search.group(1)) - time = str((file_seed * 24) % 6743256) - - file_url = file_host + "/download?key=" + str(file_key) + "&time=" + str(time) - return file_url - - - def get_file_name(self): - if self.html is None: - self.download_html() - if not self.wantReconnect: - file_name = re.search(r'<meta property="og:title" content="([^"]*)" />', self.html).group(1) - return file_name + found = re.search(self.DOWNLOAD_URL_PATTERN, self.html) + if found: + url = self.js.eval(found.group(1)) else: - return self.pyfile.url - + seed_search = re.search(self.SEED_PATTERN, self.html) + if seed_search is None: self.parseError('SEED') + + file_seed = int(seed_search.group(1)) + time = str((file_seed * 24) % 6743256) + url = "/download?key=" + str(file_key) + "&time=" + str(time) + + return file_host + url - def file_exists(self): - """ returns True or False - """ - if self.html is None: - self.download_html() - if re.search(r'File does not exist on this server', self.html) is not None: - return False - else: - return True +getInfo = create_getInfo(ZippyshareCom)
\ No newline at end of file |