From 86a2927529eb3f75bbde6b31a7a6e985bee98881 Mon Sep 17 00:00:00 2001 From: swanie98635 Date: Thu, 29 Jan 2026 10:36:34 -0800 Subject: [PATCH] Fix: Added region name normalization to support full Province/State names in portable callsign lookup --- asl3_wx_announce/narrator.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/asl3_wx_announce/narrator.py b/asl3_wx_announce/narrator.py index 164e0e9..7e915f6 100644 --- a/asl3_wx_announce/narrator.py +++ b/asl3_wx_announce/narrator.py @@ -159,6 +159,32 @@ class Narrator: country = loc.country_code.upper() region = loc.region.upper() if loc.region else "" + # Region Normalization Map (Full Name -> Abbrev) + # Providers (like reverse_geocoder) may return full names + region_map = { + # Canada + "BRITISH COLUMBIA": "BC", "ALBERTA": "AB", "SASKATCHEWAN": "SK", "MANITOBA": "MB", + "ONTARIO": "ON", "QUEBEC": "QC", "NEW BRUNSWICK": "NB", "NOVA SCOTIA": "NS", + "PRINCE EDWARD ISLAND": "PE", "NEWFOUNDLAND AND LABRADOR": "NL", "NEWFOUNDLAND": "NL", + "YUKON": "YT", "NORTHWEST TERRITORIES": "NT", "NUNAVUT": "NU", + # US (Common ones, extend as needed) + "ALABAMA": "AL", "ALASKA": "AK", "ARIZONA": "AZ", "ARKANSAS": "AR", "CALIFORNIA": "CA", + "COLORADO": "CO", "CONNECTICUT": "CT", "DELAWARE": "DE", "FLORIDA": "FL", "GEORGIA": "GA", + "HAWAII": "HI", "IDAHO": "ID", "ILLINOIS": "IL", "INDIANA": "IN", "IOWA": "IA", + "KANSAS": "KS", "KENTUCKY": "KY", "LOUISIANA": "LA", "MAINE": "ME", "MARYLAND": "MD", + "MASSACHUSETTS": "MA", "MICHIGAN": "MI", "MINNESOTA": "MN", "MISSISSIPPI": "MS", "MISSOURI": "MO", + "MONTANA": "MT", "NEBRASKA": "NE", "NEVADA": "NV", "NEW HAMPSHIRE": "NH", "NEW JERSEY": "NJ", + "NEW MEXICO": "NM", "NEW YORK": "NY", "NORTH CAROLINA": "NC", "NORTH DAKOTA": "ND", "OHIO": "OH", + "OKLAHOMA": "OK", "OREGON": "OR", "PENNSYLVANIA": "PA", "RHODE ISLAND": "RI", "SOUTH CAROLINA": "SC", + "SOUTH DAKOTA": "SD", "TENNESSEE": "TN", "TEXAS": "TX", "UTAH": "UT", "VERMONT": "VT", + "VIRGINIA": "VA", "WASHINGTON": "WA", "WEST VIRGINIA": "WV", "WISCONSIN": "WI", "WYOMING": "WY", + "DISTRICT OF COLUMBIA": "DC" + } + + # Normalize Region + if region in region_map: + region = region_map[region] + # Determine Origin (Simple heuristic: K,N,W,A=US; V,C=CA) origin_country = "US" # Callsigns starting with V, C, CY, VO, VY are Canadian