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 流水线完整通过。
This commit is contained in:
+67
-9
@@ -1,10 +1,68 @@
|
||||
#!/usr/bin/env python3
|
||||
import json
|
||||
data = json.load(open('automation/data/sustainability_topics.json', 'r', encoding='utf-8'))
|
||||
for t in data:
|
||||
if t['id'] in ['D01', 'B05']:
|
||||
t['status'] = '待处理'
|
||||
if 'ready_at' in t:
|
||||
del t['ready_at']
|
||||
json.dump(data, open('automation/data/sustainability_topics.json', 'w', encoding='utf-8'), ensure_ascii=False, indent=2)
|
||||
print('已重置选题状态:', [t['id'] for t in data if t['id'] in ['D01','B05']])
|
||||
"""
|
||||
重置指定选题状态为「待处理」(数据库 + 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()
|
||||
|
||||
Reference in New Issue
Block a user