From 7df33e261143ac72ec7ad04dab33940b07850594 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Mon, 11 May 2026 16:28:34 +0800 Subject: [PATCH] Add dry-run mode to 2925 pool picker --- references/mail2925-account-pool-integration-2026-05-11.md | 3 ++- scripts/mail2925_pool.py | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/references/mail2925-account-pool-integration-2026-05-11.md b/references/mail2925-account-pool-integration-2026-05-11.md index 8b322ad..ec567ff 100644 --- a/references/mail2925-account-pool-integration-2026-05-11.md +++ b/references/mail2925-account-pool-integration-2026-05-11.md @@ -126,7 +126,8 @@ Do not continue the same OpenAI page after switching 2925 account; it risks mixi ```bash python3 scripts/mail2925_pool.py selftest python3 scripts/mail2925_pool.py list -python3 scripts/mail2925_pool.py pick +python3 scripts/mail2925_pool.py pick --dry-run # preview without changing rotation state +python3 scripts/mail2925_pool.py pick # allocate and update lastUsedAt python3 scripts/mail2925_pool.py mark-limit chickliu2021@2925.com --reason '子邮箱已达上限邮箱' python3 scripts/mail2925_pool.py mark-login chickliu2021@2925.com ``` diff --git a/scripts/mail2925_pool.py b/scripts/mail2925_pool.py index 7a858b2..f102b20 100755 --- a/scripts/mail2925_pool.py +++ b/scripts/mail2925_pool.py @@ -96,8 +96,9 @@ def cmd_list(args): def cmd_pick(args): a,state=pick_account(args.preferred, args.exclude or []) alias=generate_alias_for(a) - mark(a['email'], lastUsedAt=int(time.time()), lastError='') - print(json.dumps({'email':a['email'],'alias':alias,'baseLocal':a['email'].split('@')[0],'aliasMatchesAccount':alias.startswith(a['email'].split('@')[0])}, ensure_ascii=False)) + if not args.dry_run: + mark(a['email'], lastUsedAt=int(time.time()), lastError='') + print(json.dumps({'email':a['email'],'alias':alias,'baseLocal':a['email'].split('@')[0],'aliasMatchesAccount':alias.startswith(a['email'].split('@')[0]),'dryRun':bool(args.dry_run)}, ensure_ascii=False)) def cmd_limit(args): @@ -129,7 +130,7 @@ def main(): p=argparse.ArgumentParser() sub=p.add_subparsers(dest='cmd', required=True) sub.add_parser('list').set_defaults(func=cmd_list) - q=sub.add_parser('pick'); q.add_argument('--preferred'); q.add_argument('--exclude', action='append'); q.set_defaults(func=cmd_pick) + q=sub.add_parser('pick'); q.add_argument('--preferred'); q.add_argument('--exclude', action='append'); q.add_argument('--dry-run', action='store_true'); q.set_defaults(func=cmd_pick) l=sub.add_parser('mark-limit'); l.add_argument('email'); l.add_argument('--reason', default=''); l.set_defaults(func=cmd_limit) m=sub.add_parser('mark-login'); m.add_argument('email'); m.set_defaults(func=cmd_mark_login) sub.add_parser('selftest').set_defaults(func=cmd_selftest)