Skip to main content

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

Project description

CS rankings - WIP

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.

Note that this is still a WORK IN PROGRESS.

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

Uploaded Source

Built Distribution

cs_rankings-0.1.1-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: cs_rankings-0.1.1.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for cs_rankings-0.1.1.tar.gz
Algorithm Hash digest
SHA256 9ae5f94434f999c215929174ed9af17ac5d40bb3df3c7be766a55c23d1a8e01b
MD5 63b4fe5d06de2226c8e97666778bbb50
BLAKE2b-256 047ce0fccb38e8381e23dc2b96ea21f4803893789ebaaf719a33ccc153496987

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cs_rankings-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for cs_rankings-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 026983f6f6dce2c065f47f5c2ee0c58e8aebbfd95f16e2e1e31dddb69559fc50
MD5 0573e71cc26435a347f3263aeb216a70
BLAKE2b-256 39993bb2499bc18358b5701f8b5ad16608a3d2eb5f07b867f8bb57ab9b09ec81

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