コード例 #1
0
ファイル: persistence.py プロジェクト: wkoder/tojxt
    def _parseProblem(self, data):
        problem = Problem()
        problem.id = data[0]
        problem.title = data[1]
        problem.accepted = data[2]
        problem.submitted = data[3]
        problem.ratio = data[4]
        problem.source = data[5]

        return problem
コード例 #2
0
ファイル: parsers.py プロジェクト: wkoder/tojxt
def parseProblems(volume):
    url = "http://%s/toj/list%d.html" % (TOJ_HOST, volume)
    html = _readURL(url)
    lines = html.split('\n')
    
    problems = list()
    for line_pos in xrange(28, len(lines)):
        token = lines[line_pos]
        if token.find("p") != 0:
            break
        problem = Problem()
        
        token2 = token[ : : -1]
        
        endRatio = token2.find('"')
        startRatio = token2.find('"', endRatio+1)
        endTitle = token2.find('"', startRatio+1)
        
        startTitle = token.find('"')
        endTitle = len(token) - endTitle - 1
        endRatio = len(token) - endRatio - 1
        startRatio = len(token) - startRatio - 1
        
        problem.title = token[startTitle+1:endTitle].replace("\\", "")
        ratio = token[startRatio+1:endRatio]
        try:
            problem.ratio = float(ratio) / 100.0
        except:
            None
        
        token = token[0:startTitle] + token[endTitle+1:startRatio] + token[endRatio+1:len(token)-1]
        params = token.split(",")
        
        problem.id = int(params[2])
        problem.accepted = int(params[5])
        problem.submitted = int(params[6])
        
        problems.append(problem)
        
    return problems