获取凭证状态
(self, filename: str, mode: str = "geminicli")
| 485 | return False |
| 486 | |
| 487 | async def get_credential_state(self, filename: str, mode: str = "geminicli") -> Dict[str, Any]: |
| 488 | """获取凭证状态""" |
| 489 | self._ensure_initialized() |
| 490 | filename = os.path.basename(filename) |
| 491 | |
| 492 | try: |
| 493 | table_name = self._get_table_name(mode) |
| 494 | async with self._pool.acquire() as conn: |
| 495 | if mode == "geminicli": |
| 496 | row = await conn.fetchrow(f""" |
| 497 | SELECT disabled, error_codes, last_success, user_email, model_cooldowns, preview, tier |
| 498 | FROM {table_name} WHERE filename = $1 |
| 499 | """, filename) |
| 500 | |
| 501 | if row: |
| 502 | return { |
| 503 | "disabled": bool(row["disabled"]), |
| 504 | "error_codes": json.loads(row["error_codes"] or "[]"), |
| 505 | "last_success": row["last_success"] or time.time(), |
| 506 | "user_email": row["user_email"], |
| 507 | "model_cooldowns": json.loads(row["model_cooldowns"] or "{}"), |
| 508 | "preview": bool(row["preview"]) if row["preview"] is not None else True, |
| 509 | "tier": row["tier"] if row["tier"] is not None else "pro", |
| 510 | } |
| 511 | |
| 512 | return { |
| 513 | "disabled": False, |
| 514 | "error_codes": [], |
| 515 | "last_success": time.time(), |
| 516 | "user_email": None, |
| 517 | "model_cooldowns": {}, |
| 518 | "preview": True, |
| 519 | "tier": "pro", |
| 520 | } |
| 521 | else: |
| 522 | row = await conn.fetchrow(f""" |
| 523 | SELECT disabled, error_codes, last_success, user_email, model_cooldowns, tier, enable_credit |
| 524 | FROM {table_name} WHERE filename = $1 |
| 525 | """, filename) |
| 526 | |
| 527 | if row: |
| 528 | return { |
| 529 | "disabled": bool(row["disabled"]), |
| 530 | "error_codes": json.loads(row["error_codes"] or "[]"), |
| 531 | "last_success": row["last_success"] or time.time(), |
| 532 | "user_email": row["user_email"], |
| 533 | "model_cooldowns": json.loads(row["model_cooldowns"] or "{}"), |
| 534 | "tier": row["tier"] if row["tier"] is not None else "pro", |
| 535 | "enable_credit": bool(row["enable_credit"]) if row["enable_credit"] is not None else False, |
| 536 | } |
| 537 | |
| 538 | return { |
| 539 | "disabled": False, |
| 540 | "error_codes": [], |
| 541 | "last_success": time.time(), |
| 542 | "user_email": None, |
| 543 | "model_cooldowns": {}, |
| 544 | "tier": "pro", |
no test coverage detected