From 9dd59ceb4e207113e7a846aec4c0ad3132929539 Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Wed, 13 May 2026 23:55:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20ruff=20=E9=A3=8E=E6=A0=BC?= =?UTF-8?q?=EF=BC=9A=E5=A4=9A=E8=A1=8C=E8=AF=AD=E5=8F=A5=E3=80=81bare=20ex?= =?UTF-8?q?cept=20=E2=86=92=20except=20Exception?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/monitor_routes.py | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/web/monitor_routes.py b/web/monitor_routes.py index ebad1460..c728f01d 100644 --- a/web/monitor_routes.py +++ b/web/monitor_routes.py @@ -32,37 +32,49 @@ _CITIES: List[Dict[str, Any]] = [ # ── helpers ── def _sf(v: Any) -> Optional[float]: - if v is None: return None - try: return round(float(v), 1) - except: return None + if v is None: + return None + try: + return round(float(v), 1) + except (ValueError, TypeError): + return None def _trend_info(icao: str) -> tuple: try: from src.utils.telegram_push import _check_rising_trend - if _check_rising_trend(icao): return ("↑", "rising") - except: pass + if _check_rising_trend(icao): + return ("↑", "rising") + except Exception: + pass try: from src.database.db_manager import DBManager obs = DBManager().get_airport_obs_recent(icao, minutes=60) temps = [r.get("temp_c") for r in obs if r.get("temp_c") is not None] - if len(temps) >= 4 and temps[-1] < temps[len(temps)//2]: + if len(temps) >= 4 and temps[-1] < temps[len(temps) // 2]: return ("↓", "falling") - except: pass + except Exception: + pass return ("→", "flat") def _obs_age(obs_time_str: Optional[str]) -> Optional[int]: - if not obs_time_str: return None + if not obs_time_str: + return None try: for fmt in ("%Y-%m-%dT%H:%M:%S", "%Y-%m-%dT%H:%M:%S.%f", "%Y-%m-%d %H:%M:%S"): try: - dt = datetime.strptime(str(obs_time_str)[:26], fmt).replace(tzinfo=timezone.utc) - return max(0, int((datetime.now(timezone.utc) - dt).total_seconds() // 60)) - except: continue + dt = datetime.strptime(str(obs_time_str)[:26], fmt) + dt = dt.replace(tzinfo=timezone.utc) + age = (datetime.now(timezone.utc) - dt).total_seconds() + return max(0, int(age // 60)) + except (ValueError, TypeError): + continue ts = float(obs_time_str) if ts > 1_000_000_000: dt = datetime.fromtimestamp(ts, tz=timezone.utc) - return max(0, int((datetime.now(timezone.utc) - dt).total_seconds() // 60)) - except: pass + age = (datetime.now(timezone.utc) - dt).total_seconds() + return max(0, int(age // 60)) + except (ValueError, TypeError, OSError): + pass return None def _build_cards() -> tuple: