1
0
Fork 0

fix: revert old oauth behavior and new default email provider

This commit is contained in:
Arthur K. 2026-03-02 19:10:50 +03:00
parent 0af7179596
commit 6dd26ad3d8
Signed by: wzray
GPG key ID: B97F30FDC4636357
7 changed files with 439 additions and 23 deletions

View file

@ -0,0 +1,55 @@
import argparse
import asyncio
import json
import logging
import browser
import server
class _FakeRequest:
def __init__(self, provider: str):
self.match_info = {"provider": provider}
self.method = "GET"
self.path_qs = f"/{provider}/token"
def _enable_headed_browser() -> bool:
if "--no-startup-window" in browser.CHROME_FLAGS:
browser.CHROME_FLAGS.remove("--no-startup-window")
return True
return False
async def _run(provider: str) -> int:
patched = _enable_headed_browser()
logging.info("Headed mode patch applied: %s", patched)
request = _FakeRequest(provider)
response = await server.token_handler(request)
payload = json.loads(response.body.decode("utf-8"))
logging.info("Response status: %s", response.status)
logging.info("Response body: %s", json.dumps(payload, indent=2))
return 0 if response.status == 200 else 1
def main() -> int:
parser = argparse.ArgumentParser(
description=(
"Run the same token refresh/issue flow as server /{provider}/token "
"in headed browser mode (non-headless)."
)
)
parser.add_argument("--provider", default="chatgpt")
args = parser.parse_args()
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s %(levelname)s %(name)s: %(message)s",
)
return asyncio.run(_run(args.provider))
if __name__ == "__main__":
raise SystemExit(main())