feat(ai): mark cover reset history in generate table
This commit is contained in:
@@ -141,6 +141,8 @@ class Task:
|
||||
new_cover_path: Optional[str]
|
||||
image_task_id: Optional[str]
|
||||
image_task_key: Optional[str]
|
||||
cover_reset_count: int
|
||||
cover_reset_at: Optional[str]
|
||||
committed: int
|
||||
stage: str
|
||||
status: str
|
||||
@@ -236,6 +238,8 @@ CREATE TABLE IF NOT EXISTS tasks (
|
||||
new_cover_path TEXT,
|
||||
image_task_id TEXT,
|
||||
image_task_key TEXT,
|
||||
cover_reset_count INTEGER NOT NULL DEFAULT 0,
|
||||
cover_reset_at TEXT,
|
||||
committed INTEGER NOT NULL DEFAULT 0,
|
||||
stage TEXT NOT NULL DEFAULT 'imported',
|
||||
status TEXT NOT NULL DEFAULT 'pending',
|
||||
@@ -389,6 +393,7 @@ def init_db(path=None, conn=None) -> None:
|
||||
database.executescript(SCHEMA_SQL)
|
||||
_ensure_batch_delete_columns(database)
|
||||
_ensure_task_image_task_columns(database)
|
||||
_ensure_task_cover_reset_columns(database)
|
||||
|
||||
|
||||
def _ensure_batch_delete_columns(database):
|
||||
@@ -406,6 +411,14 @@ def _ensure_task_image_task_columns(database):
|
||||
if "image_task_key" not in columns:
|
||||
database.execute("ALTER TABLE tasks ADD COLUMN image_task_key TEXT")
|
||||
|
||||
|
||||
def _ensure_task_cover_reset_columns(database):
|
||||
columns = {row["name"] for row in database.execute("PRAGMA table_info(tasks)").fetchall()}
|
||||
if "cover_reset_count" not in columns:
|
||||
database.execute("ALTER TABLE tasks ADD COLUMN cover_reset_count INTEGER NOT NULL DEFAULT 0")
|
||||
if "cover_reset_at" not in columns:
|
||||
database.execute("ALTER TABLE tasks ADD COLUMN cover_reset_at TEXT")
|
||||
|
||||
def create_batch(file_paths: Iterable[str], note=None, path=None, conn=None) -> str:
|
||||
batch_id = datetime.now().strftime("%Y%m%d_%H%M%S_") + uuid.uuid4().hex[:8]
|
||||
files = [os.path.abspath(file_path) for file_path in file_paths]
|
||||
@@ -969,6 +982,12 @@ def reset_generated(
|
||||
new_cover = None if reset_cover else before.new_cover_path
|
||||
image_task_id = None if reset_cover else before.image_task_id
|
||||
image_task_key = None if reset_cover else before.image_task_key
|
||||
should_record_cover_reset = bool(reset_cover and str(before.new_cover_path or "").strip())
|
||||
cover_reset_count = int(before.cover_reset_count or 0)
|
||||
cover_reset_at = before.cover_reset_at
|
||||
if should_record_cover_reset:
|
||||
cover_reset_count += 1
|
||||
cover_reset_at = now
|
||||
with database:
|
||||
database.execute(
|
||||
"""
|
||||
@@ -977,13 +996,24 @@ def reset_generated(
|
||||
new_cover_path = ?,
|
||||
image_task_id = ?,
|
||||
image_task_key = ?,
|
||||
cover_reset_count = ?,
|
||||
cover_reset_at = ?,
|
||||
stage = 'generated',
|
||||
status = 'success',
|
||||
last_error = NULL,
|
||||
updated_at = ?
|
||||
WHERE id = ?
|
||||
""",
|
||||
(new_title, new_cover, image_task_id, image_task_key, now, int(task_id)),
|
||||
(
|
||||
new_title,
|
||||
new_cover,
|
||||
image_task_id,
|
||||
image_task_key,
|
||||
cover_reset_count,
|
||||
cover_reset_at,
|
||||
now,
|
||||
int(task_id),
|
||||
),
|
||||
)
|
||||
after = get_task(task_id, conn=database)
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user