コード例 #1
0
ファイル: persistence.py プロジェクト: wkoder/tojxt
    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
コード例 #2
0
ファイル: parsers.py プロジェクト: wkoder/algorithms
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