Mercurial > mamba
comparison mamba/habitats/userlevelmenu.py @ 590:2d3dee657638
Game runs, although weirdly
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Wed, 11 Jan 2023 20:41:40 +0200 |
parents | fca61cd8fc33 |
children | ffb0134be578 |
comparison
equal
deleted
inserted
replaced
589:fca61cd8fc33 | 590:2d3dee657638 |
---|---|
1 """Level menu.""" | 1 """Level menu.""" |
2 | 2 |
3 import urllib2 | 3 from urllib import request |
4 import zipfile | 4 import zipfile |
5 import StringIO | 5 from io import StringIO |
6 | 6 |
7 from mamba.habitats.levelmenu import LevelMenu | 7 from mamba.habitats.levelmenu import LevelMenu |
8 from mamba.level import Level | 8 from mamba.level import Level |
9 from mamba.constants import LEVEL_SERVER, LEVEL_SERVER_VERSION | 9 from mamba.constants import LEVEL_SERVER, LEVEL_SERVER_VERSION |
10 from mamba.data import get_level_list, load_file | 10 from mamba.data import get_level_list, load_file |
21 self.timeout = timeout | 21 self.timeout = timeout |
22 self.cache = {} | 22 self.cache = {} |
23 | 23 |
24 def _url_data(self, route): | 24 def _url_data(self, route): |
25 url = "%s%s/%s" % (self.url, self.ctype, route) | 25 url = "%s%s/%s" % (self.url, self.ctype, route) |
26 return urllib2.urlopen(url, timeout=self.timeout).read() | 26 return request.urlopen(url, timeout=self.timeout).read() |
27 | 27 |
28 def _populate_level(self, name): | 28 def _populate_level(self, name): |
29 try: | 29 try: |
30 source = self._url_data("level/%s" % name) | 30 source = self._url_data("level/%s" % name) |
31 level = Level(name, self.level_namespace, source) | 31 level = Level(name, self.level_namespace, source) |
49 try: | 49 try: |
50 data = self._url_data("levels.zip") | 50 data = self._url_data("levels.zip") |
51 except: | 51 except: |
52 print("Failed to download online level zip.") | 52 print("Failed to download online level zip.") |
53 return | 53 return |
54 level_zip = zipfile.ZipFile(StringIO.StringIO(data), "r") | 54 level_zip = zipfile.ZipFile(StringIO(data), "r") |
55 levels = level_zip.namelist() | 55 levels = level_zip.namelist() |
56 for level in levels: | 56 for level in levels: |
57 try: | 57 try: |
58 source = level_zip.read(level) | 58 source = level_zip.read(level) |
59 self.cache[level] = Level(level, self.level_namespace, source) | 59 self.cache[level] = Level(level, self.level_namespace, source) |