示例#1
0
    def login(self, user, data, req):
        if not self.HOSTER_URL:  #@TODO: Remove in 0.4.10
            raise Exception(_("Missing HOSTER_DOMAIN"))

        if not self.LOGIN_URL:
            self.LOGIN_URL  = urlparse.urljoin(self.HOSTER_URL, "login.html")
        html = req.load(self.LOGIN_URL, decode=True)

        action, inputs = parseHtmlForm('name="FL"', html)
        if not inputs:
            inputs = {'op'      : "login",
                      'redirect': self.HOSTER_URL}

        inputs.update({'login'   : user,
                       'password': data['password']})

        if action:
            url = urlparse.urljoin("http://", action)
        else:
            url = self.HOSTER_URL

        html = req.load(url, post=inputs, decode=True)

        if re.search(self.LOGIN_FAIL_PATTERN, html):
            self.wrongPassword()
示例#2
0
    def login(self, user, data, req):
        if not self.HOSTER_URL:  #@TODO: Remove in 0.4.10
            raise Exception(_("Missing HOSTER_DOMAIN"))

        if not self.LOGIN_URL:
            self.LOGIN_URL  = urlparse.urljoin(self.HOSTER_URL, "login.html")
        html = req.load(self.LOGIN_URL, decode=True)

        action, inputs = parseHtmlForm('name="FL"', html)
        if not inputs:
            inputs = {'op'      : "login",
                      'redirect': self.HOSTER_URL}

        inputs.update({'login'   : user,
                       'password': data['password']})

        if action:
            url = urlparse.urljoin("http://", action)
        else:
            url = self.HOSTER_URL

        html = req.load(url, post=inputs, decode=True)

        if re.search(self.LOGIN_FAIL_PATTERN, html):
            self.wrongPassword()
示例#3
0
    def login(self, user, data, req):
        html = req.load("http://www.easybytez.com/login.html", decode=True)
        action, inputs = parseHtmlForm('name="FL"', html)
        inputs.update({"login": user, "password": data["password"], "redirect": "http://www.easybytez.com/"})

        html = req.load(action, post=inputs, decode=True)

        if "Incorrect Login or Password" in html or ">Error<" in html:
            self.wrongPassword()
示例#4
0
    def login(self, user, data, req):
        html = req.load('%slogin.html' % self.MAIN_PAGE, decode=True)

        action, inputs = parseHtmlForm('name="FL"', html)
        if not inputs:
            inputs = {"op": "login", "redirect": self.MAIN_PAGE}

        inputs.update({"login": user, "password": data['password']})

        html = req.load(self.MAIN_PAGE, post=inputs, decode=True)

        if 'Incorrect Login or Password' in html or '>Error<' in html:
            self.wrongPassword()
示例#5
0
    def login(self, user, data, req):
        html = req.load("%slogin.html" % self.MAIN_PAGE, decode=True)

        action, inputs = parseHtmlForm('name="FL"', html)
        if not inputs:
            inputs = {"op": "login", "redirect": self.MAIN_PAGE}

        inputs.update({"login": user, "password": data["password"]})

        html = req.load(self.MAIN_PAGE, post=inputs, decode=True)

        if "Incorrect Login or Password" in html or ">Error<" in html:
            self.wrongPassword()
示例#6
0
    def login(self, user, data, req):
        html = req.load('http://www.easybytez.com/login.html', decode=True)
        action, inputs = parseHtmlForm('name="FL"', html)
        inputs.update({
            "login": user,
            "password": data['password'],
            "redirect": "http://www.easybytez.com/"
        })

        html = req.load(action, post=inputs, decode=True)

        if 'Incorrect Login or Password' in html or '>Error<' in html:
            self.wrongPassword()
示例#7
0
    def login(self, user, data, req):
        html = req.load('%slogin.html' % self.MAIN_PAGE, decode=True)

        action, inputs = parseHtmlForm('name="FL"', html)
        if not inputs:
            inputs = {"op": "login", "redirect": self.MAIN_PAGE}

        inputs.update({"login": user, "password": data['password']})

        html = req.load(self.MAIN_PAGE, post=inputs, decode=True)

        if re.search(self.LOGIN_FAIL_PATTERN, html):
            self.wrongPassword()
示例#8
0
    def login(self, user, data, req):
        html = req.load(self.MAIN_PAGE + 'login.html', decode=True)

        action, inputs = parseHtmlForm('name="FL"', html)
        if not inputs:
            inputs = {"op": "login", "redirect": self.MAIN_PAGE}

        inputs.update({"login": user, "password": data['password']})

        # Without this a 403 Forbidden is returned
        req.http.lastURL = self.MAIN_PAGE + 'login.html'
        html = req.load(self.MAIN_PAGE, post=inputs, decode=True)

        if 'Incorrect Login or Password' in html or '>Error<' in html:
            self.wrongPassword()
