def parseReplay(filename):
osr = open(filename, 'rb').read()
offset = 0
data = {}
data['mode'], offset = parseNum(osr, offset, 1)
data['version'], offset = parseNum(osr, offset, 4)
data['beatmap_md5'], offset = parseString(osr, offset)
data['player'], offset = parseString(osr, offset)
data['player_lower'] = data['player'].lower()
data['replay_md5'], offset = parseString(osr, offset)
data['num_300'], offset = parseNum(osr, offset, 2)
data['num_100'], offset = parseNum(osr, offset, 2)
data['num_50'], offset = parseNum(osr, offset, 2)
data['num_geki'], offset = parseNum(osr, offset, 2)
data['num_katu'], offset = parseNum(osr, offset, 2)
data['num_miss'], offset = parseNum(osr, offset, 2)
data['score'], offset = parseNum(osr, offset, 4)
data['max_combo'], offset = parseNum(osr, offset, 2)
data['perfect_combo'], offset = parseNum(osr, offset, 1)
mods, offset = parseNum(osr, offset, 4)
data['mods'] = parseMods(mods)
data['mods_bitwise'] = mods
graphString, offset = parseString(osr, offset)
data['life_graph'] = parseLifeGraph(graphString)
data['time_stamp'], offset = parseDate(osr, offset)
data_len, offset = parseNum(osr, offset, 4)
replay_str = str(lzma.decompress(osr[offset:offset+data_len]), 'utf-8')
data['replay_data'] = parseReplayString(replay_str)
return data
评论列表
文章目录