parser.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:osurender 作者: jamesguessis 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号