Skip to content

Commit 6827b44

Browse files
committed
Final changes to the scritp and ulility files before the 0.2 release
1 parent d0a20b4 commit 6827b44

File tree

2 files changed

+43
-14
lines changed

2 files changed

+43
-14
lines changed

sc2reader/utils.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ def skip(self,number,byteCode=False):
3030
return self.getBig(number)
3131
self.getBig(number)
3232

33+
def peek(self,number):
34+
return self.stream[:number*2]
35+
3336
def getLittle(self,number,byteCode=False):
3437
#Get a list of the next 'number' of bytes from the stream
3538
bytes = [self.getBig(1) for i in range(0,number)]
@@ -162,9 +165,6 @@ def parseSerializedData(self,byteCode=False):
162165
return data,typeCode+bytes
163166
return data
164167

165-
def peek(self,number):
166-
return self.stream[:number*2]
167-
168168
@property
169169
def length(self):
170170
return len(self.stream)

scripts/sc2printer

Lines changed: 40 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,46 @@
11
#!c:\\Python27\python.exe
22

3-
import sys
4-
sys.path.append("c:\\Users\\graylinkim\\sc2reader")
3+
import os,sys
54
from sc2reader import Replay
5+
from sc2reader.exceptions import ParseError
6+
7+
def doFile(filename):
8+
9+
try:
10+
replay = Replay(filename)
11+
print "\nStarcraft II Version %s" % replay.releaseString
12+
print "%s on %s played on %s" % (replay.type,replay.map,replay.date)
13+
14+
#Player[0] is None so that players can be indexed by ID
15+
for team,players in replay.teams.iteritems():
16+
print "\n\tTeam %s: %s" % (team,replay.results[team])
17+
for player in players:
18+
print "\t\t%s" % player
19+
20+
except ParseError as e:
21+
prev = e.replay.events[-1]
22+
event = e.event
23+
bytes = e.event.bytes+e.bytes.peek(30)
24+
print "\nVersion %s replay:\n\t%s" % (e.replay.releaseString,e.replay.file)
25+
print "\tError parsing event Type=%s, Code=%s" % (hex(e.event.type),hex(e.event.code))
26+
print "\tPrevious Event: %s" % prev.name
27+
print "\t\t"+prev.bytes
28+
print "\tFollowing Bytes:"
29+
print "\t\t"+bytes
30+
31+
32+
def doDir(dirname):
33+
for name in os.listdir(dirname):
34+
replaypath = os.path.join(dirname,name)
35+
36+
if os.path.isfile(replaypath):
37+
doFile(replaypath)
38+
elif os.path.isdir(replaypath):
39+
doDir(replaypath)
640

741
assert len(sys.argv)>1, "A path to at least 1 sc2replay file is required"
842
for filename in sys.argv[1:]:
9-
replay = Replay(filename)
10-
print "\nStarcraft II Version %s" % replay.releaseString
11-
print "%s on %s played on %s" % (replay.type,replay.map,replay.date)
12-
13-
#Player[0] is None so that players can be indexed by ID
14-
for team,players in replay.teams.iteritems():
15-
print "\n\tTeam %s: %s" % (team,replay.results[team])
16-
for player in players:
17-
print "\t\t%s" % player
43+
if os.path.isfile(filename):
44+
doFile(filename)
45+
elif os.path.isdir(filename):
46+
doDir(filename)

0 commit comments

Comments
 (0)