From 9c3a46aaeea2541865aa850e3be40c8aa018b31b Mon Sep 17 00:00:00 2001 From: vladimir Date: Fri, 31 Jul 2026 04:47:11 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=BD=D0=B0=D1=87=D0=B0=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D1=8B=D0=B9=20=D0=BA=D0=BE=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/traffic_checker.py | 51 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/traffic_checker.py diff --git a/src/traffic_checker.py b/src/traffic_checker.py new file mode 100644 index 0000000..d33275e --- /dev/null +++ b/src/traffic_checker.py @@ -0,0 +1,51 @@ +import json +import os +from pathlib import Path + +import requests + + +def load_config() -> dict: + dev_config = Path(__file__).parent.parent / "config.json" + sys_config = Path("/etc/traffic-checker/config.json") + + if dev_config.exists(): + config_path = dev_config + elif sys_config.exists(): + config_path = sys_config + else: + raise FileNotFoundError( + "Configuration file config.json not found in dev path or /etc/traffic-checker/" + ) + + with open(config_path, "r", encoding="utf-8") as f: + return json.load(f) + + +def fetch_server_data(server_uuid: str) -> dict: + token = os.getenv("VIRTFUSION_TOKEN") + + if not token: + raise RuntimeError("VIRTFUSION_TOKEN environment variable is not set.") + + url = f"https://virtfusion-nat.gullo.me/api/server/{server_uuid}" + + headers = { + "Accept": "application/json", + "Authorization": f"Bearer {token}", + } + + params = {"state": "true"} + + response = requests.get(url, headers=headers, params=params, timeout=10) + response.raise_for_status() + + return response.json() + + +if __name__ == "__main__": + config = load_config() + + for server in config["servers"]: + data = fetch_server_data(server["uuid"]) + print(data)