Simple Python library for querying Quake 3 based principal servers and their game servers
Project description
pyq3serverlist
Simple Python 🐍 library for querying Quake 3 based principal servers and their game servers. Very much based on jacklul's PHP implementation.
Features
- retrieve a list of game servers from a Quake 3 principal ("master") server
- supports both UDP (default) and TCP for server list retrieval
- retrieve status details and current players from game servers
Installation
Simply install the package via pip.
$ pip install pyq3serverlist
Usage
The following example retrieves and prints a game server list for Call of Duty 4: Modern Warfare directly from Activision via UDP.
from pyq3serverlist import PrincipalServer
from pyq3serverlist.exceptions import PyQ3SLError, PyQ3SLTimeoutError
principal = PrincipalServer('cod4master.activision.com', 20810)
try:
servers = principal.get_servers(6)
print(servers)
except (PyQ3SLError, PyQ3SLTimeoutError) as e:
print(e)
You can also directly initialize a game server object for a known server and query its status.
from pyq3serverlist import Server
from pyq3serverlist.exceptions import PyQ3SLError, PyQ3SLTimeoutError
server = Server('198.144.177.2', 27963)
try:
info = server.get_status()
print(info)
except (PyQ3SLError, PyQ3SLTimeoutError) as e:
print(e)
Medal of Honor: Allied Assault, Medal of Honor: Allied Assault Spearhead, Medal of Honor: Allied Assault Breakthrough and Medal of Honor: Pacific Assault all use GameSpy for listing server and support the GameSpy1 query protocol. They do, however, also support a Quake3 protocol variant, which allows queries via the game port.
You can query any known game server for the mentioned Medal of Honor games using MedalOfHonorServer
instead of Server
.
from pyq3serverlist import MedalOfHonorServer
from pyq3serverlist.exceptions import PyQ3SLError, PyQ3SLTimeoutError
server = MedalOfHonorServer('217.247.241.12', 12203)
try:
info = server.get_status()
print(info)
except (PyQ3SLError, PyQ3SLTimeoutError) as e:
print(e)
You can find a few more examples in the examples
folder.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pyq3serverlist-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a15fb7318a0cc0d5144fb9e38521f6ad6540291a54aeda5ab4a5a83698ef0acf |
|
MD5 | 35123bc65ef5c52b44d5ee865d8a50f1 |
|
BLAKE2b-256 | 3dd5030b5bae9b2eb75219d610d9579bd2cab29b719256072f11c16b83951db5 |