|
import base64 |
|
import os |
|
import time |
|
from pathlib import Path |
|
from typing import Dict, Optional |
|
import requests |
|
import json |
|
import gradio as gr |
|
import uuid |
|
|
|
|
|
def encode_image(img_path): |
|
if not img_path: |
|
return None |
|
with open(img_path, "rb") as fin: |
|
image_data = base64.b64encode(fin.read()).decode("utf-8") |
|
return image_data |
|
|
|
|
|
def get_latest_files(directory: str, file_types: list = ['.webm', '.zip']) -> Dict[str, Optional[str]]: |
|
"""Get the latest recording and trace files""" |
|
latest_files: Dict[str, Optional[str]] = {ext: None for ext in file_types} |
|
|
|
if not os.path.exists(directory): |
|
os.makedirs(directory, exist_ok=True) |
|
return latest_files |
|
|
|
for file_type in file_types: |
|
try: |
|
matches = list(Path(directory).rglob(f"*{file_type}")) |
|
if matches: |
|
latest = max(matches, key=lambda p: p.stat().st_mtime) |
|
|
|
if time.time() - latest.stat().st_mtime > 1.0: |
|
latest_files[file_type] = str(latest) |
|
except Exception as e: |
|
print(f"Error getting latest {file_type} file: {e}") |
|
|
|
return latest_files |
|
|