diff options
Diffstat (limited to 'module')
| -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    | 
