| 40 | LINK_PREMIUM_PATTERN = r'<a href=[\'"](.+?/download/redirect/[^"\']+)' |
| 41 | |
| 42 | def handle_free(self, pyfile): |
| 43 | self.free_url = "https://hitfile.net/download/free/%s" % self.info['pattern']['ID'] |
| 44 | self.data = self.load(self.free_url) |
| 45 | |
| 46 | m = re.search(self.DL_LIMIT_PATTERN, self.data) |
| 47 | if m is not None: |
| 48 | self.retry(wait=m.group(1)) |
| 49 | |
| 50 | self.solve_captcha() |
| 51 | |
| 52 | m = re.search(r'minLimit : (.+?),', self.data) |
| 53 | if m is None: |
| 54 | self.fail(_("minLimit pattern not found")) |
| 55 | |
| 56 | wait_time = self.js.eval(m.group(1)) |
| 57 | self.wait(wait_time) |
| 58 | |
| 59 | self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With: XMLHttpRequest"]) |
| 60 | self.data = self.load("https://hitfile.net/download/getLinkTimeout/%s" % self.info['pattern']['ID'], |
| 61 | ref=self.free_url) |
| 62 | self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With:"]) |
| 63 | |
| 64 | m = re.search(self.LINK_FREE_PATTERN, self.data) |
| 65 | if m is not None: |
| 66 | self.link = "https://hitfile.net%s" % m.group(1) |
| 67 | self.data = self.load(self.link) |
| 68 | |
| 69 | def solve_captcha(self): |
| 70 | action, inputs = self.parse_html_form("action='#'") |