Skip to content

Commit

Permalink
Update scum.py
Browse files Browse the repository at this point in the history
  • Loading branch information
BattlefieldDuck committed Mar 13, 2024
1 parent 5e62b12 commit 13688f3
Showing 1 changed file with 17 additions and 23 deletions.
40 changes: 17 additions & 23 deletions discordgsm/protocols/scum.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import time
from typing import TYPE_CHECKING

import opengsq
import aiohttp

from opengsq.protocol_socket import Socket

from discordgsm.protocols.protocol import Protocol
Expand All @@ -10,40 +12,32 @@


class Scum(Protocol):
pre_query_required = True
name = "scum"
master_servers = None

async def pre_query(self):
master_servers = await opengsq.Scum.query_master_servers()
Scum.master_servers = {
f"{server.ip}:{server.port}": server for server in master_servers
}

async def query(self):
if Scum.master_servers is None:
await self.pre_query()

host, port = str(self.kv["host"]), int(str(self.kv["port"]))
ip = await Socket.gethostbyname(host)
host_address = f"{ip}:{port}"
url = f"https://master-server.opengsq.com/scum/search?host={ip}&port={port}"
start = time.time()

if host_address not in Scum.master_servers:
raise Exception("Server not found")
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
response.raise_for_status()
data: dict = await response.json()
ping = int((time.time() - start) * 1000)

server = Scum.master_servers[host_address]
result: GamedigResult = {
"name": server.name,
"name": data.get("name", ""),
"map": "",
"password": server.password,
"numplayers": server.num_players,
"password": data.get("password", False),
"numplayers": data.get("num_players", 0),
"numbots": 0,
"maxplayers": server.max_players,
"maxplayers": data.get("maxplayers", 0),
"players": None,
"bots": None,
"connect": f"{host}:{server.port - 2}",
"ping": 0,
"raw": server.__dict__,
"connect": f"{host}:{data.get("port", port) - 2}",
"ping": ping,
"raw": data,
}

return result

0 comments on commit 13688f3

Please sign in to comment.