Skip to main content

Pull competitive Counterstrike rankings from HLTV.org, ESL and Valve.

Project description

CS rankings

Pull competitive Counterstrike rankings from HLTV.org, ESL and Valve.

This is done using a Selenium-based webview for HLTV.org and ESL, and using a clone of the git repository for the Valve rankings. Valve rankings can also be pulled from HLTV, see below.

Usage

The public methods can be reached by importing from cs_rankings.

from cs_rankings import HLTVRankings, ESLRankings, ValveLiveRankings, ValveRankings, ValveInvitationRankings

client = ValveRankings()  # or one of the others
ranking = client.get_ranking()
client.close()

The variable ranking will be a list of dictionaries for each rank. The dictionaries contain key, value pairs for position, name, points and players.

You can easily convert them to, say, a pandas DataFrame using pd.DataFrame(ranking).

Details on the rankings

There are five Rankings classes available, three that are based on Selenium-based webviews and two based on the git approach. Note that for the git-based rankings you will need to have git installed beforehand.

Selenium-based:

  • HLTVRankings
  • ValveLiveRankings (the Valve rankings as live calculated by HLTV)
  • ESLRankings

Git-based:

  • ValveRankings (the official ones on the Valve own git)
  • ValveInvitationRankings (the official ones used for invitations)

Additional options

For the selenium-based rankings, the init call supports two extra arguments:

from cs_rankings import HLTVRankings

client = HLTVRankings(driver=None, in_container=False)

The driver input can be used to initialize your own selenium.webdriver.Chrome() driver (or in theory a non-Chrome driver, but that is not tested) with your own settings (such as specific selenium.webdriver.chrome.options.Options you might need). If not supplied, a default set of options will be supplied. If in_container is set to True, the default options are extended to make them work in Docker containers.

For the git-based rankings, the init call supports two extra arguments:

from cs_rankings import ValveRankings

client = ValveRankings(assume_git=True, keep_repository=True)

Both are False by default. If assume_git is set to True, there will be no check on whether Git is installed. If keep_repository is set to True, the Valve git repository will not be removed afterwards, which allows for quick reuse.

For all rankings (git-based or selenium-based), the get_ranking() method supports four extra arguments:

from cs_rankings import HLTVRankings

client = HLTVRankings()
ranking = client.get_ranking(region='asia', date='2024/september/2', min_points=10, max_rank=30)

By default, the most recent global ranking is pulled without filtering by points or maximum rank. Note that supported regions for the HLTV and Valve rankings are differently formatted.

Note: it is not possible to use the region or date inputs for the ESLRanking only. The ESLRanking does support the point or ranking based filter.

Inspiration & credits

This project is based on the hltv-data project by @dchoruzy. That project aims to pull rankings, matches and results from the HLTV website. This project is a fork and rework of hltv-data's main class.

Compared to hltv-data, this project is more narrow since it focuses on rankings only, but it is wider since it can pull more detailed rankings and from multiple sources.

Contributing

Contributions, issues and feature requests are welcome!

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

cs_rankings-0.2.2.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

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

cs_rankings-0.2.2-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file cs_rankings-0.2.2.tar.gz.

File metadata

  • Download URL: cs_rankings-0.2.2.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.7

File hashes

Hashes for cs_rankings-0.2.2.tar.gz
Algorithm Hash digest
SHA256 51a2856e80b408db1d6c37d069f327b47a0c982e14d809a069b49577922cb2cc
MD5 9ff6fa51eda380500071bc7861f544ea
BLAKE2b-256 732ba42777dd051381e00bff57b0b772f0ea4c25daa99921cd5cc7465b92bc30

See more details on using hashes here.

File details

Details for the file cs_rankings-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for cs_rankings-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ce667611b76e0a530e169a9ad684dcad8b5c1fa738e53dde63e72040a6219315
MD5 a4c4f92d14f3d0d4ff7cb9185148c13b
BLAKE2b-256 d7432f8a133017373a42f2f49424535dd0969a8bbfa004aa2e29ef7f3b15b682

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