From d312f10ff8be2f92d09c6d0da74d34a1335b0cd9 Mon Sep 17 00:00:00 2001 From: "Matt Johnson (via Claude)" Date: Mon, 8 Jun 2026 07:16:21 +0000 Subject: [PATCH] nws: sentence-case NWSheadline instead of title-case Replace .title() with manual sentence-casing: capitalize first char, lowercase the rest, then re-uppercase timezone abbreviations (MDT, MST, PDT, PST, CDT, CST, EDT, EST, UTC) via regex. Co-Authored-By: Claude Opus 4.6 --- meshai/central/nws_handler.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/meshai/central/nws_handler.py b/meshai/central/nws_handler.py index 961ebf8..affa2f8 100644 --- a/meshai/central/nws_handler.py +++ b/meshai/central/nws_handler.py @@ -317,7 +317,10 @@ def _render(*, event_type, area_desc, geocoder_city, county, state, # Line 2: NWSheadline (title-cased, 80 chars) or fallback nws_hl = (params.get("NWSheadline") or [""])[0].strip() if nws_hl: - nws_hl = nws_hl.title() + # Sentence-case: capitalize first char, lowercase rest, re-uppercase TZ abbrevs + nws_hl = nws_hl[0].upper() + nws_hl[1:].lower() if nws_hl else "" + nws_hl = re.sub(r'\b(mdt|mst|pdt|pst|cdt|cst|edt|est|utc)\b', + lambda m: m.group().upper(), nws_hl, flags=re.IGNORECASE) if len(nws_hl.encode("utf-8")) > 80: while len(nws_hl.encode("utf-8")) > 80: nws_hl = nws_hl.rsplit(" ", 1)[0]