From 12c2b39b160b40564fe248238cb85ada759ac8d2 Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Tue, 12 May 2026 20:48:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=85=A5=E4=BC=8A=E6=96=AF=E5=9D=A6?= =?UTF-8?q?=E5=B8=83=E5=B0=94=E6=9C=BA=E5=9C=BA=20MGM=2017058=20=E9=AB=98?= =?UTF-8?q?=E9=A2=91=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 伊斯坦布尔新机场 (LTFM, MGM 17058) 加入 10 分钟级推送队列, obs_log 已有 MGM 数据覆盖,只需加入高频城市列表。 马德里 AEMET 注册地址:https://opendata.aemet.es/centrodedescargas/registro Tested: pytest 176 passed, ruff check 通过 --- src/analysis/market_alert_engine.py | 2 +- src/bot/runtime_coordinator.py | 2 +- src/utils/telegram_push.py | 7 ++++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/analysis/market_alert_engine.py b/src/analysis/market_alert_engine.py index 70d02cc7..1a15e250 100644 --- a/src/analysis/market_alert_engine.py +++ b/src/analysis/market_alert_engine.py @@ -813,7 +813,7 @@ def _build_advice_cn( return ",".join(parts) + "。" -_AIRPORT_ICAO_MAP = {"seoul": "RKSI", "busan": "RKPK", "tokyo": "RJTT", "ankara": "17128", "helsinki": "EFHK", "amsterdam": "EHAM"} +_AIRPORT_ICAO_MAP = {"seoul": "RKSI", "busan": "RKPK", "tokyo": "RJTT", "ankara": "17128", "helsinki": "EFHK", "amsterdam": "EHAM", "istanbul": "17058"} def _calc_airport_rapid_temp_change( diff --git a/src/bot/runtime_coordinator.py b/src/bot/runtime_coordinator.py index 1cea6ad4..f7a7a8d2 100644 --- a/src/bot/runtime_coordinator.py +++ b/src/bot/runtime_coordinator.py @@ -190,7 +190,7 @@ class StartupCoordinator: details = { "mode": "airport-periodic", "interval_sec": interval, - "cities": ["seoul", "busan", "tokyo", "ankara", "helsinki", "amsterdam"], + "cities": ["seoul", "busan", "tokyo", "ankara", "helsinki", "amsterdam", "istanbul"], "chat_targets": len(chat_ids), "window": "DEB proximity ≤3°C", } diff --git a/src/utils/telegram_push.py b/src/utils/telegram_push.py index f979d4cb..f7fbcf39 100644 --- a/src/utils/telegram_push.py +++ b/src/utils/telegram_push.py @@ -690,8 +690,8 @@ def start_trade_alert_push_loop(bot: Any, config: Dict[str, Any]) -> Optional[th # ── high-freq airport push loop ── -HIGH_FREQ_AIRPORT_CITIES = {"seoul", "busan", "tokyo", "ankara", "helsinki", "amsterdam"} -HIGH_FREQ_AIRPORT_ICAO = {"seoul": "RKSI", "busan": "RKPK", "tokyo": "RJTT", "ankara": "17128", "helsinki": "EFHK", "amsterdam": "EHAM"} +HIGH_FREQ_AIRPORT_CITIES = {"seoul", "busan", "tokyo", "ankara", "helsinki", "amsterdam", "istanbul"} +HIGH_FREQ_AIRPORT_ICAO = {"seoul": "RKSI", "busan": "RKPK", "tokyo": "RJTT", "ankara": "17128", "helsinki": "EFHK", "amsterdam": "EHAM", "istanbul": "17058"} _AIRPORT_PUSH_STATE_PATH = os.path.join( os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), @@ -723,7 +723,7 @@ def _save_airport_state(state: Dict[str, Any]) -> None: os.replace(tmp, path) -_AIRPORT_CITY_LABEL = {"seoul": "首尔/仁川", "busan": "釜山/金海", "tokyo": "东京/羽田", "ankara": "安卡拉/Esenboğa", "helsinki": "赫尔辛基/Vantaa", "amsterdam": "阿姆斯特丹/Schiphol"} +_AIRPORT_CITY_LABEL = {"seoul": "首尔/仁川", "busan": "釜山/金海", "tokyo": "东京/羽田", "ankara": "安卡拉/Esenboğa", "helsinki": "赫尔辛基/Vantaa", "amsterdam": "阿姆斯特丹/Schiphol", "istanbul": "伊斯坦布尔/机场"} def _build_airport_status_message( @@ -772,6 +772,7 @@ _AIRPORT_PUSH_INTERVAL = { "ankara": 600, # MGM ~10-min "helsinki": 600, # FMI 10-min "amsterdam": 600, # KNMI 10-min + "istanbul": 600, # MGM ~10-min } _DEB_PROXIMITY_THRESHOLD_C = 3.0