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.
Metadata
Release files for pyq3serverlist 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pyq3serverlist-0.2.0.tar.gz | 6.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyq3serverlist-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.4 kB
Release files / pyq3serverlist-0.2.0.tar.gz
| Download URL | pyq3serverlist-0.2.0.tar.gz |
|---|---|
| Size | 6.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6344aabb5dc3b93486ad343268657b55ef1999b3586776e7dc02f690f5038cc0
|
|
BLAKE2b-256 checksum How to use checksums |
b8ab54d5578090df1786d486047bf553a144b4fd200c1ae1ffc4c47beb23216b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
|
Release files / pyq3serverlist-0.2.0-py3-none-any.whl
| Download URL | pyq3serverlist-0.2.0-py3-none-any.whl |
|---|---|
| Size | 7.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6f751b57c251cdb4f5a61d569d20576336eebeef92973baf30961b7e12aef8e5
|
|
BLAKE2b-256 checksum How to use checksums |
af6744cb0e93b8adfe6617950cab0de779bb26a4a1291d877f0982e602a7a6a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
|
Security for pyq3serverlist 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.