def cmd_clear_credentials(args): _LOG.debug("Removing all stored credentials") data_dir = UserDataDirectory('client') for entry in data_dir.iter_files('*.key'): entry.secure_remove() for entry in data_dir.iter_files('*_sentry.bin'): entry.secure_remove()
def cmd_clear_all(args): _LOG.debug("Removing all files stored by this application") cmd_clear_cache(args) cmd_clear_credentials(args) data_dir = UserDataDirectory() if data_dir.exists(): data_dir.remove() else: _LOG.debug("Data dir doesn't exist. Nothing to do")
def cmd_authenticator_list(args): rows = [] for secrets_file in UserDataDirectory('authenticator').iter_files('*.json'): secrets = secrets_file.read_json() rows.append([ secrets['account_name'], secrets['token_gid'], fmt_datetime(int(secrets['server_time']), utc=args.utc), ]) if rows: print_table(rows, ['Account', 'Token GID', 'Created'], ) else: print("No authenticators found")
def cmd_authenticator_list(args): rows = [] for secrets_file in UserDataDirectory('authenticator').iter_files( '*.json'): secrets = secrets_file.read_json() rows.append([ secrets_file.filename, secrets['account_name'], secrets['token_gid'], fmt_datetime(int(secrets['server_time']), utc=args.utc), 'Created via steamctl' if 'serial_number' in secrets else 'Imported from secret' ]) if rows: print_table( rows, ['Filename', 'Account', 'Token GID', 'Created', 'Note'], ) else: print("No authenticators found")
gevent.monkey.patch_socket() gevent.monkey.patch_ssl() import os import logging from steam.enums import EResult from steam.client import SteamClient from steam.client.cdn import CDNClient, CDNDepotManifest, CDNDepotFile from steam.exceptions import SteamError from steamctl.utils.format import fmt_size from steamctl.utils.storage import (UserCacheFile, UserDataFile, UserCacheDirectory, UserDataDirectory, ensure_dir, sanitizerelpath) cred_dir = UserDataDirectory('client') class CachingSteamClient(SteamClient): credential_location = cred_dir.path def __init__(self, *args, **kwargs): if not cred_dir.exists(): cred_dir.mkdir() SteamClient.__init__(self, *args, **kwargs) _LOG = logging.getLogger('CachingSteamClient') self._bootstrap_cm_list_from_file() def _handle_login_key(self, message): SteamClient._handle_login_key(self, message)
def account_autocomplete(prefix, parsed_args, **kwargs): return [ userfile.filename[:-5] for userfile in UserDataDirectory( 'authenticator').iter_files('*.json') ]