def loadreplay(self, replay_file): archive = mpyq.MPQArchive(replay_file) # Read the protocol header, this can be read with any protocol contents = archive.header['user_data_header']['content'] header = protocol15405.decode_replay_header(contents) self.log(header) # The header's baseBuild determines which protocol to use baseBuild = header['m_version']['m_baseBuild'] try: protocol = __import__('protocol%s' % (baseBuild,)) except: return baseBuild # Print protocol details contents = archive.read_file('replay.details') details = protocol.decode_replay_details(contents) self.log(details) self.rawdetails = details # http://dev.esl.eu/blog/category/s2protocol/ # divide it by 10,000,000 and subtract 11,644,473,600 self.ts = (details['m_timeUTC'] / 10000000) - 11644473600 self.tzhrs = details['m_timeLocalOffset'] / 36000000000 self.map = details['m_title'] self.players = details['m_playerList'] return 0
def load_data(filepath): archive = mpyq.MPQArchive(filepath) contents = archive.header['user_data_header']['content'] header = protocol15405.decode_replay_header(contents) baseBuild = header['m_version']['m_baseBuild'] print 'Basebuild', baseBuild protocol = __import__('protocol%s' % (baseBuild, )) # contents = archive.read_file('replay.details') # details = protocol.decode_replay_details(contents) # contents = archive.read_file('replay.initData') # initdata = protocol.decode_replay_initdata(contents) contents = archive.read_file('replay.game.events') events = list(protocol.decode_replay_game_events(contents)) contents = archive.read_file('replay.message.events') messages = list(protocol.decode_replay_message_events(contents)) # if hasattr(protocol, 'decode_replay_tracker_events'): # contents = archive.read_file('replay.tracker.events') # tracker_events = protocol.decode_replay_tracker_events(contents) # contents = archive.read_file('replay.attributes.events') # attributes = protocol.decode_replay_attributes_events(contents) return [events, messages]
def load_data(filepath): archive = mpyq.MPQArchive(filepath) contents = archive.header['user_data_header']['content'] header = protocol15405.decode_replay_header(contents) baseBuild = header['m_version']['m_baseBuild'] print 'Basebuild',baseBuild protocol = __import__('protocol%s' % (baseBuild,)) # contents = archive.read_file('replay.details') # details = protocol.decode_replay_details(contents) # contents = archive.read_file('replay.initData') # initdata = protocol.decode_replay_initdata(contents) contents = archive.read_file('replay.game.events') events = list(protocol.decode_replay_game_events(contents)) contents = archive.read_file('replay.message.events') messages = list(protocol.decode_replay_message_events(contents)) # if hasattr(protocol, 'decode_replay_tracker_events'): # contents = archive.read_file('replay.tracker.events') # tracker_events = protocol.decode_replay_tracker_events(contents) # contents = archive.read_file('replay.attributes.events') # attributes = protocol.decode_replay_attributes_events(contents) return [events,messages]
action="store_true") parser.add_argument("--details", help="print protocol details", action="store_true") parser.add_argument("--initdata", help="print protocol initdata", action="store_true") parser.add_argument("--stats", help="print stats", action="store_true") args = parser.parse_args() archive = mpyq.MPQArchive(args.replay_file) logger = EventLogger() # Read the protocol header, this can be read with any protocol contents = archive.header['user_data_header']['content'] header = protocol15405.decode_replay_header(contents) if args.header: logger.log(sys.stdout, header) # The header's baseBuild determines which protocol to use baseBuild = header['m_version']['m_baseBuild'] try: protocol = __import__('protocol%s' % (baseBuild,)) except: print >> sys.stderr, 'Unsupported base build: %d' % baseBuild sys.exit(1) # Print protocol details if args.details: contents = archive.read_file('replay.details') details = protocol.decode_replay_details(contents)
parser.add_argument("--details", help="print protocol details", action="store_true") parser.add_argument("--initdata", help="print protocol initdata", action="store_true") parser.add_argument("--stats", help="print stats", action="store_true") args = parser.parse_args() archive = mpyq.MPQArchive(args.replay_file) logger = EventLogger() # Read the protocol header, this can be read with any protocol contents = archive.header['user_data_header']['content'] header = protocol15405.decode_replay_header(contents) if args.header: logger.log(sys.stdout, header) # The header's baseBuild determines which protocol to use baseBuild = header['m_version']['m_baseBuild'] try: protocol = __import__('protocol%s' % (baseBuild, )) except: print >> sys.stderr, 'Unsupported base build: %d' % baseBuild sys.exit(1) # Print protocol details if args.details: contents = archive.read_file('replay.details') details = protocol.decode_replay_details(contents)