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 = {}