feat: complete T-534 generated reset enhancements
This commit is contained in:
@@ -743,32 +743,45 @@ def set_applied(task_id, committed, error=None, path=None, conn=None) -> None:
|
||||
)
|
||||
|
||||
|
||||
def reset_generated(task_id, delete_file=False, path=None, conn=None) -> dict:
|
||||
"""Clear local AI result and move the task back to collected state."""
|
||||
def reset_generated(
|
||||
task_id,
|
||||
reset_title=True,
|
||||
reset_cover=True,
|
||||
delete_file=False,
|
||||
path=None,
|
||||
conn=None,
|
||||
) -> dict:
|
||||
"""Clear selected local AI result components and keep the task generatable."""
|
||||
|
||||
if not reset_title and not reset_cover:
|
||||
raise DbError("至少需要选择重置标题或重置封面")
|
||||
if delete_file and not reset_cover:
|
||||
raise DbError("只有重置封面时才允许删除本地新封面文件")
|
||||
with _connection(conn, path) as database:
|
||||
before = get_task(task_id, conn=database)
|
||||
if before is None:
|
||||
raise DbError(f"任务不存在: {task_id}")
|
||||
new_cover_path = before.new_cover_path
|
||||
deleted_file = None
|
||||
if delete_file:
|
||||
raise DbError("重置生成结果默认不删除本地新封面文件,请手动确认后清理")
|
||||
if delete_file and reset_cover and new_cover_path and os.path.isfile(str(new_cover_path)):
|
||||
os.remove(str(new_cover_path))
|
||||
deleted_file = new_cover_path
|
||||
now = _now()
|
||||
new_title = None if reset_title else before.new_title
|
||||
new_cover = None if reset_cover else before.new_cover_path
|
||||
with database:
|
||||
database.execute(
|
||||
"""
|
||||
UPDATE tasks
|
||||
SET new_title = NULL,
|
||||
new_cover_path = NULL,
|
||||
stage = 'collected',
|
||||
SET new_title = ?,
|
||||
new_cover_path = ?,
|
||||
stage = 'generated',
|
||||
status = 'success',
|
||||
last_error = NULL,
|
||||
generated_at = NULL,
|
||||
updated_at = ?
|
||||
WHERE id = ?
|
||||
""",
|
||||
(now, int(task_id)),
|
||||
(new_title, new_cover, now, int(task_id)),
|
||||
)
|
||||
after = get_task(task_id, conn=database)
|
||||
return {
|
||||
@@ -777,6 +790,8 @@ def reset_generated(task_id, delete_file=False, path=None, conn=None) -> dict:
|
||||
"after": after,
|
||||
"new_cover_path": new_cover_path,
|
||||
"deleted_file": deleted_file,
|
||||
"reset_title": bool(reset_title),
|
||||
"reset_cover": bool(reset_cover),
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user