def get(self): ### Session verification code ### session = get_current_session() try: if session['key'] and session['key'] != '': self.redirect('/dashboard') except KeyError: pass ################################# template_values = { 'pagename': 'main', } log = 'disabled' logQ = Setting.all().filter("name =", 'log').run() for l in logQ: log = l.value template_values['log'] = log indexset = False indexsettings = Setting.all().filter("name =", 'index').run() for indexsetting in indexsettings: indexset = True index = indexsetting.value if indexset == False: path = os.path.join(os.path.dirname(__file__), 'templates/index.html') self.response.out.write(template.render(path, template_values)) else: try: self.redirect(index) except UnboundLocalError: path = os.path.join(os.path.dirname(__file__), 'templates/index.html') self.response.out.write(template.render(path, template_values))
def get(self): nick = self.request.get('nick') template_values = { 'title': 'Projects', } validuser = False pd = '' if nick is None or nick == '': ### Session verification code ### session = get_current_session() try: validuser = True user = User.get(session['key']) template_values['logged'] = True template_values['unread'] = UnreadMessages(session['key']) except KeyError: validuser = False logging.error('-1') projectdefaults = Setting.all().filter("name =", 'project_default').run() pd = '/?exception=NoVariableNorSession' for projectdefault in projectdefaults: pd = projectdefault.value logging.error(pd) self.redirect(pd) ################################# else: validuser = False for user in User.all().filter("nick =", nick).run(limit=1): validuser = True if validuser: projects = Project.all().filter("user ="******"-date").run() active = [] completed = [] dropped = [] for project in projects: if project.status == 0: active.append(project) elif project.status == 1: completed.append(project) elif project.status == -1: dropped.append(project) template_values['projects'] = True template_values['active'] = active template_values['completed'] = completed template_values['dropped'] = dropped path = os.path.join(os.path.dirname(__file__), 'templates/projects.html') self.response.out.write(template.render(path, template_values)) elif pd != '': self.redirect(pd) else: self.redirect('/?exception=InvalidUser')
def get(self): nick = self.request.get('nick') validuser = False pins = None template_values = { 'pagename': 'wall', } if nick is not None and nick != '': userQ = User.all().filter("nick =", nick).run(limit=1) for user in userQ: validuser = True pins = Pin.all().filter("user ="******"-date").run(limit=50) try: session = get_current_session() if session['key'] and session['key'] != '': unread = UnreadMessages(session['key']) template_values['logged'] = True template_values['unread'] = unread validuser = True if pins is None: pins = Pin.all().filter("user ="******"-date").run(limit=50) except KeyError: logging.error('Key error getting session. No session opened. PASS.') if validuser: template_values['pins'] = pins path = os.path.join(os.path.dirname(__file__), 'templates/wall.html') self.response.out.write(template.render(path, template_values)) else: #logging.error('User ' + nick + ' not found. EXIT.') #self.redirect('/?exception=NickNotFound') walldefaults = Setting.all().filter("name =", 'wall_default').run() wd = '/?exception=NoVariableNorSession' for walldefault in walldefaults: wd = walldefault.value self.redirect(wd)
def __init__(self): self.regstatus = False regstatusesQ = Setting.all().filter("name =", 'register').filter("value =", 'enabled').run() for regstatuses in regstatusesQ: self.regstatus = True
def get(self): puser = self.request.get('user') action = self.request.get('action') self.response.headers['Content-Type'] = 'application/json' if puser is not None and puser != '': try: user = User.get(puser) if action == 'gamelist': bogeyslist = [] gameslist = [] playerslist = [] gamesdetails = [] returndict = {'user': {'nick': user.nick, 'avatar': user.avatar, 'fname': user.fname, 'lname': user.lname}} bogeys = Monster.all().filter("user ="******"monster IN", bogeyslist).run() for player in players: playerslist.append(player.key()) gameslist.append(player.game) for game in gameslist: ggame = Game.get(game) gamedict = {'name': ggame.name, 'owner': ggame.owner, 'status': ggame.status, 'date': ggame.date} playerslist = [] gplayers = Player.all().filter("game =", game).run() for gplayer in gplayers: gmonster = Monster.get(gplayer.monster) guser = User.get(gmonster.user) playerdict = {'nick': user.nick, 'avatar': user.avatar, 'fname': user.fname, 'lname': user.lname, 'monster': {'name': gmonster.name, 'date': gmonster.date}} playerslist.append(playerdict) gamedict['players'] = playerslist gameslist.append(gamedict) returndict['games'] = gameslist self.response.out.write(json.dumps(returndict)) elif action == 'newmonster': monsterlimit = 3 smonsterlimits = Setting.all().filter("name =", 'monster_limit').run(limit=1) for smonsterlimit in smonsterlimits: monsterlimit = smonsterlimit.value monsterlist = [] gmonsters = Monster.all().filter("user ="******"user ="******"name =", 'game_limit').run(limit=1) for sgamelimit in sgamelimits: gamelimit = sgamelimit.value gamelist = [] monsterlist = [] gmonsters = Monster.all().filter("user ="******"monster in", monsterlist).run() for gplayer in gplayers: game = Game.get(gplayer.game) gamedict = game.name gamelist.append(gamedict) if len(gamelist) < gamelimit: pname = self.request.get('name') if pname is not None and pname != '': if pname not in gamelist: size = self.request.get('size').split('x') if len(size) == 2: pmonster = self.request.get('monster') if pmonster is not None and pmonster != '': monster = Monster.get(pmonster) if monster.user == puser: newgame = Game() newgame.name = pname newgame.owner = puser newgame.status = 0 newgame.put() board = Board() board.game = str(newgame.key()) #size = int(size) sizeblob = [] for val in size: val = int(val) sizeblob.append(val) board.size = json.dumps(sizeblob) board.put() newplayer = Player() newplayer.game = str(newgame.key()) newplayer.monster = pmonster newplayer.position = json.dumps([randnum(sizeblob[0]), randnum(sizeblob[1])]) logging.info('position: ' + str(json.loads(newplayer.position))) newplayer.put() self.response.out.write(json.dumps({'status': 1, 'message': 'Game ' + pname + ' successfully created.'})) else: self.response.out.write(json.dumps({'status': -9, 'message': 'Invalid combo monster/user.'})) else: self.response.out.write(json.dumps({'status': -8, 'message': 'Missing parameter monster.'})) else: self.response.out.write(json.dumps({'status': -7, 'message': 'Wrong size value, not in range'})) else: self.response.out.write(json.dumps({'status': -6, 'message': 'The user already is in a game called ' + pname + '.'})) else: self.response.out.write(json.dumps({'status': -4, 'message': 'Missing parameter for game creation'})) else: self.response.out.write(json.dumps({'status': -5, 'message': 'Game limit of ' + str(gamelimit) + ' reached for user'})) elif action == 'joingame': ggame = self.request.get('game') gmonster = self.request.get('monster') if ggame is None or ggame == '' or gmonster is None or gmonster == '': self.response.out.write(json.dumps({'status': -10, 'message': 'Missing mandatory parameter(s).'})) else: game = Game.get(ggame) monster = Monster.get(gmonster) if monster.user == puser: monsterlist = [] playermonsters = Monster.all().filter("user ="******"monster in", monsterlist).run(): gamelist.append(playergame.game) if ggame not in gamelist: ingame = False gplayers = Player.all().filter("monster =", gmonster).run(limit=1) for gplayer in gplayers: ingame = True if not ingame: gamelimit = 4 if game.slots != None: gamelimit = game.slots gameplayerlist = [] gameplayers = Player.all().filter("game =", ggame).run(limit=gamelimit) for gameplayer in gameplayers: gameplayerlist.append(gameplayer.monster) if len(gameplayerlist) < gamelimit: player = Player() player.game = ggame player.put() self.response.out.write(json.dumps({'status': 1, 'message': 'Successfully joined game ' + game.name + '.'})) else: self.response.out.write(json.dumps({'status': -12, 'message': 'No open slots left for game ' + ggame + '.'})) else: self.response.out.write(json.dumps({'status': -13, 'message': 'Player already in game ' + ggame + '.'})) else: self.response.out.write(json.dumps({'status': -11, 'message': 'Monster already in a game.'})) else: self.response.out.write(json.dumps({'status': -9, 'message': 'Invalid combo monster/user.'})) elif action == 'modifygame': #Modify/delete game if the owner is requesting and if it has no player but the owner logging.info('action: ' + action) method = self.request.get('method') if method == 'm': logging.info('method: ' + method) elif method == 'd': logging.info('method: ' + method) else: self.response.out.write(json.dumps({'status': -14, 'message': 'Invalid method "' + method + '" for action ' + action + '.'})) elif action == 'modifymonster': #Modify/delete a monster if the owner is requesting it and if the monster is not in a started game logging.info('action: ' + action) method = self.request.get('method') if method == 'm': logging.info('method: ' + method) elif method == 'd': logging.info('method: ' + method) else: self.response.out.write(json.dumps({'status': -14, 'message': 'Invalid method "' + method + '" for action ' + action + '.'})) else: self.response.out.write(json.dumps({'status': -3, 'message': 'Invalid action parameter'})) except db.BadKeyError: self.response.out.write(json.dumps({'status': -2, 'message': 'Invalid key'})) else: self.response.out.write(json.dumps({'status': -1, 'message': 'Wrong user parameter'}))
def get(self): nick = self.request.get('nick') page = self.request.get('page') template_values = { 'title': 'Blog', } validuser = False # If a nick value is not given, assuming a user is logged, using his key to get entries bd = '' if nick is None or nick == '': ### Session verification code ### session = get_current_session() try: logging.error('1') validuser = True user = User.get(session['key']) template_values['logged'] = True template_values['unread'] = UnreadMessages(session['key']) except KeyError: validuser = False logging.error('-1') blogdefaults = Setting.all().filter("name =", 'blog_default').run() bd = '/?exception=NoVariableNorSession' for blogdefault in blogdefaults: bd = blogdefault.value logging.error(bd) self.redirect(bd) ################################# # If a nick is specified in a variable, get the user's entries else: logging.error('2') validuser = False for user in User.all().filter("nick =", nick).run(limit=1): validuser = True if validuser: ref = self.request.get('ref') batchsize = self.request.get('batchsize') if ref is not None and ref != '': pagesref = Entry.all().filter("user ="******"-date").run() countentry = 0 for pageref in pagesref: if pageref.key().id() != int(ref): countentry += 1 else: break if batchsize is None or batchsize == '': batchsize = 5 else: batchsize = int(batchsize) entdiv = countentry / batchsize floatdiv = countentry % batchsize logging.warning(str(countentry) + " - " + str(entdiv) + " - " + str(floatdiv)) if floatdiv > 0: entdiv += 1 self.redirect("/blog?page=" + str(entdiv) + "#" + ref) # Try to get page number and batch size from given parameters to determine which entries to show. Default [0:5] if page is None or page == '' or page == '0': page = 1 else: page = int(page) if batchsize is None or batchsize == '': batchsize = 5 else: batchsize = int(batchsize) offset = (int(page) - 1) * batchsize # Get entries and for each one, get the corresponding pictures, build a dictionary with attributes both from Entry and EntryBlob, and add it to a list of entries entries = Entry.all().filter("user ="******"-date").run(offset=offset,limit=batchsize) entrieslist = [] for entry in entries: entrydict = {'id': str(entry.key().id()), 'key': str(entry.key()), 'title': entry.title, 'body': entry.body, 'shortdesc': entry.body[0:297] + '...', 'date': str(entry.date).split('.')[0], 'author': user.nick} blobslist = [] entryblob = EntryBlob.all().filter("entry =", str(entry.key())).run() for blob in entryblob: blobslist.append({'key': str(blob.key()), 'blob': blob.blob, 'position': blob.position}) entrydict['blobs'] = blobslist sharedpics = EntryBlob.all().filter("entry =", str(entry.key())).run(limit=1) for pic in sharedpics: sharedpic = {'key': str(pic.key()), 'blob': pic.blob} entrydict['sharedpic'] = sharedpic tags = "" taggedQ = Tagged.all().filter("entitykey =", str(entry.key())).run() for tagged in taggedQ: tag = Tag.get(tagged.tagkey) if tags == "": tags += tag.tag else: tags += ", " + tag.tag if len(tags) > 0: entrydict['tags'] = tags logging.info('Tags: ' + tags) entrieslist.append(entrydict) template_values['entries'] = entrieslist path = os.path.join(os.path.dirname(__file__), 'templates/blog.html') self.response.out.write(template.render(path, template_values)) elif bd != '': self.redirect(bd) else: self.redirect('/?exception=InvalidUser')