From 96d738aa9aa0dcd2829ce0a77a3ffec7bc039735 Mon Sep 17 00:00:00 2001 From: Capybara-z Date: Tue, 18 Feb 2025 23:57:38 +0300 Subject: [PATCH] =?UTF-8?q?=D1=87=D0=B8=D1=81=D1=82=D0=BA=D0=B0=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Почитсил коментарии. --- handlers/keys/subscriptions.py | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/handlers/keys/subscriptions.py b/handlers/keys/subscriptions.py index 6d640a17..eb1ef33a 100644 --- a/handlers/keys/subscriptions.py +++ b/handlers/keys/subscriptions.py @@ -148,7 +148,6 @@ async def handle_subscription(request, old_subscription=False): combined_subscriptions = await combine_unique_lines(urls, tg_id or email, query_string) random.shuffle(combined_subscriptions) - # Извлечение времени (time_left) из метаданных подписки. time_left = None for line in combined_subscriptions: if "#" in line: @@ -169,7 +168,6 @@ async def handle_subscription(request, old_subscription=False): if not time_left: time_left = "N/A" - # Логика зависит от значения SUPERNODE. cleaned_subscriptions = [] for line in combined_subscriptions: if "#" in line: @@ -179,17 +177,13 @@ async def handle_subscription(request, old_subscription=False): continue parts = meta.split("-") if SUPERNODE: - # Если SUPERNODE=True: - # Если трафик включен (4 поля или 3 поля): берем страну и трафик (если 4 поля – берем третью, если 3 – оставляем только страну) if parts: country = parts[0] - # Убираем префикс до символа "_" if "_" in country: country = country.split("_", 1)[1] if len(parts) == 4: meta_clean = country + "-" + parts[2] elif len(parts) == 3: - # Если трафик отключен, оставляем только страну meta_clean = country else: meta_clean = country @@ -217,18 +211,14 @@ async def handle_subscription(request, old_subscription=False): final_subscriptions = cleaned_subscriptions base64_encoded = base64.b64encode("\n".join(final_subscriptions).encode("utf-8")).decode("utf-8") - - # Информации о подписке, которая используется в заголовке вместе с PROJECT_NAME subscription_info = f"📄 Подписка: {email} - {time_left}" user_agent = request.headers.get("User-Agent", "") if "Happ" in user_agent: - # Для Happ передаётся только PROJECT_NAME encoded_project_name = f"{PROJECT_NAME}" support_username = SUPPORT_CHAT_URL.split("https://t.me/")[-1] announce_str = f"↖️Бот | {subscription_info} | Поддержка↗️" - # Вычисляем expire таймштамп + текущее время expire_timestamp = 0 m_expire = re.search(r'(?:(\d+)D,)?(\d+)H', time_left) if m_expire: @@ -236,9 +226,7 @@ async def handle_subscription(request, old_subscription=False): h = int(m_expire.group(2)) expire_timestamp = int(time.time() + d * 86400 + h * 3600) - # Извлекаем общий трафик (total) if TOTAL_GB != 0: - # Извлекаем остаток трафика с каждой страны + расчет общего трафика. country_remaining = {} for line in combined_subscriptions: if "#" not in line: @@ -281,8 +269,7 @@ async def handle_subscription(request, old_subscription=False): else: consumed_traffic_bytes = 0 total_traffic_bytes = 0 - - # Заголовок subscription-userinfo для Happ + subscription_userinfo = f"upload=0; download={consumed_traffic_bytes}; total={total_traffic_bytes}; expire={expire_timestamp}" headers = {