#!/usr/bin/env python3 # COOKIE VAULT v5 — session-1 chrome launcher bridge # Runs AS drjones (interactive Session 1) via scheduled task. # Listens 127.0.0.1:5067, receives {cookies, domain} JSON, launches visible Chrome+selenium. import json, os, re, time, threading from http.server import BaseHTTPRequestHandler, HTTPServer from urllib.parse import urlparse SESSION_DIR = r"C:\cookievault\sessions" class Handler(BaseHTTPRequestHandler): def log_message(self, *a): pass def do_GET(self): if self.path.startswith("/shot/"): tok = self.path[len("/shot/"):] img = SCREENSHOTS.get(tok) if not img: self.send_response(404); self.end_headers(); return self.send_response(200) self.send_header("Content-Type", "image/png") self.send_header("Content-Length", str(len(img))) self.end_headers() self.wfile.write(img) return self.send_response(404); self.end_headers() def do_POST(self): if urlparse(self.path).path != "/launch": self.send_response(404); self.end_headers(); return try: ln = int(self.headers.get("Content-Length", 0)) data = json.loads(self.rfile.read(ln)) domain = data.get("domain", "") cookies = data.get("cookies", []) if not domain or not cookies: self._json(400, {"ok": False, "error": "domain and cookies required"}); return tok = "%s_%d" % (re.sub(r'[^a-z0-9]', '', domain.lower())[:20], int(time.time())) threading.Thread(target=launch, args=(domain, cookies, tok), daemon=True).start() self._json(200, {"ok": True, "launched": len(cookies), "token": tok}) except Exception as e: self._json(500, {"ok": False, "error": str(e)}) def _json(self, code, obj): body = json.dumps(obj).encode() self.send_response(code) self.send_header("Content-Type", "application/json") self.send_header("Content-Length", str(len(body))) self.end_headers() self.wfile.write(body) def launch(domain, cookies, tok): from selenium import webdriver from selenium.webdriver.chrome.options import Options opts = Options() profile = os.path.join(SESSION_DIR, re.sub(r'[^a-zA-Z0-9]', '_', domain)) os.makedirs(profile, exist_ok=True) opts.add_argument(r"--user-data-dir=" + profile) opts.add_argument("--no-first-run") opts.add_argument("--no-default-browser-check") opts.add_argument("--start-maximized") opts.add_argument("--window-size=1440,900") opts.add_argument("--disable-gpu") driver = webdriver.Chrome(options=opts) try: SCREENSHOTS[tok] = _png(driver, "starting") host = domain.lstrip(".") try: driver.get(f"https://{host}/favicon.ico") except Exception: try: driver.get(f"https://{host}/") except Exception: pass time.sleep(1.5) added = 0 for ck in cookies: try: c = {"name": ck.get("name"), "value": ck.get("value", ""), "domain": ck.get("domain", ""), "path": ck.get("path", "/") or "/", "secure": bool(ck.get("secure"))} if not c["name"]: continue exp = ck.get("expiry") or 0 try: exp = int(float(exp)) except Exception: exp = 0 if exp > 0: c["expiry"] = exp try: driver.add_cookie(c); added += 1 except Exception: c2 = dict(c); c2.pop("expiry", None) try: driver.add_cookie(c2); added += 1 except Exception: pass except Exception: pass try: driver.get(f"https://{host}/") time.sleep(4) SCREENSHOTS[tok] = _png(driver, "done") except Exception: SCREENSHOTS[tok] = _png(driver, "cookies-set") with open(os.path.join(SESSION_DIR, "_launch.log"), "a", encoding="utf-8") as f: f.write(f"{time.ctime()} {domain}: added {added}/{len(cookies)} cookies\n") finally: try: driver.quit() except Exception: pass def _png(driver, stage): try: return driver.get_screenshot_as_png() except Exception: return b"" SCREENSHOTS = {} if __name__ == "__main__": HTTPServer(("127.0.0.1", 5067), Handler).serve_forever()