From 1b2731ed12ca9a264d0df7fab5654413b4046ee5 Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Mon, 18 May 2026 16:22:16 +0800 Subject: [PATCH] fix: prefer dedicated telegram pricing group --- src/auth/telegram_group_pricing.py | 5 ++++- tests/test_telegram_group_pricing.py | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/auth/telegram_group_pricing.py b/src/auth/telegram_group_pricing.py index 16b12a8d..37c1cdfe 100644 --- a/src/auth/telegram_group_pricing.py +++ b/src/auth/telegram_group_pricing.py @@ -89,12 +89,15 @@ def verify_telegram_login_payload( class TelegramGroupPricing: def __init__(self) -> None: self.bot_token = str(os.getenv("TELEGRAM_BOT_TOKEN") or "").strip() - self.group_chat_ids = parse_telegram_chat_ids( + dedicated_group_chat_ids = parse_telegram_chat_ids( os.getenv("POLYWEATHER_TELEGRAM_GROUP_ID"), os.getenv("POLYWEATHER_TELEGRAM_GROUP_IDS"), + ) + fallback_group_chat_ids = parse_telegram_chat_ids( os.getenv("TELEGRAM_CHAT_IDS"), os.getenv("TELEGRAM_CHAT_ID"), ) + self.group_chat_ids = dedicated_group_chat_ids or fallback_group_chat_ids self.member_price = _decimal_env("POLYWEATHER_GROUP_MEMBER_PRICE_USDC", "5") self.public_price = _decimal_env("POLYWEATHER_PUBLIC_PRICE_USDC", "10") self.timeout_sec = max( diff --git a/tests/test_telegram_group_pricing.py b/tests/test_telegram_group_pricing.py index 31ebe046..7249c91f 100644 --- a/tests/test_telegram_group_pricing.py +++ b/tests/test_telegram_group_pricing.py @@ -104,6 +104,16 @@ def test_group_pricing_treats_left_status_as_public_price(monkeypatch): assert result["telegram_status"] == "left" +def test_dedicated_group_id_overrides_legacy_chat_ids(monkeypatch): + monkeypatch.setenv("TELEGRAM_BOT_TOKEN", "bot-token") + monkeypatch.setenv("POLYWEATHER_TELEGRAM_GROUP_ID", "-100internal") + monkeypatch.setenv("TELEGRAM_CHAT_IDS", "-100old") + + pricing = TelegramGroupPricing() + + assert pricing.group_chat_ids == ["-100internal"] + + def test_payment_plan_uses_linked_telegram_group_price(monkeypatch, tmp_path): monkeypatch.setenv("POLYWEATHER_PAYMENT_ENABLED", "true") monkeypatch.setenv("SUPABASE_URL", "https://example.supabase.co")