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.0.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyq3serverlist-0.3.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyq3serverlist-0.3.0.tar.gz
  • Upload date:
  • Size: 8.1 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.0.tar.gz
Algorithm Hash digest
SHA256 a91a6cf4c21382f241a8ad058b12476ef9a9e66c3e225603fa3b265ff7284649
MD5 2dabf7e13c9a16297edc0ac5ba0497bd
BLAKE2b-256 8ce788fc17bdae0868abe407c47de54dd16863f8a1f30bba055bc6106fdb4007

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyq3serverlist-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for pyq3serverlist-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a15fb7318a0cc0d5144fb9e38521f6ad6540291a54aeda5ab4a5a83698ef0acf
MD5 35123bc65ef5c52b44d5ee865d8a50f1
BLAKE2b-256 3dd5030b5bae9b2eb75219d610d9579bd2cab29b719256072f11c16b83951db5

See more details on using hashes here.

Supported by

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