fix(ui): sync_events 查询补 JOIN sync_videos 取 camera_name(修 1054 报错);feat(缩略图): Oracle 处理成功后抽首帧存 thumbs/{id}.jpg + /api/oracle/video/{id}/thumb 带 token 接口;fam-ui 视频会话显示缩略图(oracle_url+token);start_ui.sh 注入 .env
This commit is contained in:
@@ -25,6 +25,8 @@ from config_loader import load_config
|
||||
|
||||
_cfg = load_config()
|
||||
_core_url = _cfg.get('core_url', 'http://127.0.0.1:8000')
|
||||
_oracle_url = (_cfg.get('oracle_url') or '').rstrip('/')
|
||||
_oracle_token = _cfg.get('oracle_token') or ''
|
||||
_db_cfg = _cfg.get('database', {})
|
||||
|
||||
esc = _html.escape
|
||||
@@ -518,8 +520,18 @@ if page == "🕒 事件时间轴":
|
||||
f'<span class="bdg bdg-model">{esc(p)}</span>' for p in str(provider).split(','))
|
||||
|
||||
summary = vid.get('summary_json') or '暂无全局摘要'
|
||||
# 视频缩略图(Oracle 带 token 接口,无图时优雅降级)
|
||||
thumb_html = ''
|
||||
if _oracle_url:
|
||||
thumb_html = (
|
||||
f'<img src="{_oracle_url}/api/oracle/video/{vid["id"]}/thumb'
|
||||
f'?token={_oracle_token}" '
|
||||
f'style="width:100%;max-height:240px;object-fit:cover;'
|
||||
f'border-radius:10px;margin-bottom:10px;'
|
||||
f'onerror="this.style.display=\'none\'"/>')
|
||||
st.markdown(
|
||||
f'<div class="ev-head">'
|
||||
f'{thumb_html}'
|
||||
f'<div class="ev-title">'
|
||||
f'<span>{esc(vid.get("camera_name") or "未知摄像头")}</span>'
|
||||
f'<span class="bdg bdg-cam">会话 #{vid["id"]}</span>'
|
||||
@@ -534,8 +546,11 @@ if page == "🕒 事件时间轴":
|
||||
try:
|
||||
cursor = conn.cursor()
|
||||
cursor.execute(
|
||||
"""SELECT ts, description, person_list_json, is_attention_event, camera_name
|
||||
FROM sync_events WHERE video_id=%s ORDER BY ts ASC""",
|
||||
"""SELECT e.ts, e.description, e.person_list_json,
|
||||
e.is_attention_event, v.camera_name
|
||||
FROM sync_events e
|
||||
JOIN sync_videos v ON e.video_id = v.id
|
||||
WHERE e.video_id=%s ORDER BY e.ts ASC""",
|
||||
(selected_id,))
|
||||
events = cursor.fetchall()
|
||||
finally:
|
||||
|
||||
Reference in New Issue
Block a user