Skip to content

Commit 5b957bb

Browse files
fix team parsing and tests
1 parent fe8a0ec commit 5b957bb

4 files changed

Lines changed: 15 additions & 9 deletions

File tree

mgz/model/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ def parse_match(handle):
183183
if player['team_id'] > 1:
184184
by_team[player['team_id']].append(number)
185185
elif player['team_id'] == 1:
186-
by_team[number].append(number)
186+
by_team[number + 9].append(number)
187187
team_ids = by_team.values()
188188
else:
189189
team_ids = set([frozenset(s) for s in allies.values()])
@@ -327,8 +327,8 @@ def parse_match(handle):
327327
data['save_version'],
328328
data['log_version'],
329329
data['de']['build'] if data['version'] is Version.DE else None,
330-
datetime.fromtimestamp(data['de']['timestamp']) if data['de']['timestamp'] else None,
331-
timedelta(seconds=data['de']['spec_delay']),
330+
datetime.fromtimestamp(data['de']['timestamp']) if data['version'] is Version.DE and data['de']['timestamp'] else None,
331+
timedelta(seconds=data['de']['spec_delay']) if data['version'] is Version.DE else None,
332332
get_hash(data),
333333
actions,
334334
inputs.inputs

mgz/summary/__init__.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,22 @@
33
from mgz.model.compat import ModelSummary
44
from mgz.util import Version
55
import logging
6+
import zlib
67

78
logger = logging.getLogger(__name__)
89

910
class SummaryStub:
1011

1112
def __call__(self, data, playback=None, fallback=False):
12-
header = decompress(data)
13-
version, game, save, log = parse_version(header, data)
14-
data.seek(0)
15-
if version is Version.DE and save > 13.34 and not fallback:
13+
try:
14+
header = decompress(data)
15+
version, game, save, log = parse_version(header, data)
16+
data.seek(0)
17+
supported = (version is Version.DE and save > 13.34) # or version is Version.USERPATCH15
18+
print(supported, fallback, supported and not fallback)
19+
except zlib.error:
20+
supported = False
21+
if supported and not fallback:
1622
logger.info("using model summary")
1723
try:
1824
return ModelSummary(data, playback)

mgz/summary/teams.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def get_teams_data(header):
1212
if player.resolved_team_id > 1:
1313
by_team[player.resolved_team_id].append(id + 1)
1414
elif player.resolved_team_id == 1:
15-
by_team[id].append(id + 1)
15+
by_team[id + 9].append(id + 1)
1616
return set([frozenset(s) for s in by_team.values()])
1717
allies = {}
1818
for number, player in enumerate(header.initial.players[1:]):

tests/test_model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def test_players(self):
2222
players = self.match.players
2323
self.assertEqual(len(players), 2)
2424
self.assertEqual(players[0].name, '[Heresy]LaaaaaN')
25-
self.assertEqual(players[0].number, 2)
25+
self.assertEqual(players[0].number, 1)
2626
self.assertEqual(players[0].color, 'Red')
2727
self.assertEqual(players[0].civilization, 'Malians')
2828
self.assertFalse(players[0].winner)

0 commit comments

Comments
 (0)