Mercurial > mamba
view mamba/habitats/userlevelmenu.py @ 346:c2f7920563e4
Remove debugging print.
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Fri, 16 Sep 2011 23:03:54 +0200 |
parents | 04bb1ffcd054 |
children | d4062344d8f4 |
line wrap: on
line source
"""Level menu.""" from mamba.habitats.levelmenu import LevelMenu from mamba.level import Level from mamba.constants import LEVEL_SERVER import urllib2 class UserLevelMenu(LevelMenu): LEVEL_SERVER_URL = LEVEL_SERVER + "curated/" TIMEOUT = 5.0 # in seconds CACHE = {} @classmethod def _url_data(cls, route): url = "%s%s" % (cls.LEVEL_SERVER_URL, route) return urllib2.urlopen(url, timeout=cls.TIMEOUT).read() @classmethod def _populate_cache(cls): try: data = cls._url_data("index") except: print "Failed to download online level index." return levels = [x.strip() for x in data.splitlines()] for name in levels: try: source = cls._url_data("level/%s" % name) level = Level(name, source) except: print "Failed to download online level %r" % name continue cls.CACHE[level] = level def list_levels(self): if not self.CACHE: self._populate_cache() return self.CACHE.keys() def get_level(self, name): return self.CACHE[name]