From e1e805a91b356dcb3236710a1ac748e41a0909ce Mon Sep 17 00:00:00 2001 From: Michel Roux Date: Thu, 5 Jan 2023 14:27:33 +0000 Subject: [PATCH] FlareSolverr v3 --- commands/pygg.py | 73 +++++++++++++++--------------------------------- 1 file changed, 22 insertions(+), 51 deletions(-) diff --git a/commands/pygg.py b/commands/pygg.py index 512bf20..4133899 100755 --- a/commands/pygg.py +++ b/commands/pygg.py @@ -19,74 +19,45 @@ class FlareRequests(requests.Session): if not CLOUDPROXY_ENDPOINT: return super().request(method, url, params, data, **kwargs) - sessions = requests.post( - CLOUDPROXY_ENDPOINT, json={"cmd": "sessions.list"} - ).json() - - if "sessions" in sessions and len(sessions["sessions"]) > 0: - FLARESESSION = sessions["sessions"][0] - else: - response = requests.post( - CLOUDPROXY_ENDPOINT, json={"cmd": "sessions.create"} - ) - session = response.json() - - if "session" in session: - FLARESESSION = session["session"] - else: - raise requests.RequestException(response) - if params: url += "&" if len(url.split("?")) > 1 else "?" url = f"{url}{urllib.parse.urlencode(params)}" post_data = { "cmd": f"request.{method.lower()}", - "session": FLARESESSION, "url": url, } if data: post_data["postData"] = urllib.parse.urlencode(data) - try: - response = requests.post( - CLOUDPROXY_ENDPOINT, - json=post_data, - ) + response = requests.post( + CLOUDPROXY_ENDPOINT, + json=post_data, + ) - solution = response.json() + content = response.json() - if "solution" in solution: - if "content-type" in solution["solution"]["headers"]: - content_type = solution["solution"]["headers"][ - "content-type" - ].split(";") - if len(content_type) > 1: - charset = content_type[1].split("=") - if len(charset) > 1: - encoding = charset[1] + if "solution" in content: + solution = content["solution"] + if "content-type" in solution["headers"]: + content_type = solution["headers"]["content-type"].split(";") + if len(content_type) > 1: + charset = content_type[1].split("=") + if len(charset) > 1: + encoding = charset[1] - resolved = requests.Response() + resolved = requests.Response() - resolved.status_code = solution["solution"]["status"] - resolved.headers = solution["solution"]["headers"] - resolved.raw = io.BytesIO(solution["solution"]["response"].encode()) - resolved.url = url - resolved.encoding = encoding or None - resolved.reason = solution["status"] - resolved.cookies = solution["solution"]["cookies"] + resolved.status_code = solution["status"] + resolved.headers = solution["headers"] + resolved.raw = io.BytesIO(solution["response"].encode()) + resolved.url = url + resolved.encoding = encoding or None + resolved.reason = content["status"] + resolved.cookies = solution["cookies"] - return resolved - - raise requests.RequestException(response) - except requests.RequestException: - session = requests.post( - CLOUDPROXY_ENDPOINT, - json={"cmd": "sessions.destroy", "session": FLARESESSION}, - ) - - raise requests.RequestException(solution) + return resolved parser = argparse.ArgumentParser()