Esempio n. 1
0
 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
Esempio n. 2
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]
Esempio n. 3
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]
Esempio n. 4
0
                        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)
Esempio n. 5
0
    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)