diff options
Diffstat (limited to 'module/plugins/hoster')
| -rw-r--r-- | module/plugins/hoster/FileboomMe.py | 94 | 
1 files changed, 94 insertions, 0 deletions
| diff --git a/module/plugins/hoster/FileboomMe.py b/module/plugins/hoster/FileboomMe.py new file mode 100644 index 000000000..f2d3a4f61 --- /dev/null +++ b/module/plugins/hoster/FileboomMe.py @@ -0,0 +1,94 @@ +# -*- coding: utf-8 -*- + +import re + +from urlparse import urljoin +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo + + +class FileboomMe(SimpleHoster): +    __name__    = "FileboomMe" +    __type__    = "hoster" +    __version__ = "0.01" + +    __pattern__ = r'https?://f(?:ile)?boom\.me/file/(?P<ID>\w+)' + +    __description__ = """Fileboom.me hoster plugin""" +    __license__     = "GPLv3" +    __authors__     = [("GammaC0de", None)] + + +    NAME_PATTERN    = r'<i class="icon-download"></i>\s*(?P<N>.+?)\s*<' +    SIZE_PATTERN    = r'File size: (?P<S>[\d.,]+) (?P<U>[\w^_]+)' + +    OFFLINE_PATTERN = r'>This file is no longer available' +    WAIT_PATTERN = r'<div class="tik-tak">([\d:]+)' +    LINK_PATTERN    = r'/file/url\.html\?file=\w+' + +    CAPTCHA_PATTERN = r'<img .* src="(/file/captcha.html\?v=\w+)"' + + +    def setup(self): +        self.resumeDownload = True +        self.multiDL        = False +        self.chunkLimit     = 1 + + +    def handleFree(self, pyfile): +        post_url = urljoin(pyfile.url, "/file/" + self.info['pattern']['ID']) + +        m = re.search(r'data-slow-id="(\w+)"', self.html) +        if m: +            self.html = self.load(post_url, +                                  post={'slow_id': m.group(1)}) + +            m = re.search(self.LINK_PATTERN,  self.html) +            if m: +                self.link = urljoin(pyfile.url, m.group(0)) + +            else: +                for _i in xrange(5): +                    m = re.search(r'<input type="hidden" name="uniqueId" value="(\w+)">', self.html) +                    if m: +                        uniqueId = m.group(1) + +                        m = re.search(self.CAPTCHA_PATTERN, self.html) +                        if m: +                            captcha = self.decryptCaptcha(urljoin(pyfile.url, m.group(1))) + +                            self.html = self.load(post_url, +                                                  post={'CaptchaForm[code]'  : captcha, +                                                        'free'               : 1, +                                                        'freeDownloadRequest': 1, +                                                        'uniqueId'           : uniqueId}) +  +                            if 'The verification code is incorrect' in self.html: +                                self.invalidCaptcha() + +                            else: +                                self.checkErrors() + +                                self.html = self.load(post_url, +                                                      post={'free'    : 1, +                                                            'uniqueId': uniqueId}) +                                 +                                m = re.search(self.LINK_PATTERN,  self.html) +                                if m: +                                    self.link = urljoin(pyfile.url, m.group(0)) + +                                else: +                                    self.invalidCaptcha() + +                                break + +                        else: +                            self.fail(_("Captcha not found")) + +                    else: +                        break + +                else: +                    self.fail(_("Invalid captcha")) + + +getInfo = create_getInfo(FileboomMe) | 
