mirror of
https://github.com/JonasunderscoreJones/turbo-octo-potato.git
synced 2025-10-24 10:39:19 +02:00
Added steam profile advancement completion calculator
This commit is contained in:
parent
394ce00075
commit
f7f4464b57
1 changed files with 54 additions and 0 deletions
54
steam_achievment_completion.py
Normal file
54
steam_achievment_completion.py
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
import requests, os, dotenv
|
||||
|
||||
# Load the environment variables
|
||||
dotenv.load_dotenv()
|
||||
|
||||
STEAM_API_KEY = os.getenv('STEAM_API_KEY')
|
||||
STEAM_USER_ID = os.getenv('STEAM_USER_ID')
|
||||
|
||||
# Function to get a list of games for the given Steam user
|
||||
def get_user_games(steam_user_id, api_key):
|
||||
url = f'http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key={api_key}&steamid={steam_user_id}&format=json'
|
||||
response = requests.get(url)
|
||||
print(response)
|
||||
data = response.json()
|
||||
if 'games' in data['response']:
|
||||
return data['response']['games']
|
||||
else:
|
||||
return []
|
||||
|
||||
# Function to get achievements data for a specific game
|
||||
def get_game_achievements(app_id):
|
||||
url = f'http://api.steampowered.com/ISteamUserStats/GetPlayerAchievements/v0001/?appid={app_id}&key={STEAM_API_KEY}&steamid={STEAM_USER_ID}'
|
||||
response = requests.get(url)
|
||||
data = response.json()
|
||||
if 'achievements' in data['playerstats']:
|
||||
total_achievements = len(data['playerstats']['achievements'])
|
||||
unlocked_achievements = sum(achievement['achieved'] for achievement in data['playerstats']['achievements'])
|
||||
completion_percentage = (unlocked_achievements / total_achievements) * 100
|
||||
return completion_percentage
|
||||
else:
|
||||
return 0
|
||||
|
||||
# Main function to calculate the average achievement completion percentage
|
||||
def main():
|
||||
games = get_user_games(STEAM_USER_ID, STEAM_API_KEY)
|
||||
total_completion_percentage = 0
|
||||
num_games_with_achievements = 0
|
||||
|
||||
for game in games:
|
||||
app_id = game['appid']
|
||||
print(f'Checking game {app_id}...')
|
||||
achievement_completion_percentage = get_game_achievements(app_id)
|
||||
if achievement_completion_percentage > 0:
|
||||
total_completion_percentage += achievement_completion_percentage
|
||||
num_games_with_achievements += 1
|
||||
|
||||
if num_games_with_achievements > 0:
|
||||
average_completion_percentage = total_completion_percentage / num_games_with_achievements
|
||||
print(f'Average achievement completion percentage: {average_completion_percentage:.2f}%')
|
||||
else:
|
||||
print('No games with achievements found for the user.')
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue