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
This commit is contained in:
48
scripts/backfill_frame_data.py
Normal file
48
scripts/backfill_frame_data.py
Normal file
@@ -0,0 +1,48 @@
|
||||
#!/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")
|
||||
Reference in New Issue
Block a user