Files
yu-zhi-ran/scripts/adjust_priority.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

74 lines
2.1 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 get_topic_by_id, update_topic_status
from app.database import SessionLocal
from app.models import Topic as DBTopic
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 adjust_json_priority(adjustments):
try:
with open(TOPICS_FILE, 'r', encoding='utf-8') as f:
topics = json.load(f)
except:
topics = []
updated = []
for t in topics:
if t['id'] in adjustments:
old = t.get('priority_score', 0)
t['priority_score'] = adjustments[t['id']]
updated.append(f"{t['id']}: {old} -> {adjustments[t['id']]}")
with open(TOPICS_FILE, 'w', encoding='utf-8') as f:
json.dump(topics, f, ensure_ascii=False, indent=2)
return updated
def adjust_db_priority(adjustments):
if not HAVE_DB:
return []
updated = []
db = SessionLocal()
try:
for tid, new_score in adjustments.items():
topic = db.query(DBTopic).filter(DBTopic.id == tid).first()
if topic:
topic.priority_score = new_score
topic.updated_at = datetime.now()
updated.append(f"{tid}: {topic.priority_score} -> {new_score}")
db.commit()
finally:
db.close()
return updated
def main():
# 定义需要调整的优先级:ID -> 新分数
adjustments = {
'D01': 11,
'B05': 10
}
print("调整优先级...")
db_updated = adjust_db_priority(adjustments) if HAVE_DB else []
if db_updated:
print("[DB] updated:", ', '.join(db_updated))
json_updated = adjust_json_priority(adjustments)
print("[JSON] updated:", ', '.join(json_updated))
print("完成")
if __name__ == "__main__":
import json, datetime
main()