1
0
Fork 0
mirror of https://github.com/SocksPls/hltv-api synced 2025-04-30 15:43:07 +00:00

Reformat get_player_info func: statistics write same way as get_team_info func. README update

This commit is contained in:
Alexandr Zagorskiy 2020-09-04 21:36:03 +03:00
parent 072a347abe
commit 4c00aecbcf
2 changed files with 9 additions and 22 deletions

View file

@ -34,15 +34,15 @@ Provides an API for HLTV
## `get_player_info` ## `get_player_info`
```python ```python
>>> hltv.get_player_info("7398") >>> hltv.get_player_info("3741")
{'id': 7398, 'nickname': b'dupreeh', 'name': b'Peter Rasmussen', 'country': 'Denmark', 'team': b'Astralis', 'age': 27, 'total_kills': '31385', 'headshot': '50.5%', 'total_deaths': '27456', 'kd_ratio': '1.14', 'dmg_round': '78.4', 'gren_dmg_round': '3.0', 'maps_played': '1635', 'rounds_played': '42363', 'kills_round': '0.74', 'assists_round': '0.14', 'deaths_round': '0.65', 'saved_by_teammate': '0.10', 'saved_teammates': '0.09', 'rating_1': '1.09'} {'id': 3741, 'nickname': b'NiKo', 'name': b'Nikola Kova\xc4\x8d', 'country': 'Bosnia and Herzegovina', 'team': b'FaZe', 'age': 23, b'Total kills': b'26979', b'Headshot %': b'50.3%', b'Total deaths': b'22562', b'K/D Ratio': b'1.20', b'Damage / Round': b'85.6', b'Grenade dmg / Round': b'3.8', b'Maps played': b'1277', b'Rounds played': b'33693', b'Kills / round': b'0.80', b'Assists / round': b'0.13', b'Deaths / round': b'0.67', b'Saved by teammate / round': b'0.08', b'Saved teammates / round': b'0.10', b'Rating 1.0': b'1.16'}
``` ```
## `get_team_info` ## `get_team_info`
```python ```python
>>> hltv.get_team_info("6667") >>> hltv.get_team_info("6667")
{'stats': {'Maps played': '466', 'K/D Ratio': '1.06', 'Total deaths': '40328', 'Wins / draws / losses': '279 / 1 / 186', 'Total kills': '42711', 'Rounds played': '12212'}, 'current-lineup': [{'maps-played': 314, 'country': 'Denmark', 'nickname': 'karrigan', 'name': 'Finn Andersen'}, {'maps-played': 141, 'country': 'Sweden', 'nickname': 'olofmeister', 'name': 'Olof Kajbjer'}, {'maps-played': 141, 'country': 'Slovakia', 'nickname': 'GuardiaN', 'name': 'Ladislav Kov\xc3\xa1cs'}, {'maps-played': 237, 'country': 'Bosnia and Herzegovina', 'nickname': 'NiKo', 'name': 'Nikola Kova\xc4\x8d'}, {'maps-played': 466, 'country': 'Norway', 'nickname': 'rain', 'name': 'H\xc3\xa5vard Nygaard'}], 'team-name': 'FaZe', 'historical-players': [{'maps-played': 25, 'country': 'Sweden', 'nickname': 'Maikelele', 'name': 'Mikail Bill'}, {'maps-played': 88, 'country': 'Portugal', 'nickname': 'fox', 'name': 'Ricardo Pacheco'}, {'maps-played': 237, 'country': 'Finland', 'nickname': 'allu', 'name': 'Aleksi Jalli'}, {'maps-played': 180, 'country': 'Norway', 'nickname': 'jkaem', 'name': 'Joakim Myrbostad'}, {'maps-played': 218, 'country': 'Denmark', 'nickname': 'aizy', 'name': 'Philip Aistrup'}, {'maps-played': 280, 'country': 'France', 'nickname': 'kioShiMa', 'name': 'Fabien Fiey'}, {'maps-played': 2, 'country': 'Sweden', 'nickname': 'RobbaN', 'name': 'Robert Dahlstr\xc3\xb6m'}, {'maps-played': 2, 'country': 'Denmark', 'nickname': 'TENZKI', 'name': 'Jesper Plougmann'}, {'maps-played': 1, 'country': 'Sweden', 'nickname': 'zbM', 'name': 'Zebastian Molinder'}]} {'team-name': b'FaZe', 'current-lineup': [{'country': 'Bosnia and Herzegovina', 'name': 'Nikola Kovač', 'nickname': 'NiKo', 'maps-played': 759, 'id': 3741}, {'country': 'Norway', 'name': 'Håvard Nygaard', 'nickname': 'rain', 'maps-played': 994, 'id': 8183}, {'country': 'Denmark', 'name': 'Markus Kjærbye', 'nickname': 'Kjaerbye', 'maps-played': 9, 'id': 8394}, {'country': 'Brazil', 'name': 'Marcelo David', 'nickname': 'coldzera', 'maps-played': 183, 'id': 9216}, {'country': 'Latvia', 'name': 'Helvijs Saukants', 'nickname': 'broky', 'maps-played': 183, 'id': 18053}], 'historical-players': [{'country': b'Poland', 'name': 'Filip Kubski', 'nickname': b'NEO', 'maps-played': 45, 'id': 165}, {'country': b'Slovakia', 'name': 'Ladislav Kovács', 'nickname': b'GuardiaN', 'maps-played': 484, 'id': 2757}, {'country': b'Lithuania', 'name': 'Aurimas Pipiras', 'nickname': b'Bymas', 'maps-played': 41, 'id': 19015}, {'country': b'Denmark', 'name': 'Finn Andersen', 'nickname': b'karrigan', 'maps-played': 548, 'id': 429}, {'country': b'Kazakhstan', 'name': 'Dauren Kystaubayev', 'nickname': b'AdreN', 'maps-played': 65, 'id': 334}, {'country': b'Sweden', 'name': 'Richard Landström', 'nickname': b'Xizt', 'maps-played': 59, 'id': 884}, {'country': b'Sweden', 'name': 'Mikail Bill', 'nickname': b'Maikelele', 'maps-played': 25, 'id': 1045}, {'country': b'Portugal', 'name': 'Ricardo Pacheco', 'nickname': b'fox', 'maps-played': 88, 'id': 629}, {'country': b'Sweden', 'name': 'Olof Kajbjer', 'nickname': b'olofmeister', 'maps-played': 533, 'id': 885}, {'country': b'Finland', 'name': 'Aleksi Jalli', 'nickname': b'allu', 'maps-played': 237, 'id': 695}, {'country': b'Norway', 'name': 'Joakim Myrbostad', 'nickname': b'jkaem', 'maps-played': 180, 'id': 8248}, {'country': b'Norway', 'name': 'Jorgen Robertsen', 'nickname': b'cromen', 'maps-played': 27, 'id': 10397}, {'country': b'Denmark', 'name': 'Philip Aistrup', 'nickname': b'aizy', 'maps-played': 218, 'id': 8095}, {'country': b'France', 'name': 'Fabien Fiey', 'nickname': b'kioShiMa', 'maps-played': 280, 'id': 4959}, {'country': b'Sweden', 'name': 'Robert Dahlström', 'nickname': b'RobbaN', 'maps-played': 2, 'id': 2}, {'country': b'Australia', 'name': 'Karlo Pivac', 'nickname': b'USTILO', 'maps-played': 1, 'id': 8771}, {'country': b'Denmark', 'name': 'Jesper Plougmann', 'nickname': b'TENZKI', 'maps-played': 2, 'id': 5287}, {'country': b'Serbia', 'name': 'Janko Paunović', 'nickname': b'YNk', 'maps-played': 8, 'id': 2482}, {'country': b'Sweden', 'name': 'Zebastian Molinder', 'nickname': b'zbM', 'maps-played': 1, 'id': 10748}], 'stats': {b'Maps played': b'994', b'Wins / draws / losses': b'567 / 5 / 422', b'Total kills': b'89743', b'Total deaths': b'85251', b'Rounds played': b'26101', b'K/D Ratio': b'1.05'}}
``` ```
## `get_matches` ## `get_matches`

