Async wrapper for the faceit API for csgo
Project description
Async faceit API
Async wrapper for the faceit API for csgo.
Error Handling
Note that the async api methods return an object of type FaceitApiError if the request was not successful. To distinguish between a successful response and an error, you can easily use the object as a boolean expression:
games = await api.games()
if games:
print('success')
else:
print('error')
Getting started
If you dont already have a loop in your programm you need to create one. Here is a basic example which will search players by the username and prints out a dict with the nicknames and player_ids:
import asyncio
from src.async_faceit_api import FaceitAPI
async def my_task():
api_key = "..."
api = FaceitAPI(api_key)
players = await api.search_players("username")
print({player.nickname: player.player_id for player in players.items})
if __name__ == "__main__":
loop = asyncio.new_event_loop()
loop.run_until_complete(my_task())
loop.close()
Its recomended to store the api_key somewhere safe (e.g .env file)! Here is another example on how you can implement the api:
class MyApi(FaceitAPI):
def __init__(self):
api_key = os.getenv('faceit_api_key')
super().__init__(api_key)
async def get_played_maps_parallel(self, player_id):
matches = await self.player_history(player_id, Game.CS_GO)
all_match_stats = await asyncio.gather(*[self.match_stats(match.match_id) for match in matches.items])
maps = {}
for match_stat in all_match_stats:
match_stat: MatchStats
map = match_stat.rounds[0].round_stats['Map']
if map in maps:
maps[map] += 1
else:
maps[map] = 1
return maps
async def my_task():
api = MyApi()
player_id = "..."
print(await api.get_played_maps_parallel(player_id))
if __name__ == "__main__":
loop = asyncio.new_event_loop()
loop.run_until_complete(my_task())
loop.close()
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file async_faceit_api-0.1.0.tar.gz.
File metadata
- Download URL: async_faceit_api-0.1.0.tar.gz
- Upload date:
- Size: 21.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7bfa986d8751e0584b4106a804ec816b8e37896f4646c873c2fec677cb5c1894
|
|
| MD5 |
e140e58e9c1ee25051296a4bdd816826
|
|
| BLAKE2b-256 |
52b8316893854ed804cf600140edb0cebb891a440ed47333afed1c3bb72414c3
|
File details
Details for the file async_faceit_api-0.1.0-py3-none-any.whl.
File metadata
- Download URL: async_faceit_api-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f0af2e5d0d611e8db873aa6a25fd0b0f644e650d1ad79e1f139a3e26feec5c0
|
|
| MD5 |
9f646ca092af1d6b964d31b4c6ac2d55
|
|
| BLAKE2b-256 |
5c871c4281208b6cbac03ff73585ed4b11eb452d5e938b3b288eef1e4ca411c1
|