diff --git a/projects/280dd2a0-d23d-4a71-91e1-dce4353163be/Checkpoint 2026-09-26 18-30-04 UTC [1f4ac8f6d5].md b/projects/280dd2a0-d23d-4a71-91e1-dce4353163be/Checkpoint 2026-09-26 18-30-04 UTC [1f4ac8f6d5].md new file mode 100644 index 0000000..184ff18 --- /dev/null +++ b/projects/280dd2a0-d23d-4a71-91e1-dce4353163be/Checkpoint 2026-09-26 18-30-04 UTC [1f4ac8f6d5].md @@ -0,0 +1,26 @@ +--- +title: Checkpoint 2026-09-26 18:30:04 UTC [1f4ac8f6d5] +type: checkpoint +permalink: main/projects/280dd2a0-d23d-4a71-91e1-dce4353163be/checkpoint-2026-09-26-18-30-04-utc-1f4ac8f6d5 +stable_id: 88cf5ef2-f89e-4270-8dda-d1743b3facf1 +scope: project +memory_type: checkpoint +project_id: 280dd2a0-d23d-4a71-91e1-dce4353163be +usage_profile_id: 0c9feb46-d06e-43cd-9ef0-c5813c84a998 +status: active +revision: 1 +request_id: rapt-checkpoint-httpx-proxy-20260927 +created_at: '2026-09-26T18:30:04.177958+00:00' +updated_at: '2026-09-26T18:30:04.177958+00:00' +tags: +- httpx +- proxy +--- + +完成:对外 HTTP 从 urllib 改为 httpx.Client;代理三种模式;登录页右下角齿轮按钮;设置弹窗用 n-tabs 分「设备信息」和「代理」两页,底部共用保存。 +原因:统一对外客户端,并让代理跟随本机设置生效,且设备信息和代理不放在同一屏。 +关键实现:rapt_scraper.configure_proxy / http_client_kwargs;不使用时 trust_env=False;系统代理来自 urllib.request.getproxies();自定义 HTTP 为 http://,SOCKS5 为 socks5h://。server/requirements.txt 为 httpx[socks],已从 server/.venv 卸掉 PySocks。设置存 localStorage 键 rapt-device-settings,打开页面 POST /api/proxy。登录后 use_device 绑定 token。ADB 从设备读取时只覆盖指纹和语言。 +验证:小脚本确认关闭代理时 trust_env 为 False、缺地址报错、http 与 socks5 能组出代理参数并构造 Client(未真连外网)。ui 目录 vue-tsc --noEmit 通过。浏览器打开 http://127.0.0.1:52202/ :右下角齿轮,悬停提示「设置」;两页可切换且同一屏看不到另一页字段;自定义可选 HTTP/SOCKS5 和地址端口;空地址保存显示「请填写代理地址」且弹窗不关闭。设备页内容超出时在页内滚动,取消和保存仍在底部。浏览器已解锁。 +问题:没有用真实外网代理做连通测试。 +下一步:若要加快大量 ts 下载,再单独把同步 download_episode 改成 httpx.AsyncClient 并发约 8–16。不要继续抓包界面,不要调 /app/open/foryou。 +给下个会话:Tauri 当前在跑 npm run tauri dev,地址 http://127.0.0.1:52202/。未提交。下载仍是同步 Client。swagger/serve.py 仍用 urllib,它不是对外 API 客户端。不要把代理密码、账号密码或 token 写进源码和普通记忆。 \ No newline at end of file