Skip to content

Commit 8bd3102

Browse files
committed
get clantag breaking test to pass. upgrade WoL 2.0.4 to use DetailsReader_Beta_24764 instead of DetailsReader_22612 despite not having a breaking test for that change. all tests pass now
1 parent cce90cf commit 8bd3102

File tree

5 files changed

+14
-4
lines changed

5 files changed

+14
-4
lines changed

sc2reader/readers.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from __future__ import absolute_import
22

3+
import re
34
from collections import defaultdict
45
from itertools import chain
56

@@ -119,6 +120,10 @@ class DetailsReader_Base(Reader):
119120
PlayerData = namedtuple('PlayerData',['name','bnet','race','color','unknown1','unknown2','handicap','unknown3','result'])
120121
Details = namedtuple('Details',['players','map','unknown1','unknown2','os','file_time','utc_adjustment','unknown4','unknown5','unknown6','unknown7','unknown8','unknown9','unknown10'])
121122

123+
# '[OTZ]<sp/>Skull' --> 'Skull'
124+
def stripclan(self, name):
125+
return re.sub(r'.*<sp/>', '', name)
126+
122127
def __call__(self, data, replay):
123128
# The entire details file is just a serialized data structure
124129
#
@@ -173,6 +178,7 @@ def __call__(self, data, replay):
173178
# from the bottom up instead of in place from the top down.
174179
players = list()
175180
for pdata in details[0]:
181+
pdata[0] = self.stripclan(pdata[0])
176182
pdata[1] = BnetData(*ordered_values(pdata[1]))
177183
pdata[3] = ColorData(*ordered_values(pdata[3]))
178184
player = self.PlayerData(*ordered_values(pdata))

sc2reader/resources.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -533,11 +533,11 @@ def register_datapack(self, datapack, filterfunc=lambda r: True):
533533
def register_default_readers(self):
534534
"""Registers factory default readers."""
535535
self.register_reader('replay.details', readers.DetailsReader_Base(), lambda r: r.build < 22612)
536-
self.register_reader('replay.details', readers.DetailsReader_22612(), lambda r: r.build >= 22612 and r.expansion=='WoL')
536+
self.register_reader('replay.details', readers.DetailsReader_22612(), lambda r: r.build >= 22612 and r.build < 24764 and r.expansion=='WoL')
537537
self.register_reader('replay.details', readers.DetailsReader_Beta(), lambda r: r.build < 24764 and r.expansion=='HotS')
538-
self.register_reader('replay.details', readers.DetailsReader_Beta_24764(), lambda r: r.build >= 24764 and r.expansion=='HotS')
539-
self.register_reader('replay.initData', readers.InitDataReader_Base(), lambda r: r.expansion=='WoL' or r.build < 24764)
540-
self.register_reader('replay.initData', readers.InitDataReader_24764(), lambda r: r.expansion=='HotS' and r.build >= 24764)
538+
self.register_reader('replay.details', readers.DetailsReader_Beta_24764(), lambda r: r.build >= 24764)
539+
self.register_reader('replay.initData', readers.InitDataReader_Base(), lambda r: r.build < 24764)
540+
self.register_reader('replay.initData', readers.InitDataReader_24764(), lambda r: r.build >= 24764)
541541
self.register_reader('replay.message.events', readers.MessageEventsReader_Base(), lambda r: r.build < 24247 or r.expansion=='WoL')
542542
self.register_reader('replay.message.events', readers.MessageEventsReader_Beta_24247(), lambda r: r.build >= 24247 and r.expansion=='HotS')
543543
self.register_reader('replay.attributes.events', readers.AttributesEventsReader_Base(), lambda r: r.build < 17326)

test_replays/.DS_Store

9 KB
Binary file not shown.
Binary file not shown.

test_replays/test_all.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,3 +222,7 @@ def test_oracle_parsing():
222222
def test_clan_players():
223223
replay = sc2reader.load_replay("test_replays/2.0.4.24944/Lunar Colony V.SC2Replay")
224224
assert len(replay.people) == 4
225+
226+
def test_WoL_204():
227+
replay = sc2reader.load_replay("test_replays/2.0.4.24944/ggtracker_1789768.SC2Replay")
228+
assert len(replay.people) == 2

0 commit comments

Comments
 (0)