# ui/renderers.py from typing import Union from datetime import datetime from config import AGENTS_INFO import json def _format_location(loc_data) -> str: if isinstance(loc_data, dict): return f"{loc_data.get('lat', 0):.4f}, {loc_data.get('lng', 0):.4f}" if isinstance(loc_data, str) and "lat" in loc_data: try: # 嘗試把單引號換雙引號解析,解析失敗就回傳原字串 clean = loc_data.replace("'", '"') data = json.loads(clean) return f"{data.get('lat', 0):.2f}, {data.get('lng', 0):.2f}" except: pass return str(loc_data) def _format_iso_time(iso_str: str) -> str: if not iso_str or iso_str == "N/A": return "" try: dt = datetime.fromisoformat(iso_str) return dt.strftime("%H:%M") except Exception: if "T" in iso_str: return iso_str.split("T")[1][:5] return iso_str def create_agent_stream_output(text: str = None) -> str: return f'