GraylinKim / sc2reader

A python library that extracts data from various Starcraft II resources to power tools and services for the SC2 community. Who doesn't want to hack on the games they play?
http://sc2reader.readthedocs.org
MIT License
413 stars 85 forks source link

map url problems (SEA?) 8.5% affected #70

Closed dsjoerg closed 12 years ago

dsjoerg commented 12 years ago

This one is important: it kills parsing for 8.5% of our replay sample set (47 out of 549 attempted thus far), and if it is region-specific then it'd be a shame to lose all users in a particular region.

example: http://ggtracker.com/replays/204633/getreplay

error message: URLError: <urlopen error [Errno 8] nodename nor servname provided, or not known>

traceback: File "/Users/david/Dropbox/Programming/ggtracker_django/ggtracker/replays/views.py", line 25, in json_uploader if replayPersister.upload_from_ruby(id, sender_subdomain): File "/Users/david/Dropbox/Programming/ggtracker_django/ggtracker/replays/replay_persister.py", line 54, in upload_from_ruby replay = sc2reader.load_replay(replaystringio, load_map=True) File "/Users/david/Dropbox/Programming/ggtracker_django/venv/src/sc2reader/sc2reader/factories.py", line 65, in load_replay return self.load(Replay, source, options, _new_options) File "/Users/david/Dropbox/Programming/ggtracker_django/venv/src/sc2reader/sc2reader/factories.py", line 113, in load return self._load(cls, resource, filename=filename, options=options) File "/Users/david/Dropbox/Programming/ggtracker_django/venv/src/sc2reader/sc2reader/factories.py", line 123, in _load obj = cls(resource, filename=filename, _options) File "/Users/david/Dropbox/Programming/ggtracker_django/venv/src/sc2reader/sc2reader/resources.py", line 233, in init self.load_map() File "/Users/david/Dropbox/Programming/ggtracker_django/venv/src/sc2reader/sc2reader/resources.py", line 304, in load_map map_file = StringIO(urllib2.urlopen(map_url).read()) File "/Users/david/local/lib/python2.7/urllib2.py", line 126, in urlopen return _opener.open(url, data, timeout) File "/Users/david/local/lib/python2.7/urllib2.py", line 394, in open response = self._open(req, data) File "/Users/david/local/lib/python2.7/urllib2.py", line 412, in _open '_open', req) File "/Users/david/local/lib/python2.7/urllib2.py", line 372, in _call_chain result = func(*args) File "/Users/david/local/lib/python2.7/urllib2.py", line 1199, in http_open return self.do_open(httplib.HTTPConnection, req) File "/Users/david/local/lib/python2.7/urllib2.py", line 1174, in do_open raise URLError(err) URLError: <urlopen error [Errno 8] nodename nor servname provided, or not known>

SC2Gears can parse the replay without any problem.

GraylinKim commented 12 years ago

As per our discussion, it seems like the SEA region has its own depot and instead uses the US depot. I've added an exception to the code base to reflect this. b751dfee5f952fb5697141c7c247a714e626f4ac