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)