Add get_vpn.py
This commit is contained in:
+59
@@ -0,0 +1,59 @@
|
|||||||
|
import json
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import urllib.parse
|
||||||
|
import requests
|
||||||
|
|
||||||
|
|
||||||
|
def get_vpn_servers():
|
||||||
|
# Забираем ссылку из переменных окружения (туда её подставит Gitea)
|
||||||
|
sub_url = os.getenv("VPN_SUB_URL")
|
||||||
|
|
||||||
|
if not sub_url:
|
||||||
|
print("Ошибка: Переменная окружения VPN_SUB_URL не задана!")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
parsed_url = urllib.parse.urlparse(sub_url)
|
||||||
|
base_url = f"{parsed_url.scheme}://{parsed_url.netloc}"
|
||||||
|
query_params = urllib.parse.parse_qs(parsed_url.query)
|
||||||
|
token = query_params.get("token", [""])
|
||||||
|
|
||||||
|
if not token or not token[0]:
|
||||||
|
print("Ошибка: В ссылке не найден token!")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
api_url = f"{base_url}/api/v1/client/appConfig?token={token[0]}"
|
||||||
|
|
||||||
|
headers = {
|
||||||
|
"User-Agent": "Happ/2.1.0 (iPhone; iOS 15.5; Scale/3.00)",
|
||||||
|
"Accept": "*/*",
|
||||||
|
"Accept-Language": "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7",
|
||||||
|
}
|
||||||
|
|
||||||
|
try:
|
||||||
|
response = requests.get(api_url, headers=headers, timeout=10)
|
||||||
|
|
||||||
|
if response.status_code != 200:
|
||||||
|
print(f"Ошибка сервера: Статус {response.status_code}")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
data = response.json()
|
||||||
|
servers = data.get("data", {}).get("server_user", [])
|
||||||
|
|
||||||
|
if not servers:
|
||||||
|
print("Серверы не найдены в ответе API. Сохраняем сырой ответ для отладки.")
|
||||||
|
servers = data
|
||||||
|
|
||||||
|
# Записываем результат в файл
|
||||||
|
with open("servers.json", "w", encoding="utf-8") as f:
|
||||||
|
json.dump(servers, f, indent=2, ensure_ascii=False)
|
||||||
|
|
||||||
|
print(f"Успешно обновлено! Найдено серверов: {len(servers)}")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Произошла ошибка: {e}")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
get_vpn_servers()
|
||||||
Reference in New Issue
Block a user