Mercurial > mamba
changeset 340:5456db312f7f
Curated and uncurated levels.
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Fri, 16 Sep 2011 22:20:48 +0200 |
parents | c7d7accca022 |
children | e769032e3c09 |
files | mamba/forest.py mamba/habitats/userlevelmenu.py |
diffstat | 2 files changed, 29 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/mamba/forest.py Fri Sep 16 22:16:48 2011 +0200 +++ b/mamba/forest.py Fri Sep 16 22:20:48 2011 +0200 @@ -10,18 +10,32 @@ app.config['LEVEL_FOLDER'] = None # set later -@app.route("/index") -def index(): +def path(ctype): + if ctype == "curated": + return os.path.join(app.config['LEVEL_FOLDER'], 'curated') + elif ctype == "uncurated": + return os.path.join(app.config['LEVEL_FOLDER'], 'uncurated') + abort(404, "Not found") + + +def list_levels(folder): endl = len(".txt") - files = [x[:-endl] for x in os.listdir(app.config['LEVEL_FOLDER']) + files = [x[:-endl] for x in os.listdir(folder) if not x.startswith('.') and x.endswith('.txt')] return "\n".join(files) -@app.route("/level/<levelname>") -def level(levelname): +@app.route("/<ctype>/index") +def index(ctype): + ctype = path(ctype) + return list_levels(ctype) + + +@app.route("/<ctype>/level/<levelname>") +def level(ctype, levelname): + ctype = path(ctype) levelname = "%s.txt" % secure_filename(levelname) - levelpath = os.path.join(app.config['LEVEL_FOLDER'], levelname) + levelpath = os.path.join(ctype, levelname) if not os.path.isfile(levelpath): abort(404, "Level not found. Hsss.") with open(levelpath) as level: @@ -31,7 +45,7 @@ @app.route("/save/<levelname>", methods=['GET', 'POST']) def save(levelname): levelname = "%s.txt" % secure_filename(levelname) - levelpath = os.path.join(app.config['LEVEL_FOLDER'], levelname) + levelpath = os.path.join(path("uncurated"), levelname) if request.method == 'POST': if os.path.exists(levelpath): abort(409, "Mamba already resident.") @@ -51,11 +65,13 @@ host = '0.0.0.0' port = int(sys.argv[1]) level_folder = sys.argv[2] - if not os.path.exists(level_folder): - os.makedirs(level_folder) - if not os.path.isdir(level_folder): - print "Level folder must be a folder." - sys.exit(1) + for ctype in ("curated", "uncurated"): + folder = os.path.join(level_folder, ctype) + if not os.path.exists(folder): + os.makedirs(folder) + if not os.path.isdir(folder): + print "Level folder must be a folder." + sys.exit(1) app.config['LEVEL_FOLDER'] = level_folder # app.debug = True
--- a/mamba/habitats/userlevelmenu.py Fri Sep 16 22:16:48 2011 +0200 +++ b/mamba/habitats/userlevelmenu.py Fri Sep 16 22:20:48 2011 +0200 @@ -8,7 +8,7 @@ class UserLevelMenu(LevelMenu): - LEVEL_SERVER_URL = "http://localhost:5000/" + LEVEL_SERVER_URL = "http://localhost:5000/curated/" TIMEOUT = 5.0 # in seconds CACHE = {}