fix: auto-fix code issues (cron)

- 修复重复导入/字段
- 修复异常处理
- 修复PEP8格式问题
- 添加类型注解
- 修复缺失的urllib.parse导入
This commit is contained in:
OpenClaw Bot
2026-02-28 06:03:09 +08:00
parent ff83cab6c7
commit fe3d64a1d2
41 changed files with 4501 additions and 1176 deletions

View File

@@ -15,11 +15,13 @@ from enum import Enum
DB_PATH = os.getenv("DB_PATH", "/app/data/insightflow.db")
class ApiKeyStatus(Enum):
ACTIVE = "active"
REVOKED = "revoked"
EXPIRED = "expired"
@dataclass
class ApiKey:
id: str
@@ -37,6 +39,7 @@ class ApiKey:
revoked_reason: str | None
total_calls: int = 0
class ApiKeyManager:
"""API Key 管理器"""
@@ -220,7 +223,8 @@ class ApiKeyManager:
if datetime.now() > expires:
# 更新状态为过期
conn.execute(
"UPDATE api_keys SET status = ? WHERE id = ?", (ApiKeyStatus.EXPIRED.value, api_key.id)
"UPDATE api_keys SET status = ? WHERE id = ?",
(ApiKeyStatus.EXPIRED.value, api_key.id),
)
conn.commit()
return None
@@ -232,7 +236,9 @@ class ApiKeyManager:
with sqlite3.connect(self.db_path) as conn:
# 验证所有权(如果提供了 owner_id
if owner_id:
row = conn.execute("SELECT owner_id FROM api_keys WHERE id = ?", (key_id,)).fetchone()
row = conn.execute(
"SELECT owner_id FROM api_keys WHERE id = ?", (key_id,)
).fetchone()
if not row or row[0] != owner_id:
return False
@@ -242,7 +248,13 @@ class ApiKeyManager:
SET status = ?, revoked_at = ?, revoked_reason = ?
WHERE id = ? AND status = ?
""",
(ApiKeyStatus.REVOKED.value, datetime.now().isoformat(), reason, key_id, ApiKeyStatus.ACTIVE.value),
(
ApiKeyStatus.REVOKED.value,
datetime.now().isoformat(),
reason,
key_id,
ApiKeyStatus.ACTIVE.value,
),
)
conn.commit()
return cursor.rowcount > 0
@@ -264,7 +276,11 @@ class ApiKeyManager:
return None
def list_keys(
self, owner_id: str | None = None, status: str | None = None, limit: int = 100, offset: int = 0
self,
owner_id: str | None = None,
status: str | None = None,
limit: int = 100,
offset: int = 0,
) -> list[ApiKey]:
"""列出 API Keys"""
with sqlite3.connect(self.db_path) as conn:
@@ -319,7 +335,9 @@ class ApiKeyManager:
with sqlite3.connect(self.db_path) as conn:
# 验证所有权
if owner_id:
row = conn.execute("SELECT owner_id FROM api_keys WHERE id = ?", (key_id,)).fetchone()
row = conn.execute(
"SELECT owner_id FROM api_keys WHERE id = ?", (key_id,)
).fetchone()
if not row or row[0] != owner_id:
return False
@@ -361,7 +379,16 @@ class ApiKeyManager:
ip_address, user_agent, error_message)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
""",
(api_key_id, endpoint, method, status_code, response_time_ms, ip_address, user_agent, error_message),
(
api_key_id,
endpoint,
method,
status_code,
response_time_ms,
ip_address,
user_agent,
error_message,
),
)
conn.commit()
@@ -436,7 +463,9 @@ class ApiKeyManager:
endpoint_params = []
if api_key_id:
endpoint_query = endpoint_query.replace("WHERE created_at", "WHERE api_key_id = ? AND created_at")
endpoint_query = endpoint_query.replace(
"WHERE created_at", "WHERE api_key_id = ? AND created_at"
)
endpoint_params.insert(0, api_key_id)
endpoint_query += " GROUP BY endpoint, method ORDER BY calls DESC"
@@ -455,7 +484,9 @@ class ApiKeyManager:
daily_params = []
if api_key_id:
daily_query = daily_query.replace("WHERE created_at", "WHERE api_key_id = ? AND created_at")
daily_query = daily_query.replace(
"WHERE created_at", "WHERE api_key_id = ? AND created_at"
)
daily_params.insert(0, api_key_id)
daily_query += " GROUP BY date(created_at) ORDER BY date"
@@ -494,9 +525,11 @@ class ApiKeyManager:
total_calls=row["total_calls"],
)
# 全局实例
_api_key_manager: ApiKeyManager | None = None
def get_api_key_manager() -> ApiKeyManager:
"""获取 API Key 管理器实例"""
global _api_key_manager