def _parseRun(self, data): run = Run() run.id = data[0] run.submitTime = data[1] run.problemId = data[2] run.status = data[3] run.time = data[4] run.language = data[5] run.memory = data[6] run.userId = data[7] return run
def parseUserRuns(user, fromRunID = -1): if fromRunID >= 0: url = "http://acm.tju.edu.cn/toj/status.php?user=%s&start=%d" % (user, fromRunID) else: url = "http://acm.tju.edu.cn/toj/status.php?user=%s" % user html = _readURL(url) lines = html.split('\n') runs = list() for linePos in xrange(18, len(lines)-5, 5): token = lines[linePos] if token.find("</table") == 0: break run = Run() run.id = int(_getContent(token, 31)) token = lines[linePos+1] run.submitTime = _getContent(token, 4) if token.find("Compilation Error") >= 0: run.status = "Compilation Error" else: run.status = _getContent(token, len(token)-17, 0) token = lines[linePos+2] run.problemId = int(_getContent(token, 27)) run.language = _getContent(token, 44) token = lines[linePos+3] timeStr = _getContent(token, len(token)-13) run.time = int(timeStr[0]) * 60000 + int(timeStr[2:4]) * 1000 + int(timeStr[5:7]) * 10 token = lines[linePos+4] kb = _getContent(token, 4) run.memory = int(kb[ : len(kb)-1]) run.userId = _getContent(token, len(token)-15, 0) runs.append(run) return runs