57 lines
1.7 KiB
Python
57 lines
1.7 KiB
Python
#!/usr/bin/env python3
|
|
import json
|
|
import subprocess
|
|
import os
|
|
|
|
|
|
def main():
|
|
# Find latest ASR file for job 10
|
|
output_dir = "/Users/accusys/momentry/output"
|
|
files = [f for f in os.listdir(output_dir) if f.startswith("job_10_asr_")]
|
|
if not files:
|
|
print("No ASR files found")
|
|
return
|
|
|
|
# Sort by timestamp (numeric suffix)
|
|
def extract_timestamp(fname):
|
|
# job_10_asr_1774505428450.json
|
|
parts = fname.split("_")
|
|
timestamp = parts[3].split(".")[0]
|
|
return int(timestamp)
|
|
|
|
files.sort(key=extract_timestamp, reverse=True)
|
|
latest_file = os.path.join(output_dir, files[0])
|
|
print(f"Using ASR file: {latest_file}")
|
|
|
|
with open(latest_file, "r") as f:
|
|
data = json.load(f)
|
|
|
|
# Convert to JSON string, escape single quotes for SQL
|
|
json_str = json.dumps(data).replace("'", "''")
|
|
|
|
# Update processor_results
|
|
sql = f"""
|
|
UPDATE processor_results
|
|
SET status = 'completed',
|
|
output_data = '{json_str}'::jsonb,
|
|
completed_at = NOW()
|
|
WHERE job_id = 10 AND processor = 'asr';
|
|
"""
|
|
|
|
# Execute with psql
|
|
db_url = "postgres://accusys@localhost:5432/momentry"
|
|
cmd = ["psql", db_url, "-c", sql]
|
|
result = subprocess.run(cmd, capture_output=True, text=True)
|
|
if result.returncode != 0:
|
|
print(f"Error updating database: {result.stderr}")
|
|
else:
|
|
print("Successfully updated ASR processor result to completed")
|
|
|
|
# Also need to store ASR chunks in database via Rust logic
|
|
# For now, we'll trust that the worker will do it when restarted
|
|
# (the store_asr_chunks method will be called on completion)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|