feat(briefing): hard-cut tear-down
Backend: - Delete briefing services (pipeline, scheduler, conversations, profile, tools) - Delete routes/briefing.py + remove blueprint registration - Move _get_temp_unit into services/weather.get_temp_unit (reads top-level temp_unit setting) - Rename briefing_preferences.py → rss_filtering.py (functions are RSS-specific) - Strip briefing scheduler hooks from app.py - Strip briefing scheduler call from routes/settings.py - Update test imports (test_rss_service, test_tz_helpers) Frontend: - Delete BriefingView, BriefingSetupWizard, BriefingToolStatusRow - Strip /briefing route + nav links (AppHeader, KnowledgeView) - Strip Settings → Briefing tab + state + functions + imports - Strip briefing-intermediate handling from ChatMessage - Hide /news route + nav links (NewsView depended on briefing endpoints; orphaned in tree) - Drop unused useSettingsStore from AppHeader The Android BriefingScreen lives in a separate repo and is not touched here. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -39,6 +39,13 @@ def describe_weathercode(code: int) -> str:
|
||||
return _WMO_CODES.get(code, f"Unknown (code {code})")
|
||||
|
||||
|
||||
async def get_temp_unit(user_id: int) -> str:
|
||||
"""Read the user's preferred temperature unit ('C' or 'F'), default 'C'."""
|
||||
from fabledassistant.services.settings import get_setting
|
||||
raw = await get_setting(user_id, "temp_unit", "C")
|
||||
return raw if raw in ("C", "F") else "C"
|
||||
|
||||
|
||||
def parse_forecast(raw: dict) -> list[dict]:
|
||||
"""Convert Open-Meteo daily response into a clean list of day dicts."""
|
||||
daily = raw.get("daily", {})
|
||||
|
||||
Reference in New Issue
Block a user