25
main.py
View file

@ -110,23 +110,10 @@ def get_player_info(playerid):
else: else:
player_info['age'] = int(age[:2]) player_info['age'] = int(age[:2])
try: for stat in statistics:
player_info['total_kills'] = statistics[0].find_all("span")[1].text stat_value = stat.find_all("span")[1].text.encode('utf8')
player_info['headshot'] = statistics[1].find_all("span")[1].text stat_title = stat.find_all("span")[0].text.encode('utf8')
player_info['total_deaths'] = statistics[2].find_all("span")[1].text player_info[stat_title] = stat_value
player_info['kd_ratio'] = statistics[3].find_all("span")[1].text
player_info['dmg_round'] = statistics[4].find_all("span")[1].text
player_info['gren_dmg_round'] = statistics[5].find_all("span")[1].text
player_info['maps_played'] = statistics[6].find_all("span")[1].text
player_info['rounds_played'] = statistics[7].find_all("span")[1].text
player_info['kills_round'] = statistics[8].find_all("span")[1].text
player_info['assists_round'] = statistics[9].find_all("span")[1].text
player_info['deaths_round'] = statistics[10].find_all("span")[1].text
player_info['saved_by_teammate'] = statistics[11].find_all("span")[1].text
player_info['saved_teammates'] = statistics[12].find_all("span")[1].text
player_info['rating_1'] = statistics[13].find_all("span")[1].text
except IndexError:
return None
return player_info return player_info
@ -180,7 +167,7 @@ def _get_current_lineup(player_anchors):
player['name'] = buildName[0].rstrip() + buildName[2] player['name'] = buildName[0].rstrip() + buildName[2]
player['nickname'] = player_anchor.find("div", {"class": "teammate-info standard-box"}).find("div", {"class": "text-ellipsis"}).text player['nickname'] = player_anchor.find("div", {"class": "teammate-info standard-box"}).find("div", {"class": "text-ellipsis"}).text
player['maps-played'] = int(re.search(r'\d+', player_anchor.find("div", {"class": "teammate-info standard-box"}).find("span").text).group()) player['maps-played'] = int(re.search(r'\d+', player_anchor.find("div", {"class": "teammate-info standard-box"}).find("span").text).group())
player['id'] = re.search(pattern, player_link).group(1) player['id'] = int(re.search(pattern, player_link).group(1))
players.append(player) players.append(player)
return players return players
@ -199,7 +186,7 @@ def _get_historical_lineup(player_anchors):
player['name'] = buildName[0].rstrip() + buildName[2] player['name'] = buildName[0].rstrip() + buildName[2]
player['nickname'] = player_anchor.find("div", {"class": "teammate-info standard-box"}).find("div", {"class": "text-ellipsis"}).text.encode('utf8') player['nickname'] = player_anchor.find("div", {"class": "teammate-info standard-box"}).find("div", {"class": "text-ellipsis"}).text.encode('utf8')
player['maps-played'] = int(re.search(r'\d+', player_anchor.find("div", {"class": "teammate-info standard-box"}).find("span").text).group()) player['maps-played'] = int(re.search(r'\d+', player_anchor.find("div", {"class": "teammate-info standard-box"}).find("span").text).group())
player['id'] = re.search(pattern, player_link).group(1) player['id'] = int(re.search(pattern, player_link).group(1))
players.append(player) players.append(player)
return players return players