Ejemplo n.º 1
0
    def search_by_code(cls, code):
        url = "http://www5.javmost.com/" + code + "/"
        main_rsp = cls.__client.get(url, proxies=proxy)
        if main_rsp.status_code != 200:
            return None

        img, _ = try_evaluate(
            lambda: re.search(r"<meta property=\"og:image\" content=\"(.+?)\"",
                              main_rsp.text).group(1))

        if not img:
            return None

        # Nov. 13 adding: https://www5.javmost.com/IENE-623/
        if not img.startswith("http:"):
            img = "http:" + img

        bs = bs4.BeautifulSoup(main_rsp.text, "lxml")

        buttons = bs.select(".tab-overflow")[0].find_all(name="li")[1:-1]
        success = False

        var_value = re.search("'value':(.+?),", main_rsp.text).group(1)
        value = re.search("var %s = '(.+?)'" % var_value,
                          main_rsp.text).group(1)

        for button in buttons:
            params = re.search(r"select_part\((.+?)\)",
                               button.a.attrs["onclick"]).group(1)
            tokens = params.split(",")
            group = tokens[1].replace("'", "")
            part = tokens[0].replace("'", "")
            _code = tokens[4].replace("'", "")
            code2 = tokens[5].replace("'", "")
            code3 = tokens[6].replace("'", "")
            sound = re.search("'sound':'(.+?)'", main_rsp.text).group(1)

            data = urlencode(
                {
                    'group': group,
                    'part': part,
                    'code': _code,
                    'code2': code2,
                    'code3': code3,
                    'value': value,
                    'sound': sound
                },
                quote_via=quote_plus)

            rsp = cls.__client.post(
                "https://www5.javmost.com/get_movie_source/",
                headers={
                    'content-type':
                    "application/x-www-form-urlencoded; charset=UTF-8"
                },
                data=data,
                proxies=proxy)

            json_obj = json.loads(rsp.text)
            url = json_obj["data"][0]

            url = decode(url)

            if not url:
                continue

            if cls.__client.get(url, proxies=proxy).status_code == 200:
                success = True
                break

        if not success:
            return None

        av = AV()
        av.preview_img_url = img
        av.video_url = url
        av.code = code

        return av
Ejemplo n.º 2
0
    def search_by_code(cls, code):
        url = "http://www5.javmost.com/" + code
        main_rsp = cls.__client.get(url)
        if main_rsp.status_code != 200:
            return None

        img, _ = try_evaluate(
            lambda: re.search(r"<meta property=\"og:image\" content=\"(.+?)\"",
                              main_rsp.text).group(1))

        if not img:
            return None

        # Nov. 13 adding: https://www5.javmost.com/IENE-623/
        if not img.startswith("http:"):
            img = "http:" + img

        bs = bs4.BeautifulSoup(main_rsp.text, "lxml")

        buttons = bs.select('.tab-overflow')[0].find_all(name='li')[1:-1]
        success = False

        for button in buttons:
            params = re.search(r"select_part\((.+?)\)",
                               button.a.attrs['onclick']).group(1)
            e, t, a, o, l, r, d = [
                x.replace("\'", "") for x in params.split(",")
            ]

            data = re.search(r"get_source/\",(.+?)\}", main_rsp.text,
                             re.S).group(1)
            value = re.search(r"value: \"(.+?)\",", data).group(1)
            sound = re.search(r"sound: \"(.+?)\",", data).group(1)

            url = "https://www5.javmost.com/get_code/"
            rsp = cls.__client.post(url, data={"code": value})
            _code = rsp.text

            url = "https://www5.javmost.com/get_source/"
            rsp = cls.__client.post(url,
                                    data={
                                        "group": t,
                                        "part": e,
                                        "code": l,
                                        "code2": r,
                                        "code3": d,
                                        "value": value,
                                        "sound": sound,
                                        "code4": _code
                                    })

            json_obj = json.loads(rsp.text)
            url = json_obj["data"][0]

            url = decode(url)

            if cls.__client.get(url).status_code == 200:
                success = True
                break

        if not success:
            return None

        av = AV()
        av.preview_img_url = img
        av.video_url = url
        av.code = code

        return av