yml2213
|
65a4590291
|
refactor(time): 时间列统一走 UTCDateTime,并把 MySQL 会话时区对齐成 UTC
问题不是「UTC 还是本地时间」,而是这套口径有两个半吊子的地方:
1. 库里存 naive UTC、读出来也是裸时间,于是每一处比较/输出都得自己补时区。
项目里因此散了三份 _as_utc 和一堆 replace(tzinfo=UTC),P1a 排下一轮时间
时还炸过一次 TypeError: can't compare offset-naive and offset-aware。
2. MySQL 会话时区跟随系统 +08:00,而库里存的是 UTC —— SQL 里的 NOW()/
CURDATE() 比库里的时间快 8 小时,查询会静默返回空(P1a 排查时就遇到过,
看着像「没有数据」)。
改动:
- 新增 database.UTCDateTime:写时 aware→转 UTC 去 tzinfo、naive 视为 UTC;
读时一律补 UTC 时区。底层 DDL 仍是 DATETIME,**不需要迁移**。models.py 的
28 个时间列全部改用它,模型上的时间字段从此不再是裸值;
- docker-compose 给 mysql 加 --default-time-zone=+00:00,让 SQL 时间函数与存储
口径一致。安全性已核实:全库 0 个 TIMESTAMP 列、0 个 CURRENT_TIMESTAMP
默认值,改这里不会改变任何已有数据的语义;
- 新增 tests/test_utc_datetime.py:读出必须 aware、能直接和 datetime.now(UTC)
比较、带 +08:00 的写入要落成 UTC、naive 写入视为 UTC,并有一条元测试扫描
Base.metadata,防止以后新增时间列忘了用 UTCDateTime。
保留既有的 _as_utc 补丁(对 aware 值是幂等的,属防御性代码);新代码不再需要。
「存 UTC、算 UTC、显示本地」三条线至此各自明确:存储与比较统一 UTC,日志按
容器 TZ 显示本地时间,前端 formatTime 负责转本地。
|
2026-10-02 20:27:07 +08:00 |
|
yml2213
|
b58c6b4357
|
执行 Ruff 安全自动修复
|
2026-08-31 10:28:14 +08:00 |
|
yml2213
|
47e19ed7b2
|
style: 统一 Ruff 代码格式
|
2026-08-30 21:04:52 +08:00 |
|
yml2213
|
72cf0e5fef
|
fix: 修复斗鱼Cookie导出422路由冲突 & 优化登录密码错误提示
- cookies.py: 将 GET /export 路由移至 GET /{task_id} 之前,避免
动态路径 task_id:int 误匹配 'export' 导致 422 校验错误
- LoginPage.tsx: 密码错误(401)时清空密码框并自动聚焦,方便快速重试
- database.py/migrations/env.py: 应用内嵌调用 alembic 时跳过 fileConfig,
避免覆盖 uvicorn 日志配置导致启动日志丢失
- client.ts: 401 拦截排除 /auth/login,避免登录失败时误跳转吞掉错误提示
|
2026-07-30 13:04:40 +08:00 |
|
yml2213
|
73ec12bcbc
|
统一开发环境使用 MySQL
|
2026-07-25 11:01:57 +08:00 |
|
yml2213
|
32f9eadfdb
|
支持 MySQL 迁移与性能优化
|
2026-07-25 10:23:19 +08:00 |
|
yml2213
|
7bb50a9bbf
|
增强登录稳定性
|
2026-06-24 09:17:15 +08:00 |
|
yml2213
|
177ec42416
|
加密敏感数据并优化补CK流程
|
2026-06-24 09:10:31 +08:00 |
|
yml2213
|
dd56de9bd4
|
fix: 修复proxy_service和account_service中不当的顶层import
- proxy_service.py: 将requests和WhitelistManager改为函数内延迟import,
避免启动时加载不需要的依赖;移除未使用的get_exit_ip_via_proxy导入
- account_service.py: 移除未使用的func、joinedload、AuditLog、
user_has_permission顶层导入
|
2026-06-23 08:35:29 +08:00 |
|
yml2213
|
db384701a9
|
fix(security): JWT密钥与默认账号改用环境变量,清理泄露凭据
- JWT_SECRET_KEY 改从环境变量读取,未设置时使用临时随机密钥并告警
- 默认管理员账号密码改用 ADMIN_USERNAME/ADMIN_PASSWORD 环境变量配置
- 移除登录页及启动/部署脚本中的默认密码明文提示
- docker-compose.yml 添加环境变量支持(从 .env 文件读取)
- 新增 .env.example 配置文档,.gitignore 添加 .env 规则
- git rm --cached 清理已追踪的 data/accounts.json 和 data/cookies/敏感文件
|
2026-06-23 06:42:37 +08:00 |
|
 yml2213andClaude Fable 5
|
8fdf8d4b69
|
优化代理获取和登录逻辑
- 每个账号独立获取代理,不再共用一个代理IP
- 代理预检失败只标记该账号失败,不终止整个批次
- 代理验证改为并发:verify_proxies_concurrent 多IP同时验证
- resolve_working_proxy 多IP并发验证,找到可用即返回
- parse_proxy_response 改为返回列表,支持多行/逗号分隔
- 邮箱验证码匹配收件人地址,防止多账号并发取错验证码
- 修正 mail.bdhg.xyz 旧数据端口和SSL配置
- bdhg.xyz 默认配置改为 143端口非SSL
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-06-22 22:44:01 +08:00 |
|
 yml2213andClaude Fable 5
|
52102655ac
|
修复IMAP连接:支持非SSL端口143
- IMAP服务器 111.229.206.54 只开放143端口(非SSL),993不通
- 默认配置改为端口143、ssl=False
- EmailVerifier 增加 use_ssl 参数,支持 IMAP4 和 IMAP4_SSL
- Account 模型增加 email_imap_ssl 字段
- 数据库迁移:新增列 + 修正旧数据端口和SSL设置
- 导入账号时自动填充 ssl 配置
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-06-22 20:58:31 +08:00 |
|
yml2213
|
8771d91a30
|
优化权限控制
|
2026-06-22 17:07:29 +08:00 |
|
yml2213
|
9af92fc2a9
|
增加了账号管理的分组功能
|
2026-06-22 15:09:51 +08:00 |
|
yml2213
|
347edb8103
|
初步增加 web 界面
|
2026-06-22 13:11:15 +08:00 |
|