#!/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()