d13 - made a script that gets current players in all games on steam
This commit is contained in:
parent
46f54d7d50
commit
ce43eac38b
1 changed files with 67 additions and 0 deletions
|
@ -0,0 +1,67 @@
|
|||
---
|
||||
layout: post
|
||||
title: "day 12"
|
||||
date: 2018-01-19
|
||||
categories: programming
|
||||
---
|
||||
|
||||
# 100 Days of Code
|
||||
|
||||
### Day 13:
|
||||
Today I made a script that uses the Steam HTTP API to iterate through all
|
||||
possible games/apps on steam and outputs the game/app name, and current player
|
||||
count. It is a fun way for me to practice interacting with json dictionaries.
|
||||
|
||||
```python
|
||||
import json
|
||||
import requests
|
||||
|
||||
BASE_URL = 'https://api.steampowered.com'
|
||||
|
||||
|
||||
def main():
|
||||
""" Loop through list of appids and feed appid list into retrieval of
|
||||
current players in game corresponding to appid
|
||||
"""
|
||||
|
||||
appnames, appids = zip(*get_appid())
|
||||
|
||||
for appname, appid in zip(appnames, appids):
|
||||
resp_data = json.loads(get_current_players(appid))
|
||||
player_count = resp_data['response']['player_count']
|
||||
print('Game Name: {}'.format(appname))
|
||||
print('Current Players: {}\n'.format(player_count))
|
||||
|
||||
|
||||
def get_current_players(appid):
|
||||
""" Queries Steam API for number of current players in a game
|
||||
|
||||
:param appid: The appid of the game title
|
||||
:param type: `str`
|
||||
|
||||
:returns: Returns string json response of number of current players
|
||||
:rtype: `str`
|
||||
"""
|
||||
|
||||
url = '{}/ISteamUserStats/GetNumberofCurrentPlayers/v1/?key=KEY&format=json&appid={}'.format(BASE_URL, appid)
|
||||
r = requests.get(url)
|
||||
return r.text
|
||||
|
||||
|
||||
def get_appid():
|
||||
""" Queries Steam API for appids
|
||||
:returns: (appname, appid)
|
||||
:rtype: `tuple`
|
||||
"""
|
||||
url = '{}/ISteamApps/GetAppList/v2'.format(BASE_URL)
|
||||
r = requests.get(url)
|
||||
json_data = json.loads(r.text)
|
||||
apps = json_data['applist']['apps']
|
||||
appname_and_id = [(dic['name'], dic['appid']) for dic in apps]
|
||||
|
||||
return appname_and_id
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
```
|
Loading…
Add table
Reference in a new issue