示例#9
0
    def login(self, user, data, req):
        html = req.load('%slogin.html' % self.MAIN_PAGE, decode=True)

        action, inputs = parseHtmlForm('name="FL"', html)
        if not inputs:
            inputs = {"op": "login",
                      "redirect": self.MAIN_PAGE}

        inputs.update({"login": user,
                       "password": data['password']})

        html = req.load(self.MAIN_PAGE, post=inputs, decode=True)

        if re.search(self.LOGIN_FAIL_PATTERN, html):
            self.wrongPassword()
示例#10
0
    def handleFree(self):
        self.html = self.load(self.pyfile.url)

        #get wait time
        found = re.search('\s*var\sdownloadWait\s=\s(\d+);', self.html)
        self.setWait(int(found.group(1)) if found else 30)

        #parse download form
        action, inputs = parseHtmlForm('id="download', self.html)

        #solve captcha
        found = re.search('recaptcha/api/(?:challenge|noscript)?k=(.+?)',
                          self.html)
        captcha_key = found.group(
            1) if found else "6LdEFb0SAAAAAAwM70vnYo2AkiVkCx-xmfniatHz"

        recaptcha = ReCaptcha(self)

        inputs['recaptcha_challenge_field'], inputs[
            'recaptcha_response_field'] = recaptcha.challenge(captcha_key)
        self.wait()

        #validate
        self.req.http.c.setopt(FOLLOWLOCATION, 0)
        self.html = self.load(action, post=inputs)

        found = re.search(r"Location\s*:\s*(\S*)", self.req.http.header, re.I)
        if found:
            self.correctCaptcha()
            download_url = found.group(1)
        else:
            if "Sicherheitscode falsch" in self.html:
                self.invalidCaptcha()
                self.retry(max_tries=5, reason="Invalid captcha")
            else:
                self.fail("Invalid session")

        #download
        self.req.http.c.setopt(FOLLOWLOCATION, 1)
        self.download(download_url)

        check = self.checkDownload(
            {"ip_blocked": re.compile(r'<div class="error".*IP.*loading')})
        if check == "ip_blocked":
            self.setWait(1800, True)
            self.wait()
            self.retry()
示例#11
0
 def handleFree(self):
     self.html = self.load(self.pyfile.url)
     
     #get wait time
     found = re.search('\s*var\sdownloadWait\s=\s(\d+);', self.html)
     self.setWait(int(found.group(1)) if found else 30)
     
     #parse download form
     action, inputs = parseHtmlForm('id="download', self.html)
     
     #solve captcha
     found = re.search('recaptcha/api/(?:challenge|noscript)?k=(.+?)', self.html)
     captcha_key = found.group(1) if found else "6LdEFb0SAAAAAAwM70vnYo2AkiVkCx-xmfniatHz"
            
     recaptcha = ReCaptcha(self)
     
     inputs['recaptcha_challenge_field'], inputs['recaptcha_response_field'] = recaptcha.challenge(captcha_key)
     self.wait()
     
     #validate
     self.req.http.c.setopt(FOLLOWLOCATION, 0)
     self.html = self.load(action, post = inputs)      
     
     found = re.search(r"Location\s*:\s*(\S*)", self.req.http.header, re.I)
     if found:
         self.correctCaptcha()
         download_url = found.group(1)
     else:
         if "Sicherheitscode falsch" in self.html:
             self.invalidCaptcha()
             self.retry(max_tries = 5, reason = "Invalid captcha")
         else:
             self.fail("Invalid session")
         
     #download
     self.req.http.c.setopt(FOLLOWLOCATION, 1)
     self.download(download_url)
     
     check = self.checkDownload({
         "ip_blocked": re.compile(r'<div class="error".*IP.*loading')
         })
     if check == "ip_blocked":
         self.setWait(1800, True)
         self.wait()
         self.retry()
         
         
示例#12
0
    def login(self, user, data, req):
        html = req.load(self.MAIN_PAGE + 'login.html', decode = True)

        action, inputs = parseHtmlForm('name="FL"', html)
        if not inputs:
            inputs = {"op": "login",
                      "redirect": self.MAIN_PAGE}

        inputs.update({"login": user,
                       "password": data['password']})

        # Without this a 403 Forbidden is returned
        req.http.lastURL = self.MAIN_PAGE + 'login.html'
        html = req.load(self.MAIN_PAGE, post = inputs, decode = True)

        if 'Incorrect Login or Password' in html or '>Error<' in html:
            self.wrongPassword()