def METHOD_NAME(self, pyfile):
    self.free_url = "https://turbobit.net/download/free/{}".format(
        self.info["pattern"]["ID"]
    )
    self.data = self.load(self.free_url)
    m = re.search(self.LIMIT_WAIT_PATTERN, self.data)
    if m is not None:
        self.retry(wait=m.group(1))
    self.solve_captcha()
    m = re.search(r"minLimit : (.+?),", self.data)
    if m is None:
        self.retry_captcha()
    self.captcha.correct()
    wait_time = eval_js(m.group(1))
    self.wait(wait_time)
    self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With: XMLHttpRequest"])
    self.data = self.load(
        "https://turbobit.net/download/getLinkTimeout/{}".format(
            self.info["pattern"]["ID"]
        ),
        ref=self.free_url,
    )
    self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With:"])
    if "/download/started/" in self.data:
        self.data = self.load(
            "https://turbobit.net/download/started/{}".format(
                self.info["pattern"]["ID"]
            )
        )
        m = re.search(self.LINK_FREE_PATTERN, self.data)
        if m is not None:
            self.link = "https://turbobit.net{}".format(m.group(1))