From 8b0ffcbc9a2343516d8d8fde444770eb69cac839 Mon Sep 17 00:00:00 2001 From: t101804 Date: Mon, 20 Nov 2023 00:27:04 +0700 Subject: [PATCH 1/2] Creating a option for user can executing js code --- src/dtos.py | 2 ++ src/flaresolverr_service.py | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/dtos.py b/src/dtos.py index 1e9aace..428ee5b 100644 --- a/src/dtos.py +++ b/src/dtos.py @@ -18,6 +18,7 @@ class ChallengeResolutionResultT: class ChallengeResolutionT: status: str = None message: str = None + jsrespond: str = None result: ChallengeResolutionResultT = None def __init__(self, _dict): @@ -32,6 +33,7 @@ class V1RequestBase(object): cookies: list = None maxTimeout: int = None proxy: dict = None + execjs: str = None session: str = None session_ttl_minutes: int = None headers: list = None # deprecated v2.0.0, not used diff --git a/src/flaresolverr_service.py b/src/flaresolverr_service.py index acc920b..682e7e2 100644 --- a/src/flaresolverr_service.py +++ b/src/flaresolverr_service.py @@ -393,7 +393,10 @@ def _evil_logic(req: V1RequestBase, driver: WebDriver, method: str) -> Challenge challenge_res.status = 200 # todo: fix, selenium not provides this info challenge_res.cookies = driver.get_cookies() challenge_res.userAgent = utils.get_user_agent(driver) - + if req.execjs: + r = driver.execute_script(req.execjs) + res.jsrespond = r + logging.info(f"executing {req.execjs} and got an output {r}") if not req.returnOnlyCookies: challenge_res.headers = {} # todo: fix, selenium not provides this info challenge_res.response = driver.page_source From 87c222068eeff95038ac035f4ad2edb061a1374a Mon Sep 17 00:00:00 2001 From: T10 <113588203+t101804@users.noreply.github.com> Date: Sun, 19 Nov 2023 20:31:59 +0000 Subject: [PATCH 2/2] Typo it should be challenge_res --- src/flaresolverr_service.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/flaresolverr_service.py b/src/flaresolverr_service.py index 682e7e2..c3ac101 100644 --- a/src/flaresolverr_service.py +++ b/src/flaresolverr_service.py @@ -395,7 +395,7 @@ def _evil_logic(req: V1RequestBase, driver: WebDriver, method: str) -> Challenge challenge_res.userAgent = utils.get_user_agent(driver) if req.execjs: r = driver.execute_script(req.execjs) - res.jsrespond = r + challenge_res.jsrespond = r logging.info(f"executing {req.execjs} and got an output {r}") if not req.returnOnlyCookies: challenge_res.headers = {} # todo: fix, selenium not provides this info