From 51308e788ec76c15076892c54c68460859961dd8 Mon Sep 17 00:00:00 2001 From: aclist <92275929+aclist@users.noreply.github.com> Date: Fri, 8 Aug 2025 17:41:38 +0900 Subject: [PATCH] feat: parse server details --- helpers/servers.py | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/helpers/servers.py b/helpers/servers.py index dc0de57..5565b28 100644 --- a/helpers/servers.py +++ b/helpers/servers.py @@ -206,6 +206,19 @@ class Details: success: bool +def is_passworded(ip: str, qport: int) -> bool: + try: + info = a2s.info((ip, qport)) + except TimeoutError: + return False + + try: + password = info.password_protected + except AttributeError: + return False + return password + + def details(ip: str, qport: int) -> Details: default_str = "None provided" @@ -237,6 +250,29 @@ def details(ip: str, qport: int) -> Details: night_accel = float(keyword.lstrip("entm")) night_accel = f"{night_accel:g}" + try: + password = info.password_protected + if password is False: + password = "Disabled" + else: + password = "Enabled" + except AttributeError: + password = "-" + + try: + vac = info.vac_enabled + if vac is False: + vac = "Disabled" + else: + vac = "Enabled" + except AttributeError: + vac = "-" + + try: + version = info.version + except AttributeError: + version = "-" + try: dlc = rules.dlc_flags if dlc == 0: @@ -263,11 +299,14 @@ def details(ip: str, qport: int) -> Details: description = default_str rows = [ - ["DLC", dlc], ["Battleye", battleye], ["Daytime acceleration", f"{day_accel}x"], + ["DLC", dlc], ["Night-time acceleration", f"{night_accel}x"], + ["Password", password], ["Platform", platform], + ["Valve Anti-Cheat", vac], + ["Version", version], ] return Details(rows, description, True)