def command(): client = SteamClient() client.set_credential_location(settings.STEAM_SENTRY_DIR) for index, username in enumerate(settings.STEAM_USERNAMES): click.echo(f"Logging into Steam as {username}...") client.cli_login(username=username, password=settings.STEAM_PASSWORDS[index]) time.sleep(5) # copy to correct location for `auth-ticket.js` src = os.path.join(settings.STEAM_SENTRY_DIR, f"{username}_sentry.bin") dest = os.path.join(settings.STEAM_SENTRY_DIR, f"sentry.{username}.bin") copy2(src, dest) click.echo("Login successful. Steam Guard should not prompt anymore") client.logout()
from __future__ import print_function from steam.client import SteamClient from steam.enums import EResult client = SteamClient() print("One-off login recipe") print("-" * 20) result = client.cli_login() if result != EResult.OK: print("Failed to login: %s" % repr(result)) raise SystemExit print("-" * 20) print("Logged on as:", client.user.name) print("Community profile:", client.steam_id.community_url) print("Last logon:", client.user.last_logon) print("Last logoff:", client.user.last_logoff) client.logout()
def main(local_mode = True): try: steam_path = get_steam_installpath() except: print("Could not find steam install path") sys.exit(1) print("Steam path:",steam_path) local_mode = True if local_mode: try: steamid = SteamID(get_steamid_local(steam_path)) if not steamid.is_valid(): steamid = SteamID(input_steamid()) if not steamid.is_valid(): sys.exit(2) print("SteamID:",steamid.as_32) steam_grid_path = STEAM_GRIDPATH.format(steam_path,steamid.as_32) if not os.path.isdir(steam_grid_path): os.mkdir(steam_grid_path) print("Steam grid path:",steam_grid_path) print("Reading cached appinfo") owned_apps = get_app_details_local(steam_path) print("Total apps in library:",len(owned_apps)) missing_cover_apps = get_missing_cover_apps(owned_apps) missing_cover_appids = set(missing_cover_apps.keys()) except Exception as error: print(error) print("Switch to remote mode") local_mode = False if not local_mode: client = SteamClient() owned_apps = [] if client.cli_login() != EResult.OK: print("Login Error") sys.exit(3) else: print("Login Success") steamid = client.steam_id print("SteamID:",steamid.as_32) steam_grid_path = STEAM_GRIDPATH.format(steam_path,steamid.as_32) if not os.path.isdir(steam_grid_path): os.mkdir(steam_grid_path) print("Steam grid path:",steam_grid_path) owned_packageids = get_owned_packages(client) print("Total packages in library:",len(owned_packageids)) owned_packages = get_package_details(client,owned_packageids) print("Retriving package details") owned_appids = get_appids_from_packages(owned_packages) print("Total apps in library:",len(owned_appids)) if os.path.exists("missingcoverdb.json"): with open("missingcoverdb.json",encoding="utf-8") as f: missing_cover_apps = {int(appid):value for appid,value in json.load(f).items()} print("Loaded database with {} apps missing covers".format(len(missing_cover_apps))) else: print("Getting app details") owned_apps = get_app_details(client,owned_appids) missing_cover_apps = get_missing_cover_apps(owned_apps) client.logout() missing_cover_appids = set(missing_cover_apps.keys()) & set(owned_appids) print("Total games missing cover in library:",len(missing_cover_appids)) local_cover_appids = {int(file[:len(file)-5]) for file in os.listdir(steam_grid_path) if re.match(r"^\d+p.(png|jpg)$",file)} print("Total local covers found:",len(local_cover_appids)) local_missing_cover_appids = missing_cover_appids - local_cover_appids print("Total missing covers locally:",len(local_missing_cover_appids)) print("Finding covers from steamgriddb.com") local_missing_cover_appids = list(local_missing_cover_appids) total_downloaded = download_covers_temp(local_missing_cover_appids,steam_grid_path,missing_cover_apps) print("Total cover downloaded:",total_downloaded)