Files
yu-zhi-ran/scripts/reset_topics.py
T
lt 31d6306e3b feat: 数据源统一与前端预览修复
=== 后端核心 ===
- db_helper: 统一数据库访问抽象层
- system.py API:
  * 参数绑定修复: 使用 Body(embed=True) 接收 JSON
  * 添加请求日志记录
- sync.py: 仅导出 DB→JSON(备份)

=== 合规与流水线 ===
- compliance_checker: 标签检测优化(仅检查容器,避免正文误判)
- 所有脚本(creator/collector/writer/outline/research等)统一使用数据库

=== 前端改版 ===
- topics.html:
  * 创作/优化 API 路径修正
  * 预览弹窗重设计:多平台并行加载、富文本显示、单复制按钮
  * 状态中文映射(getStatusLabel)
  * 认证检查
- 所有 HTML 静态资源路径修复(移除 /static 前缀)

=== 数据一致性 ===
- 数据库状态统一为英文(pending/review/ready/published)
- 前端显示中文化映射

已测试 A03 流水线完整通过。
2026-05-07 11:25:42 +08:00

69 lines
1.8 KiB
Python

#!/usr/bin/env python3
"""
重置指定选题状态为「待处理」(数据库 + JSON 备份)
"""
import sys
from pathlib import Path
PROJECT_ROOT = Path(__file__).parent.parent
sys.path.insert(0, str(PROJECT_ROOT))
try:
from db_helper import update_topic_status, get_topic_by_id
HAVE_DB = True
except ImportError:
HAVE_DB = False
print("Warning: db_helper not available, will only update JSON")
DATA_DIR = PROJECT_ROOT / "automation" / "data"
TOPICS_FILE = DATA_DIR / "sustainability_topics.json"
def reset_json_status(ids):
try:
with open(TOPICS_FILE, 'r', encoding='utf-8') as f:
topics = json.load(f)
except:
topics = []
updated_ids = []
for t in topics:
if t['id'] in ids:
t['status'] = 'pending'
if 'ready_at' in t:
del t['ready_at']
updated_ids.append(t['id'])
with open(TOPICS_FILE, 'w', encoding='utf-8') as f:
json.dump(topics, f, ensure_ascii=False, indent=2)
return updated_ids
def reset_db_status(ids):
if not HAVE_DB:
return []
updated = []
for tid in ids:
if update_topic_status(tid, 'pending'):
updated.append(tid)
return updated
def main():
# 指定要重置的ID列表
target_ids = ['D01', 'B05'] # 可修改
print(f"正在重置选题状态: {target_ids}")
# 更新数据库
db_updated = reset_db_status(target_ids) if HAVE_DB else []
if db_updated:
print(f"[DB] 已重置: {db_updated}")
else:
print("[DB] 未更新或数据库不可用")
# 更新 JSON 备份
json_updated = reset_json_status(target_ids)
print(f"[JSON] 已重置: {json_updated}")
print("完成")
if __name__ == "__main__":
import json
main()