Author SHA1 Message Date
TheRaiwy 19a6c81e51 Auto-zoom out 1% when Persona says 'Move further away'
tests / test (push) Successful in 6s
tests / release (push) Successful in 6s
2026-07-10 20:54:54 +03:00
TheRaiwy f0a6b79a82 Retry on all errors (timeouts, crashes) instead of giving up
tests / test (push) Successful in 5s
tests / release (push) Successful in 6s
2026-07-10 20:47:57 +03:00
TheRaiwy 146609bbae Use CDP (execute_cdp_cmd) to set httpOnly cookie with fallback
tests / test (push) Successful in 5s
tests / release (push) Successful in 5s
2026-07-10 20:38:42 +03:00
+18 -11
View File
@@ -302,10 +302,8 @@ def save_result(acc: dict, category: str, msg: str = "") -> None:
def _cookie_login(driver, cookie: str) -> bool:
driver.get("https://www.roblox.com/home")
driver.get("https://www.roblox.com")
time.sleep(2)
if "/login" not in driver.current_url:
return True
try:
accept = WebDriverWait(driver, 3).until(EC.element_to_be_clickable((By.XPATH, "//button[text()='Accept All']")))
accept.click()
@@ -313,19 +311,19 @@ def _cookie_login(driver, cookie: str) -> bool:
except Exception:
pass
try:
driver.add_cookie({
driver.execute_cdp_cmd("Network.setCookie", {
"name": ".ROBLOSECURITY",
"value": cookie,
"domain": ".roblox.com",
"path": "/",
"secure": True,
"httpOnly": True,
})
driver.get("https://www.roblox.com/home")
time.sleep(4)
return "/login" not in driver.current_url
except Exception as e:
log.warning("Cookie login error: %s", e)
return False
except Exception:
driver.add_cookie({"name": ".ROBLOSECURITY", "value": cookie, "domain": ".roblox.com"})
driver.get("https://www.roblox.com/home")
time.sleep(4)
return "/login" not in driver.current_url
def process_account(driver, acc: dict, donor_video: Path | None,
@@ -569,6 +567,7 @@ def process_account(driver, acc: dict, donor_video: Path | None,
_draw();
}};
window.__seekDirection = function(dir) {{ _currentDir = dir; }};
window.__zoomOut = function() {{ _scaleX *= 0.99; _scaleY *= 0.99; }};
if (navigator.mediaDevices) {{
navigator.mediaDevices.getUserMedia = function(constraints) {{
@@ -647,6 +646,10 @@ def process_account(driver, acc: dict, donor_video: Path | None,
log.info("Photo rejected, restarting browser")
driver.switch_to.default_content()
return True
if "further away" in body.lower() or "move back" in body.lower():
driver.execute_script("window.__zoomOut();")
log.info("Zoomed out (further away detected)")
time.sleep(1)
if "Session expired" in body:
log.info("Session expired detected during verification")
driver.switch_to.default_content()
@@ -777,7 +780,11 @@ def _process_one(tid: int, acc: dict,
continue
break
except Exception as e:
log.error("[T%d] Error: %s", tid, e)
log.error("[T%d] Error: %s (attempt %d/%d)", tid, e, attempt + 1, max_retries)
if attempt + 1 < max_retries:
log.info("[T%d] Retrying after error...", tid)
time.sleep(5)
continue
break
finally:
if TEST_MODE: