diff options
Diffstat (limited to 'module/plugins/hoster/EasybytezCom.py')
| -rw-r--r-- | module/plugins/hoster/EasybytezCom.py | 45 | 
1 files changed, 37 insertions, 8 deletions
diff --git a/module/plugins/hoster/EasybytezCom.py b/module/plugins/hoster/EasybytezCom.py index dac35b1d3..3ee2e9ba5 100644 --- a/module/plugins/hoster/EasybytezCom.py +++ b/module/plugins/hoster/EasybytezCom.py @@ -24,7 +24,7 @@ class EasybytezCom(SimpleHoster):      __name__ = "EasybytezCom"      __type__ = "hoster"      __pattern__ = r"http://(?:\w*\.)?easybytez.com/(\w+).*" -    __version__ = "0.03" +    __version__ = "0.04"      __description__ = """easybytez.com"""      __author_name__ = ("zoidberg")      __author_mail__ = ("zoidberg@mujmail.cz") @@ -33,22 +33,26 @@ class EasybytezCom(SimpleHoster):      FILE_NAME_PATTERN = r'<input type="hidden" name="fname" value="(?P<N>[^"]+)"'      FILE_SIZE_PATTERN = r'You have requested <font color="red">[^<]+</font> \((?P<S>[^<]+)\)</font>' +    FILE_INFO_PATTERN = r'<tr><td align=right><b>Filename:</b></td><td nowrap>(?P<N>[^<]+)</td></tr>\s*.*?<small>\((?P<S>[^<]+)\)</small>'          FILE_OFFLINE_PATTERN = r'<h2>File Not Found</h2>' -    FORM_INPUT_PATTERN = r'<input[^>]* name="([^"]+)" value="([^"]*)">' +    FORM_INPUT_PATTERN = r'<input[^>]* name="([^"]+)"[^>]*value="([^"]*)"'      WAIT_PATTERN = r'<span id="countdown_str">[^>]*>(\d+)</span> seconds</span>'      DIRECT_LINK_PATTERN = r'(http://\w+\.easybytez\.com/files/\d+/\w+/[^"<]+)' -    URL_FORM_PATTERN = r'<form name="url"[^>]*action="([^"]+)(.*?)</form>' +    FORM_PATTERN = r'<form name=["\']?%s[^>]*action=["\']?([^"\' ]+)(.*?)</form>'      OVR_DOWNLOAD_LINK_PATTERN = r'<h2>Download Link</h2>\s*<textarea[^>]*>([^<]+)'      OVR_KILL_LINK_PATTERN = r'<h2>Delete Link</h2>\s*<textarea[^>]*>([^<]+)' +    TEXTAREA_PATTERN = r"<textarea name='([^']+)'>([^<]+)</textarea>" +     +    HOSTER_URL = "www.easybytez.com"       def process(self, pyfile):          if not re.match(self.__pattern__, self.pyfile.url):              if self.premium:                  self.handleOverriden()              else: -                self.fail("Only premium users can download from other hosters with EasyBytes") +                self.fail("Only premium users can download from other hosters with %s" % self.HOSTER_URL)          else:                          self.html = self.load(pyfile.url, cookies = False, decode = True)              self.file_info = self.getFileInfo() @@ -73,17 +77,36 @@ class EasybytezCom(SimpleHoster):          self.downloadLink(found.group(1))      def handleOverriden(self): -        self.html = self.load('http://www.easybytez.com/') -        action, form = re.search(self.URL_FORM_PATTERN, self.html, re.DOTALL).groups() +        self.html = self.load(self.HOSTER_URL) +        action, form = re.search(self.FORM_PATTERN % "url", self.html, re.DOTALL).groups()          inputs = dict(re.findall(self.FORM_INPUT_PATTERN, form)) -        action += "%d&js_on=1&utype=prem&upload_type=url" % int(random()*10**12) +        upload_id = "%012d" % int(random()*10**12) +        action += upload_id + "&js_on=1&utype=prem&upload_type=url"            inputs['tos'] = '1'          inputs['url_mass'] = self.pyfile.url +        inputs['up1oad_type'] = 'url'       +        self.logDebug(action, inputs)          self.html = self.load(action, post = inputs) +         +        found = re.search(self.FORM_PATTERN % "F1", self.html, re.S | re.I) +        if not found: +            self.logDebug(self.html) +            self.fail("upload failed") +        action, form = found.groups() +                         +        inputs = dict(re.findall(self.TEXTAREA_PATTERN, form)) +        if not inputs: parseError('TEXTAREA') +        self.logDebug(inputs)  +        if inputs['st'] == 'OK': +            self.html = self.load(action, post = inputs) +        else: +            self.fail(inputs['st']) +                  found = re.search(self.OVR_DOWNLOAD_LINK_PATTERN, self.html)          if not found: self.parseError('DIRECT LINK (OVR)') -        self.downloadLink(found.group(1)) +        self.pyfile.url = found.group(1) +        self.retry()      def downloadLink(self, link):                     self.logDebug('DIRECT LINK: %s' % link)  @@ -92,6 +115,9 @@ class EasybytezCom(SimpleHoster):      def getPostParameters(self, premium=False):          inputs = dict(re.findall(self.FORM_INPUT_PATTERN, self.html))          self.logDebug(inputs) +         +        if 'op' in inputs and inputs['op'] == 'download2': return inputs +                  inputs['referer'] = self.pyfile.url          if premium: @@ -111,5 +137,8 @@ class EasybytezCom(SimpleHoster):              self.wait()          return inputs +     +    def urlParseFileName(self): +        return html_unescape(urlparse(self.pyfile.url).path.split("/")[-1])  getInfo = create_getInfo(EasybytezCom)
\ No newline at end of file  | 
