Files
momentry_core/scripts/backfill_frame_data.py
Warren 8f05a7c188 feat: update Python processors and add utility scripts
- Update ASR, face, OCR, pose processors
- Add release pre-flight check script
- Add synonym generation, chunk processing scripts
- Add face recognition, stamp search utilities
2026-04-30 15:07:49 +08:00

49 lines
1.2 KiB
Python

#!/opt/homebrew/bin/python3.11
"""
Backfill Frame Data
Calculates start_frame and end_frame based on time and FPS.
"""
import psycopg2
DB_URL = "postgresql://accusys@localhost:5432/momentry"
FPS = 24.0
def backfill(table, time_col_start, time_col_end):
print(f"🔄 Backfilling {table}...")
conn = psycopg2.connect(DB_URL)
cur = conn.cursor()
# Get all rows
cur.execute(f"SELECT id, {time_col_start}, {time_col_end} FROM {table}")
rows = cur.fetchall()
updates = []
for id, start, end in rows:
if start is not None:
s_frame = int(round(start * FPS))
e_frame = int(round(end * FPS)) if end is not None else s_frame
updates.append((s_frame, e_frame, id))
# Batch update
for s_frame, e_frame, id in updates:
cur.execute(
f"""
UPDATE {table}
SET start_frame = %s, end_frame = %s, fps = %s
WHERE id = %s
""",
(s_frame, e_frame, FPS, id),
)
conn.commit()
print(f"✅ Updated {len(updates)} rows in {table}.")
cur.close()
conn.close()
if __name__ == "__main__":
backfill("parent_chunks", "start_time", "end_time")
backfill("child_chunks", "start_time", "end_time")