Repository URL to install this package:
|
Version:
0.5.7.1 ▾
|
"""Steam log handling"""
# Standard Library
import os
import time
def _get_last_content_log(steam_data_dir):
"""Return the last block from content_log.txt"""
if not steam_data_dir:
return []
path = os.path.join(steam_data_dir, "logs/content_log.txt")
log = []
try:
with open(path, "r") as logfile:
line = logfile.readline()
while line:
# Strip old logs
if line == "\r\n" and logfile.readline() == "\r\n":
log = []
line = logfile.readline()
else:
log.append(line)
line = logfile.readline()
except IOError:
return []
return log
def get_app_log(steam_data_dir, appid, start_time=None):
"""Return all log entries related to appid from the latest Steam run.
:param start_time: Time tuple, log entries older than this are dumped.
"""
if start_time:
start_time = time.strftime("%Y-%m-%d %T", start_time)
app_log = []
for line in _get_last_content_log(steam_data_dir):
if start_time and line[1:20] < start_time:
continue
if " %s " % appid in line[22:]:
app_log.append(line)
return app_log
def get_app_state_log(steam_data_dir, appid, start_time=None):
"""Return state entries for appid from latest block in content_log.txt.
"Fully Installed, Running" means running.
"Fully Installed" means stopped.
:param start_time: Time tuple, log entries older than this are dumped.
"""
state_log = []
for line in get_app_log(steam_data_dir, appid, start_time):
line = line.split(" : ")
if len(line) == 1:
continue
if line[0].endswith("state changed"):
state_log.append(line[1][:-2])
return state_log