diff options
author | zoidberg10 <zoidberg@mujmail.cz> | 2011-11-22 15:51:43 +0100 |
---|---|---|
committer | zoidberg10 <zoidberg@mujmail.cz> | 2011-11-22 15:51:43 +0100 |
commit | 4cb0beaccdd33940a7d640acb688e0673d356f36 (patch) | |
tree | cf5e3a24609c91a3a58496b6c0b8965563fcc734 | |
parent | fix filepost (#431), hellspy, ifolder, letitbit, change SimpleHoster patterns (diff) | |
download | pyload-4cb0beaccdd33940a7d640acb688e0673d356f36.tar.xz |
add 2shared.com
-rw-r--r-- | module/plugins/hoster/TwoSharedCom.py | 30 | ||||
-rw-r--r-- | module/plugins/internal/SimpleHoster.py | 11 |
2 files changed, 39 insertions, 2 deletions
diff --git a/module/plugins/hoster/TwoSharedCom.py b/module/plugins/hoster/TwoSharedCom.py new file mode 100644 index 000000000..89c4b7781 --- /dev/null +++ b/module/plugins/hoster/TwoSharedCom.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo +import re + +class TwoSharedCom(SimpleHoster): + __name__ = "TwoSharedCom" + __type__ = "hoster" + __pattern__ = r"http://[\w\.]*?2shared.com/(account/)?(download|get|file|document|photo|video|audio)/.*" + __version__ = "0.10" + __description__ = """2Shared Download Hoster""" + __author_name__ = ("zoidberg") + __author_mail__ = ("zoidberg@mujmail.cz") + + FILE_NAME_PATTERN = r'<meta name="Description" content="(?P<N>.*) download free at 2shared' + FILE_SIZE_PATTERN = r'<span class="dtitle">File size:</span>\s*(?P<S>[0-9,.]+) (?P<U>[kKMG])i?B' + FILE_OFFLINE_PATTERN = r'The file link that you requested is not valid\.|This file was deleted\.' + DOWNLOAD_URL_PATTERN = r"window.location ='([^']+)';" + + def handleFree(self): + found = re.search(self.DOWNLOAD_URL_PATTERN, self.html) + if not found: self.parseError('Download link') + link = found.group(1) + self.logDebug("Download URL %s" % link) + + self.download(link) + +getInfo = create_getInfo(TwoSharedCom) +
\ No newline at end of file diff --git a/module/plugins/internal/SimpleHoster.py b/module/plugins/internal/SimpleHoster.py index 9eb9fd407..96824ffce 100644 --- a/module/plugins/internal/SimpleHoster.py +++ b/module/plugins/internal/SimpleHoster.py @@ -17,7 +17,7 @@ @author: zoidberg """ from urlparse import urlparse -from re import search +from re import search, sub from module.plugins.Hoster import Hoster from module.utils import html_unescape @@ -52,7 +52,12 @@ def parseFileInfo(self, url = '', html = ''): size = float(size) * 1024 ** self.SIZE_UNITS[units] status = 2 - if not name: name = url + if name: + for r in self.NAME_REPLACEMENTS: + rf, rt = r + name = sub(rf, rt, name) + else: + name = url return name, size, status, url @@ -81,8 +86,10 @@ class SimpleHoster(Hoster): __author_mail__ = ("zoidberg@mujmail.cz") #TODO: could be replaced when using utils.parseFileSize ? + #some plugins need to override these SIZE_UNITS = {'k': 1, 'K': 1, 'M': 2, 'G': 3} SIZE_REPLACEMENTS = {',': '', ' ': ''} + NAME_REPLACEMENTS = [] def setup(self): self.resumeDownload = self.multiDL = True if self.account else False |