MCPcopy
hub / github.com/HisMax/RedInk / create_record

Method create_record

backend/services/history.py:94–154  ·  view source on GitHub ↗

创建新的历史记录 初始状态为 draft(草稿),表示大纲已创建但尚未开始生成图片。 Args: topic: 绘本主题/标题 outline: 大纲内容,包含 pages 数组等信息 task_id: 关联的生成任务 ID(可选) Returns: str: 新创建的记录 ID(UUID 格式) 状态流转: 新建 -> draft(草稿状态)

(
        self,
        topic: str,
        outline: Dict,
        task_id: Optional[str] = None
    )

Source from the content-addressed store, hash-verified

92 return os.path.join(self.history_dir, f"{record_id}.json")
93
94 def create_record(
95 self,
96 topic: str,
97 outline: Dict,
98 task_id: Optional[str] = None
99 ) -> str:
100 """
101 创建新的历史记录
102
103 初始状态为 draft(草稿),表示大纲已创建但尚未开始生成图片。
104
105 Args:
106 topic: 绘本主题/标题
107 outline: 大纲内容,包含 pages 数组等信息
108 task_id: 关联的生成任务 ID(可选)
109
110 Returns:
111 str: 新创建的记录 ID(UUID 格式)
112
113 状态流转:
114 新建 -> draft(草稿状态)
115 """
116 # 生成唯一记录 ID
117 record_id = str(uuid.uuid4())
118 now = datetime.now().isoformat()
119
120 # 创建完整的记录对象
121 record = {
122 "id": record_id,
123 "title": topic,
124 "created_at": now,
125 "updated_at": now,
126 "outline": outline, # 保存完整的大纲数据
127 "images": {
128 "task_id": task_id,
129 "generated": [] # 初始无生成图片
130 },
131 "status": RecordStatus.DRAFT, # 初始状态:草稿
132 "thumbnail": None # 初始无缩略图
133 }
134
135 # 保存完整记录到独立文件
136 record_path = self._get_record_path(record_id)
137 with open(record_path, "w", encoding="utf-8") as f:
138 json.dump(record, f, ensure_ascii=False, indent=2)
139
140 # 更新索引(用于快速列表查询)
141 index = self._load_index()
142 index["records"].insert(0, {
143 "id": record_id,
144 "title": topic,
145 "created_at": now,
146 "updated_at": now,
147 "status": RecordStatus.DRAFT, # 索引中也记录状态
148 "thumbnail": None,
149 "page_count": len(outline.get("pages", [])), # 预期页数
150 "task_id": task_id
151 })

Calls 4

_get_record_pathMethod · 0.95
_load_indexMethod · 0.95
_save_indexMethod · 0.95
getMethod · 0.80