Skip to main content

Simple Python library for querying Quake 3 based principal servers and their game servers

Project description

pyq3serverlist

ci License Package Last commit

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyq3serverlist-0.3.2.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

pyq3serverlist-0.3.2-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file pyq3serverlist-0.3.2.tar.gz.

File metadata

  • Download URL: pyq3serverlist-0.3.2.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for pyq3serverlist-0.3.2.tar.gz
Algorithm Hash digest
SHA256 e8bee64ac4c78d60ff8f394ee4e195d8ea6dded6b31a34bc527a5029799c48e3
MD5 0d99817b189305cef82bdcfa0df43db8
BLAKE2b-256 610a3c7992418dbc7ecc7052bc16993c163951dbfa89d9a5b4b854e5a0e49842

See more details on using hashes here.

File details

Details for the file pyq3serverlist-0.3.2-py3-none-any.whl.

File metadata

File hashes

Hashes for pyq3serverlist-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bbf1040f6d600fe7997d0d352805cfde84b732795d58b0b46de04a9a46bfb5a8
MD5 c9877cbb3e892776f07028d227ceed3f
BLAKE2b-256 f6766fbfacb939cec9a2f0103de24a8f4f048597b35fd3b349be573941d98775

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page