diff --git a/bsp_monitor/engine.py b/bsp_monitor/engine.py
index f3ed73d..e9983dd 100644
--- a/bsp_monitor/engine.py
+++ b/bsp_monitor/engine.py
@@ -127,7 +127,7 @@ class ChanEngine:
cst = dt.astimezone(timezone(timedelta(hours=8)))
return cst.strftime("%Y-%m-%d %H:%M:%S CST")
- def format_bsp_detail(self, bsp: ChanBSP, symbol: str = "BTC/USDT:USDT") -> str:
+ def format_bsp_detail(self, bsp: ChanBSP, symbol: str = "BTC/USDT:USDT", tf: str = "1m") -> str:
bi = bsp.bi
klc = bsp.klc
bsp_type = bsp.type
@@ -138,7 +138,7 @@ class ChanEngine:
symbol_short = symbol.split(":")[0].replace("/", "")
lines = [
- f"{emoji} [{dir_label}] {self._bsp_type_name(bsp_type)} — {symbol_short} 1m",
+ f"{emoji} [{dir_label}] {self._bsp_type_name(bsp_type)} — {symbol_short} {tf}",
"",
f"⏰ 确认: {self._utc_to_cst(klc.end_time)}",
f"💰 价格: {klc.close:.2f}",
diff --git a/bsp_monitor/fetcher.py b/bsp_monitor/fetcher.py
index eca7922..ac4dc90 100644
--- a/bsp_monitor/fetcher.py
+++ b/bsp_monitor/fetcher.py
@@ -17,16 +17,21 @@ FETCH_LIMIT = 1000
_symbols_cache: Optional[List[str]] = None
+# 只推送 BTC,其他币对暂不监控
+_SYMBOL_WHITELIST = {"BTC/USDT:USDT", "ETH/USDT:USDT", "SOL/USDT:USDT"}
+
+
def get_symbols() -> list[str]:
- """从 data_provider /health 获取所有可用币对(缓存)。"""
+ """获取要监控的币对列表(目前只监控 BTC)。"""
global _symbols_cache
if _symbols_cache is not None:
return _symbols_cache
try:
resp = requests.get(f"{PROVIDER_URL}/health", timeout=10)
resp.raise_for_status()
- _symbols_cache = resp.json().get("symbols", [])
- logger.info(f"获取到 {len(_symbols_cache)} 个币对")
+ all_symbols = resp.json().get("symbols", [])
+ _symbols_cache = [s for s in all_symbols if s in _SYMBOL_WHITELIST]
+ logger.info(f"获取到 {len(all_symbols)} 个币对,过滤后监控 {len(_symbols_cache)} 个: {_symbols_cache}")
except Exception as e:
logger.error(f"获取币对列表失败: {e}")
_symbols_cache = ["BTC/USDT:USDT"]
diff --git a/bsp_monitor/main.py b/bsp_monitor/main.py
index 6857b30..aa3a304 100644
--- a/bsp_monitor/main.py
+++ b/bsp_monitor/main.py
@@ -54,7 +54,7 @@ def _push_bsp(engine: ChanEngine, bsp, symbol: str, tf: str) -> bool:
if bsp.klc is None:
return False
key = f"{symbol}_{bsp.type}_{bsp.klc.end_time}_{tf}"
- msg = engine.format_bsp_detail(bsp, symbol)
+ msg = engine.format_bsp_detail(bsp, symbol, tf)
msg = _escape_html(msg)
if send_bsp_alert(msg, bsp_key=key):
logger.info(f"[{_short(symbol)} {tf}] ✅ BSP: {key}")