MCPcopy Create free account
hub / github.com/ZyphrZero/z.ai2api_python / add_tokens

Function add_tokens

app/admin/api.py:630–702  ·  view source on GitHub ↗

添加 Token

(request: Request)

Source from the content-addressed store, hash-verified

628
629@router.post("/tokens/add")
630async def add_tokens(request: Request):
631 """添加 Token"""
632 from app.services.token_dao import get_token_dao
633 from app.utils.token_pool import get_token_pool
634
635 form_data = await request.form()
636 single_token = form_data.get("single_token", "").strip()
637 bulk_tokens = form_data.get("bulk_tokens", "").strip()
638
639 dao = get_token_dao()
640 added_count = 0
641 failed_count = 0
642
643 # 添加单个 Token(带验证)
644 if single_token:
645 token_id = await dao.add_token(
646 DEFAULT_TOKEN_NAMESPACE,
647 single_token,
648 validate=True,
649 )
650 if token_id:
651 added_count += 1
652 else:
653 failed_count += 1
654
655 # 批量添加 Token(带验证)
656 if bulk_tokens:
657 # 支持换行和逗号分隔
658 tokens = []
659 for line in bulk_tokens.split('\n'):
660 line = line.strip()
661 if ',' in line:
662 tokens.extend([t.strip() for t in line.split(',') if t.strip()])
663 elif line:
664 tokens.append(line)
665
666 success, failed = await dao.bulk_add_tokens(
667 DEFAULT_TOKEN_NAMESPACE,
668 tokens,
669 validate=True,
670 )
671 added_count += success
672 failed_count += failed
673
674 # 同步 Token 池状态(如果有新增成功的 Token)
675 if added_count > 0:
676 pool = get_token_pool()
677 if pool:
678 await pool.sync_from_database(DEFAULT_TOKEN_NAMESPACE)
679 logger.info(f"✅ Token 池已同步,新增 {added_count} 个 Token")
680
681 # 生成响应
682 if added_count > 0 and failed_count == 0:
683 return HTMLResponse(f"""
684 <div class="bg-green-100 border border-green-400 text-green-700 px-4 py-3 rounded relative" role="alert">
685 <strong class="font-bold">成功!</strong>
686 <span class="block sm:inline">已添加 {added_count} 个有效 Token</span>
687 </div>

Callers

nothing calls this directly

Calls 5

get_token_daoFunction · 0.90
get_token_poolFunction · 0.90
add_tokenMethod · 0.80
bulk_add_tokensMethod · 0.80
sync_from_databaseMethod · 0.80

Tested by

no test coverage detected