import webapp2 from webapp2_extras import sessions from gaemvc.methods import controller shared = controller("shared") @shared.view() def index(handler): return {} @shared.view() def http404(handler): return {} class Switchboard( webapp2.RequestHandler ): controllers = [] default = shared def __init__(self,*args,**kwargs): super(Switchboard, self).__init__(*args, **kwargs) self.default = self.default or shared def get(self, tail=""): line = tail.split('/') if not line[0]: view = self.default.all['index'] elif line[0] in self.default.all: view = self.default.all[line[0]] else: for ctrl in self.controllers: if ctrl.area == line[0]: view = ctrl.all.get(line[1],ctrl.all['index']);break
if 'game' not in handler.session: from models.stats import Game game = Game(team=db.Key(handler.session['team_key'])) game.put() handler.session['game'] = str(game.key()) return handler.session['game'] def load_team(handler, team_name): from models.stats import Team team = Team.get_or_insert(team_name,name=team_name) handler.session['team'] = team.key().name() handler.session['team_key'] = str(team.key()) handler.session['game'] = load_game(handler) return team purple = controller("purple") @purple.view() def index(handler, route, params): team = load_team(handler, "Purple Penetrators") return { "roster" : team.roster } @purple.view(routes=[r"/(?P<team>[A-Za-z0-9-_]+)/$"]) def team(handler, route, params): team_name = route.get("team","").replace("-"," ") team = load_team(handler, team_name) return { 'roster' : team.roster, '__template' : 'index.html' } @purple.json() def cleanup(handler, **kwargs): from models.stats import Game
import time from google.appengine.ext import db from gaemvc.methods import controller from models import Writer, Entry writer = controller("writer") @writer.view() def index(handler): context = {} if handler.session.get("account", False): context["drafts"] = Entry.all().filter("author =", db.Key(handler.session["account"])) else: pass return context @writer.view(routes=[r"/(?P<key>[a-zA-Z0-9\-_]+)/$"]) def draft(handler, route, params): if route.get("key", False): draft = Entry.get_by_key_name(route.get("key")) if draft and str(draft._author) == handler.session.get("account", False): return {"draft": draft} return {"draft": {"title": "untitled", "content": "", "saved": "never"}} @writer.view(routes=[r"/(?P<key>[a-zA-Z0-9\-_]+)/$"]) def article(handler, route, params): if route.get("key", False): draft = Entry.get_by_key_name(route.get("key"))
# from appengine from webapp2_extras import json from google.appengine.ext import db # from application from gaemvc.methods import controller smallapp = controller("app") @smallapp.view() def index(handler): return {} @smallapp.view() def craigslist(handler): return {} @smallapp.view() def cssbutton(handler): return {} @smallapp.json() def generatecssbutton(handler): return {}
# from application from gaemvc.methods import controller # from application.controllers from controllers.writer import writer from controllers.purple import purple from controllers.apps import smallapp home = controller("home") @home.view(redirect_to="/coverletter/") def index(handler): return {} @home.view() def coverletter(handler): return {} apps = [home, smallapp, purple, writer] default_app = home