From 3bea7abaeac9c9625e870e8c83aa89da744df852 Mon Sep 17 00:00:00 2001 From: deadzilla Date: Tue, 14 Jul 2026 22:03:18 +0500 Subject: [PATCH] =?UTF-8?q?fix:=20translate=5Fweather()=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B5=D1=80=D1=8F=D0=B5=D1=82=20=D1=82=D0=BE=D1=87?= =?UTF-8?q?=D0=BD=D0=BE=D0=B5=20=D1=81=D0=BE=D0=B2=D0=BF=D0=B0=D0=B4=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=20substring?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Точное совпадение (case-insensitive) теперь имеет приоритет над substring-matching, что исключает ложные совпадения вида 'Heavy rain' внутри 'Heavy rain shower'. --- utils/pogoda.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/utils/pogoda.py b/utils/pogoda.py index 41efae7..8439db9 100644 --- a/utils/pogoda.py +++ b/utils/pogoda.py @@ -174,10 +174,19 @@ _WEATHER_MAPPING = [ def translate_weather(en: Optional[str]) -> str: if not en or not en.strip(): return "—" - en_lower = en.strip().lower() + en_stripped = en.strip() + en_lower = en_stripped.lower() + + # Сначала проверяем точное совпадение (приоритет над substring) + for key, value in _WEATHER_MAPPING: + if key.lower() == en_lower: + return value + + # Fallback: substring-matching (отсортировано по убыванию длины ключа) for key, value in _WEATHER_MAPPING: if key.lower() in en_lower: return value + return en