Пример #1
0
    def post(self):
        game_key = self.request.get('g')

        if game_key:
            game = Game.get(game_key)

            if game:
                user = None
                self.sess = session.Session('enginesession')
                if self.sess.load():
                    user = UserDB().getUserByKey(self.sess.user)

                users_by_game = UsersInGame.all()
                users_by_game.filter("game =", game)
                users_by_game.filter("user !=", user.key())

                results = users_by_game.fetch(30)

                messageRaw = {
                    "type": "finish",
                    "content": {
                        "fin": True,
                        "word": game.palabra.palabra,
                    }
                }
                message = json.dumps(messageRaw)

                for r in results:
                    channel.send_message(str(r.key()), message)
Пример #2
0
	def post(self):
		template_values = {}
		self.sess = session.Session('enginesession')

		userCtrl = UserDB()
		users = userCtrl.getUsersQuery(self.request.get('user'),self.request.get('pass'))
		
		if users.count() == 1:
			expires = 7200			
			if self.sess.load():
				self.sess.store('', 0)
			self.sess.store(str(users.get().key()), expires)
			self.redirect('/')
		else:
			# Extraemos el usuario de la sesion 
			if self.sess.load():
				user = UserDB().getUserByKey(self.sess.user)
				template_values['user'] = user
			
			template_values['errorMsg'] = {
				"title": "Ocurrió un error al intenficar al usuario.",
				"text": "No existe el usuario o la contraseña no es correcta."
			}

			path = os.path.join(os.path.dirname(__file__), 'login.html')
			self.response.out.write(template.render(path, template_values))
Пример #3
0
	def post(self):
		game_key = self.request.get('g')
		if game_key:
			game = Game.get(game_key)
			
			if game:				
				user = None
				self.sess = session.Session('enginesession')
				if self.sess.load():
					user = UserDB().getUserByKey(self.sess.user)
				
					if user.key() == game.dibujante.key(): 
						users_by_game = UsersInGame.all()
						users_by_game.filter("game =", game)
						users_by_game.filter("user !=", user.key())

						results = users_by_game.fetch(30)

						messageRaw = {
						"type": "draw", 
						"content": {
							"data": cgi.escape(self.request.get('d'))						
							},
							"drawer": str(game.dibujante.key())
						}				
						message = json.dumps(messageRaw)
						
						for r in results:		
							channel.send_message(str(r.key()), message)
Пример #4
0
    def post(self):
        game_key = self.request.get('g')
        if game_key:
            game = Game.get(game_key)

            if game:
                user = None
                self.sess = session.Session('enginesession')
                if self.sess.load():
                    user = UserDB().getUserByKey(self.sess.user)

                    if user.key() == game.dibujante.key():
                        users_by_game = UsersInGame.all()
                        users_by_game.filter("game =", game)
                        users_by_game.filter("user !=", user.key())

                        results = users_by_game.fetch(30)

                        messageRaw = {
                            "type": "draw",
                            "content": {
                                "data": cgi.escape(self.request.get('d'))
                            },
                            "drawer": str(game.dibujante.key())
                        }
                        message = json.dumps(messageRaw)

                        for r in results:
                            channel.send_message(str(r.key()), message)
Пример #5
0
	def post(self):
		game_key = self.request.get('g')

		if game_key:
			game = Game.get(game_key)
			
			if game:				
				user = None
				self.sess = session.Session('enginesession')
				if self.sess.load():
					user = UserDB().getUserByKey(self.sess.user)
				
				users_by_game = UsersInGame.all()
				users_by_game.filter("game =", game)
				users_by_game.filter("user !=", user.key())

				results = users_by_game.fetch(30)

				messageRaw = {
				"type": "finish", 
				"content": {
					"fin": True,
					"word": game.palabra.palabra,											
					}
				}				
				message = json.dumps(messageRaw)
				
				for r in results:		
					channel.send_message(str(r.key()), message)
Пример #6
0
    def post(self):
        game_key = self.request.get('g')
        if game_key:
            game = Game.get(game_key)

            if game:
                user = None
                self.sess = session.Session('enginesession')
                if self.sess.load():
                    user = UserDB().getUserByKey(self.sess.user)

                users_by_game = UsersInGame.all()
                users_by_game.filter("game =", game)

                results = users_by_game.fetch(30)

                messageRaw = None
                if game.palabra.palabra.lower() == cgi.escape(
                        self.request.get('d')).lower():
                    if user.key() != game.dibujante.key():
                        ptosUser = UsersInGameDB().scoreUp(user, 30)
                        ptosDib = UsersInGameDB().scoreUp(game.dibujante, 20)
                        messageRaw = {
                            "type": "winner",
                            "content": {
                                "userKey": str(user.key()),
                                "userDibKey": str(game.dibujante.key()),
                                "user": user.nick,
                                "word": game.palabra.palabra,
                                "ptosUser": ptosUser,
                                "ptosDib": ptosDib,
                            }
                        }
                    else:
                        messageRaw = {
                            "type": "chat",
                            "content": {
                                "userKey": str(user.key()),
                                "messaje": "#########",
                                "user": user.nick
                            }
                        }
                else:
                    messageRaw = {
                        "type": "chat",
                        "content": {
                            "messaje": cgi.escape(self.request.get('d')),
                            "user": user.nick
                        }
                    }
                message = json.dumps(messageRaw)

                for r in results:
                    channel.send_message(str(r.key()), message)
Пример #7
0
	def get(self):
		user = UserDB();

		# user.AddUser("neo", "gato", "*****@*****.**")

		r = user.getUserByNick(self.request.get('nick')) # /?nick=
		if (r):
			self.response.out.write(r[0].nick + "<br>");
			self.response.out.write(r[0].password + "<br>");
			self.response.out.write(r[0].email + "<br>");
		else:
			self.response.out.write("No se encontraron usuarios con ese nick");
Пример #8
0
	def post(self):
		game_key = self.request.get('g')
		if game_key:
			game = Game.get(game_key)
			
			if game:				
				user = None
				self.sess = session.Session('enginesession')
				if self.sess.load():
					user = UserDB().getUserByKey(self.sess.user)
				
				users_by_game = UsersInGame.all()
				users_by_game.filter("game =", game)

				results = users_by_game.fetch(30)
				
				messageRaw = None
				if game.palabra.palabra.lower() == cgi.escape(self.request.get('d')).lower(): 
					if user.key() != game.dibujante.key():
						ptosUser = UsersInGameDB().scoreUp(user, 30)
						ptosDib = UsersInGameDB().scoreUp(game.dibujante, 20)
						messageRaw = {
						"type": "winner", 
						"content": {
							"userKey": str(user.key()),
							"userDibKey": str(game.dibujante.key()),
							"user": user.nick,
							"word": game.palabra.palabra,
							"ptosUser": ptosUser,
							"ptosDib": ptosDib,
							}
						}
					else:
						messageRaw = {
						"type": "chat", 
						"content": {
							"userKey": str(user.key()),
							"messaje": "#########",
							"user": user.nick							
							}
						}						
				else:
					messageRaw = {
					"type": "chat", 
					"content": {
						"messaje": cgi.escape(self.request.get('d')),
						"user": user.nick							
						}
					}				
				message = json.dumps(messageRaw)
				
				for r in results:		
					channel.send_message(str(r.key()), message)
Пример #9
0
    def get(self):
        user = UserDB()

        # user.AddUser("neo", "gato", "*****@*****.**")

        r = user.getUserByNick(self.request.get('nick'))  # /?nick=
        if (r):
            self.response.out.write(r[0].nick + "<br>")
            self.response.out.write(r[0].password + "<br>")
            self.response.out.write(r[0].email + "<br>")
        else:
            self.response.out.write("No se encontraron usuarios con ese nick")
Пример #10
0
	def post(self):
		template_values = {}				
		self.sess = session.Session('enginesession')
		if self.sess.load():
			userSesion = UserDB().getUserByKey(self.sess.user)
			mensaje = MensajesDB()
			mensaje.Send(userSesion.nick, cgi.escape(self.request.get('receptor')), cgi.escape(self.request.get('texto')))
			self.redirect('/perfil');
Пример #11
0
	def get(self):
		self.sess = session.Session('enginesession')
		if self.sess.load():
			user = UserDB().getUserByKey(self.sess.user)
			self.response.out.write("Nombre de usuario: " + user.nick)
			self.response.out.write("<br/> E-mail: " + user.email)
			
		else:
			self.response.out.write("No login")
Пример #12
0
    def get(self):

        # Extraemos el usuario de la sesion
        self.sess = session.Session('enginesession')
        if self.sess.load():
            user = UserDB().getUserByKey(self.sess.user)

            l = LogrosConseguidosDB()
            l.NuevoLogroConseguido(
                'ag9kZXZ-aXMxMnByb2plY3RyDAsSBkxvZ3JvcxgODA', user)
Пример #13
0
 def get(self):
     # Extraemos el usuario de la sesion
     self.sess = session.Session('enginesession')
     if self.sess.load():
         user = UserDB().getUserByKey(self.sess.user)
         m = Mensaje.all()
         m.filter("receptor =", user.nick)
         m.filter("visto =", False)
         res = m.count()
         self.response.out.write(res)
Пример #14
0
	def get(self):
		template_values = {}		
		user = None
		userProfile = None
		listaPartidas = None
		listaAmigos = None
		listaPeticiones = None
		listaUsers = None
		listaMensajes = None
		isAmigo = False;
		
		self.sess = session.Session('enginesession')
		if self.sess.load():
			user = UserDB().getUserByKey(self.sess.user)
			template_values['user'] = user
			
			userProfile = user
			listaAmigos = AmigosDB().ObtenerAmigos(userProfile)
			listaPeticiones = AmigosDB().ObtenerPeticiones(userProfile)
			listaUsers = UserDB().getAll()
			listaMensajes = MensajesDB().Get()
			if self.request.get('user'):
				if self.request.get('amistad'):
					amigoObjetivo = UserDB().getUserByNick(cgi.escape(self.request.get('user')))
					AmigosDB().PedirAmistad(amigoObjetivo, userProfile)
					self.redirect('/perfil')
				if self.request.get('aceptar'):
					amigo = UserDB().getUserByNick(cgi.escape(self.request.get('aceptar')))
					AmigosDB().AceptarAmistad(user, amigo)
					self.redirect('/perfil')
				if self.request.get('denegar'):
					amigo = UserDB().getUserByNick(cgi.escape(self.request.get('denegar')))
					AmigosDB().DenegarAmistad(user, amigo)
					self.redirect('/perfil')
				if self.request.get('eliminar'):
					amigo = UserDB().getUserByNick(cgi.escape(self.request.get('eliminar')))
					AmigosDB().EliminarAmistad(user, amigo)
					self.redirect('/perfil')
		
		if self.request.get('user'):
			userProfile = UserDB().getUserByNick(cgi.escape(self.request.get('user')))
			if self.sess.load():
				isAmigo = AmigosDB().isAmigo(user, self.request.get('user'))
		
		listaPartidas = PartidasJugadasDB().ObtenerLista(userProfile)	
		if userProfile:
			template_values['userProfile'] = userProfile
			template_values['listaPartidas'] = listaPartidas
			template_values['listaAmigos'] = listaAmigos
			template_values['listaPeticiones'] = listaPeticiones
			template_values['isAmigo'] = isAmigo
			template_values['listaUsers'] = listaUsers
			template_values['listaMensajes'] = listaMensajes
			path = os.path.join(os.path.dirname(__file__), 'perfil.html')
			self.response.out.write(template.render(path, template_values))
		else:
			self.redirect('/')
Пример #15
0
	def get(self):
			template_values = {}
			
			# Extraemos el usuario de la sesion 
			self.sess = session.Session('enginesession')
			if self.sess.load():
				user = UserDB().getUserByKey(self.sess.user)
				template_values['user'] = user
				self.redirect('/')
			path = os.path.join(os.path.dirname(__file__), 'registro.html')
			self.response.out.write(template.render(path, template_values))
Пример #16
0
	def get(self):
		self.sess = session.Session('enginesession')
		if self.sess.load():
			user = UserDB().getUserByKey(self.sess.user)
			if user.idSala!="None":
				numUsers = UserDB().getUsersBySala(user.idSala)
				res = numUsers.count()
				#Si no queda nadie en la sala la eliminamos
				if res == 1:
					SalasDB().deleteSala(user.idSala)
					GameDB().deleteGame(user.idSala)
				user2 = UserDB().getUserByNick(user.nick)
				UsersInGameDB().deleteUserInGame(user2)
				user.idSala="None"
				user.put()
			self.sess.store('', 0)
		self.redirect('/')
Пример #17
0
	def post(self):
		self.sess = session.Session('enginesession')
		if self.sess.load():
			user = UserDB().getUserByKey(self.sess.user)
			if self.request.get('nombre'): #!="" and SalasDB().getSalaByAutor(user.nick)=="":
				partyPass=None
				tipo=None
				puntos = 0
				numPlayers = 0
				#Creamos una nueva sala	
				salas=SalasDB()			
				nombre=self.request.get('nombre')
				autor=user.nick
				if self.request.get('password'):
					partyPass = self.request.get('password')
				if self.request.get('tipo') == "Puntos":
					tipo = "Puntos"
					puntos = int(self.request.get('puntos'))
				else:
					tipo="Rondas"
					
				tematica = self.request.get('tema')
				numPlayers = self.request.get('players')
				
				salas.AddSala(nombre, autor, tipo, puntos, partyPass, tematica, numPlayers)
				#Insertamos al usuario que creo la sala en esta
				miSala=SalasDB().getSalaByAutor(user.nick)
				user.idSala=miSala[0].idSala
				user.put()
				#Creamos el juego
				game = GameDB()
				miJuego = game.AddGame(user.idSala, user)
				#Metemos al usuario en el juego
				userGame = UsersInGameDB()
				userGame.AddUserInGame(user, miJuego)
				#Redireccionamos al usuario
				self.redirect("/salas?p=1")
			else:
				self.redirect("/salas?p=1")
		else:
			self.redirect("/salas?p=1")
Пример #18
0
    def get(self):
        # Extraemos el usuario de la sesion
        self.sess = session.Session('enginesession')
        if self.sess.load():
            user = UserDB().getUserByKey(self.sess.user)

            keyMsg = self.request.get('keymsg')

            m = Mensaje.get(keyMsg)
            if m.receptor == user.nick and m.visto == False:
                m.visto = True
                m.put()
                self.response.out.write("ok")
Пример #19
0
	def post(self):
				
		userCtrl = UserDB()
		user = userCtrl.getUserByNick(cgi.escape(self.request.get('user')))
		
		error = False;
		errorMsg = "";
		if(self.request.get('user') == ""):
			error = True
			errorMsg += "El campo usuario no puede estar vacio."
		else:			
			if(user):
				error = True
				errorMsg += "El nombre de usuario ya existe."
			else:
				contra = self.request.get('contra')
				contra2 = self.request.get('contra2')
				if(contra == "" or contra2 == ""):
					error = True
					errorMsg += "Los campos de contraseña no pueden estar vacios."
				else:
					if(contra != contra2):
						error = True
						errorMsg += "Los campos de contraseña no son iguales."
					else:
						mail = self.request.get('mail')
						if(mail == ""):
							error = True
							errorMsg += "El campo de email no puede estar vacio."
						else:
							mail = userCtrl.getUserByMail(cgi.escape(self.request.get('mail')))
							
							if(mail):		
								error = True
								errorMsg += "La direccion de correo ya esta siendo utilizada por otro usuario."
		
		if error == True:			
			template_values = {}
		
			# Extraemos el usuario de la sesion 
			self.sess = session.Session('enginesession')
			if self.sess.load():
				user = UserDB().getUserByKey(self.sess.user)
				template_values['user'] = user
			
			template_values['errorMsg'] = {
				"title": "Ocurrió un error al completar el registro.",
				"text": errorMsg
			}
			
			path = os.path.join(os.path.dirname(__file__), 'registro.html')
			self.response.out.write(template.render(path, template_values))

		else:				
			keyUser = userCtrl.AddUser(cgi.escape(self.request.get('user')), cgi.escape(self.request.get('contra')), cgi.escape(self.request.get('mail')))									
			l = LogrosConseguidosDB()
			l.NuevoLogroConseguido('ag9kZXZ-aXMxMnByb2plY3RyDAsSBkxvZ3JvcxgPDA', User.get(keyUser))
			
			self.redirect('/?a=0')							
Пример #20
0
    def post(self):
        template_values = {}

        # Extraemos el usuario de la sesion
        self.sess = session.Session('enginesession')
        if self.sess.load():
            user = UserDB().getUserByKey(self.sess.user)
            template_values['user'] = user

        # Recogemos la palabra y el tema
        palabra = self.request.get('palabra')
        tema = self.request.get('tema')

        # Recogemos el titular y el cuerpo de la noticia
        titular = self.request.get('titular')
        cuerpo = self.request.get('cuerpo')

        if not palabra and not tema:  #Comprobar que no se ha insertado ninguna noticia
            if not titular and not cuerpo:
                template_values['errorMsg'] = {
                    "title":
                    "Ocurrió un error al insertar la palabra y/o noticia.",
                    "text":
                    "Se debe introducir o una noticia o una palabra, rellenando todos sus campos."
                }
            else:
                NoticiasDB().AddNoticia(titular, cuerpo)
                template_values['successMsg'] = {
                    "title": "Noticia añadida.",
                    "text": "La noticia se ha añadido correctamente."
                }
        else:
            if not titular and not cuerpo:  #Sólo se inserta la palabra
                PalabrasDB().AddPalabra(palabra, tema)
                template_values['successMsg'] = {
                    "title": "Palabra añadida.",
                    "text": "La palabra se ha añadido correctamente."
                }
            else:  #Se insertan ambos
                PalabrasDB().AddPalabra(palabra, tema)
                NoticiasDB().AddNoticia(titular, cuerpo)
                template_values['successMsg'] = {
                    "title": "Palabra y noticia añadidas.",
                    "text":
                    "La palabra y la noticia se han añadido correctamente."
                }

        path = os.path.join(os.path.dirname(__file__), 'administracion.html')
        self.response.out.write(template.render(path, template_values))
Пример #21
0
	def post(self):
		game_key = self.request.get('g')		
		if game_key:
			sala = SalasDB().getSalaById(game_key)
			if sala:
				user = None
				self.sess = session.Session('enginesession')
				if self.sess.load():
					user = UserDB().getUserByKey(self.sess.user)
				
				users = UserDB()
				user_list = users.getUsersBySala(sala.idSala)
				
				messageRaw = {
					"type": "chat", 
					"content": {
						"messaje": cgi.escape(self.request.get('d')),
						"user": user.nick							
						}
					}				
				message = json.dumps(messageRaw)
				
				for r in user_list:	
					channel.send_message(str(r.key()), message);
Пример #22
0
    def get(self):
        template_values = {}
        self.sess = session.Session('enginesession')

        listaNoticias = NoticiasDB().getNoticias()

        template_values['listaNoticias'] = listaNoticias
        if self.sess.load():
            user = UserDB().getUserByKey(self.sess.user)
            template_values['user'] = user

        if self.request.get('a') == "0":
            template_values['successMsg'] = {
                "title":
                "Registro completado.",
                "text":
                "¡Bienvenido! Ya puedes identificarte desde el formulario de login y empezar a jugar."
            }

        path = os.path.join(os.path.dirname(__file__), 'index.html')
        self.response.out.write(template.render(path, template_values))
Пример #23
0
    def get(self):
        # Extraemos el usuario de la sesion
        self.sess = session.Session('enginesession')
        if self.sess.load():
            user = UserDB().getUserByKey(self.sess.user)

            lController = LogrosConseguidos.all()
            lController.filter("usuario =", user)
            lController.filter("mostrado =", False)
            res = lController.fetch(100)

            arrayLogros = []
            for r in res:
                datosLogros = {
                    'name': r.logro.nombre,
                    'desc': r.logro.descripcion,
                    'image': r.logro.imagen
                }
                arrayLogros.append(datosLogros)
                r.mostrado = True
                r.put()

            message = json.dumps(arrayLogros)
            self.response.out.write(message)
Пример #24
0
	def get(self):
		self.sess = session.Session('enginesession')
		if self.sess.load():
			template_values = {}
			users=UserDB()
			user = users.getUserByKey(self.sess.user)
			template_values['user'] = user
			
			#Si el usuario le da al boton de salir, eliminamos su asociacion con la sala
			if self.request.get('e', default_value='0')!='0':
				#Le decimos al resto de jugadores que se ha ido
				game_key = user.idSala
				if game_key:
					sala = SalasDB().getSalaById(game_key)
					if sala:
						user = None
						self.sess = session.Session('enginesession')
						if self.sess.load():
							user = UserDB().getUserByKey(self.sess.user)
						
							users = UserDB()
							user_list = users.getUsersBySala(sala.idSala)
							if UserDB().userExistsInSala(sala.idSala, user.nick):
									messageRaw = {
										"type": "salaExit", 
										"content": {
											"userKey": str(user.key()),
											"userNick": user.nick							
											}
										}				
									message = json.dumps(messageRaw)
									
									for r in user_list:	
										channel.send_message(str(r.key()), message);
				#Eliminamos al usuario de la sala
				user2 = UserDB().getUserByNick(user.nick)
				UsersInGameDB().deleteUserInGame(user2)
				numUsers = UserDB().getUsersBySala(user.idSala)
				res = numUsers.count()
				#Si no queda nadie en la sala la eliminamos ademas del juego
				if res == 1:
					SalasDB().deleteSala(user.idSala)
					GameDB().deleteGame(user.idSala)
				#Asignamos none a la sala del usuario
				user.idSala="None"
				user.put()			
				
				#Redirigimos al inicio
				self.redirect('/')
			
			
			#Comprobamos si la sala existe
			sala = SalasDB().getSalaById(self.request.get('id'))
			if sala:
				#Actualizamos la vista del resto de usuarios
				game_key = sala.idSala
				if game_key:
					sala = SalasDB().getSalaById(game_key)
					if sala:
						user = None
						self.sess = session.Session('enginesession')
						if self.sess.load():
							user = UserDB().getUserByKey(self.sess.user)
						
							users = UserDB()
							user_list = users.getUsersBySala(sala.idSala)
							if not UserDB().userExistsInSala(sala.idSala, user.nick):
									if user.avatar:
										messageRaw = {
											"type": "sala", 
											"content": {
												"userKey": str(user.key()),
												"userNick": user.nick,
												"userAvatar": 1
												}
											}
									else:
										messageRaw = {
											"type": "sala", 
											"content": {
												"userKey": str(user.key()),
												"userNick": user.nick,
												"userAvatar": 0
												}
											}										
									message = json.dumps(messageRaw)
									
									for r in user_list:	
										channel.send_message(str(r.key()), message);
							
				#Si el usuario aun no esta asociado a las sala lo asociamos
				if user and user.idSala=="None" and UsersInGameDB().UserExist(user)==False:
					user.idSala=self.request.get('id')
					user.put()
					idSala = self.request.get('id')
					game = GameDB().getGameBySala(idSala)
					inGame = UsersInGameDB()
					inGame.AddUserInGame(user, game)
				
				#Guardamos la partida en la lista de partidas
				miSala = SalasDB().getSalaById(self.request.get('id'))
				misPuntos = UsersInGameDB().getPuntos(user)
				PartidasJugadasDB().setPartida(user, miSala.nombre, misPuntos, False)
				#Cambiamos el estado del usuario
				UsersInGameDB().changeState(user, "sala")
				#Obtenemos el id del juego asociado a la sala
				game = GameDB().getGameBySala(self.request.get('id'))
				template_values['gamekey']=game.key()
				#Ponemos la puntuacion parcial del usuario a 0
				UsersInGameDB().scoreReset(user)
				#Listamos los usuarios en la sala
				user_list=users.getUsersBySala(self.request.get('id'))
				template_values['user_list']=user_list


				# Si el usuario identificado esta asignado al juego
				token = channel.create_channel(str(user.key()))
				template_values['token'] = token
				template_values['game_key'] = sala.idSala
					
			else:
				self.redirect('/')


			path = os.path.join(os.path.dirname(__file__), 'salajuego.html')
			self.response.out.write(template.render(path, template_values))
		else:
			self.redirect("/salas?p=1")
Пример #25
0
	def get(self):
		miPag = self.request.get('p', default_value='0')
		if miPag == '0':
			self.redirect("/salas?p=1")	
		else:
			template_values = {}
			# Extraemos el usuario de la sesion 
			self.sess = session.Session('enginesession')
			if self.sess.load():
				user = UserDB().getUserByKey(self.sess.user)
				if user:
					template_values['user'] = user
					#Si el usuario ya estaba en una sala lo redirigimos a ella
					if user.idSala!="None":
						self.redirect("/salajuego?id="+str(user.idSala))
				
			
			#Extraemos el numero de paginas que tiene el listado de salas
			numPags=0
			if SalasDB().getNumSalas()/8==0:
				numPags=1
			else:
				numPags=(SalasDB().getNumSalas()/8)+1
				
			salas=SalasDB()		
			
			if self.request.get('salaText') and self.request.get('param') != "Todas":
				parametro = self.request.get('param')
				parametro = parametro.lower()
				parametro = urllib2.unquote(parametro)
				textoBuscar = self.request.get('salaText')
				cadena= urllib2.unquote(textoBuscar)
				res=salas.ListarBusqueda(parametro, cadena)
				numPags=1
			else:
				res=salas.ListarSalas()
			#Listamos las salas que hay por acada pagina
			res2 =[]
			i=0
			if int(self.request.get('p')) <= numPags:
				for sala in res:
					if i>=(int(self.request.get('p'))-1)*8 and i<(int(self.request.get('p')))*8:
						res = UserDB().getUsersBySala(sala.idSala)
						sala.players = str(res.count())
						res2.append(sala)
						sala.put()
					i+=1
			else:
				self.redirect("/salas?p=1")
				
			#Listamos los temas de palabras
			listaT = []
			listaTemas = Palabras.all()
			for tema in listaTemas:
				if tema.tema not in listaT:
					listaT.append(tema.tema)
				
			template_values['salas_list'] = res2
			template_values['temas_list'] = listaT
			template_values['numSalas']=SalasDB().getNumSalas()
			template_values['pags']= numPags
			template_values['pag']=self.request.get('p')
			template_values['nextPage']=int(self.request.get('p'))+2
			template_values['prevPage']=int(self.request.get('p'))-2
			template_values['next']=int(self.request.get('p'))+1
			template_values['prev']=int(self.request.get('p'))-1
			path = os.path.join(os.path.dirname(__file__), 'salas.html')
			self.response.out.write(template.render(path, template_values))
Пример #26
0
	def post(self):	
		template_values = {}				
		
		userProfile = None
		listaPartidas = None
		listaAmigos = None
		listaPeticiones = None
		listaUsers = None
		listaMensajes = None
		isAmigo = False;
		self.sess = session.Session('enginesession')
		if self.sess.load():
			userSesion = UserDB().getUserByKey(self.sess.user)
			template_values['user'] = userSesion
			template_values['userProfile'] = userSesion
			user = UserDB().getUserByNick(self.request.get('user'))
			
			userProfile = userSesion
			listaAmigos = AmigosDB().ObtenerAmigos(userProfile)
			listaPeticiones = AmigosDB().ObtenerPeticiones(userProfile)	
			listaUsers = UserDB().getAll()
			listaMensajes = MensajesDB().Get()
			if user:
				if user.nick == userSesion.nick:
					mail = UserDB().getUserByMail(cgi.escape(self.request.get('mail')))		
					if mail:
						if mail.email == userSesion.email:
							#userSesion.nick = self.request.get('user');
							userSesion.password = self.request.get('contra');
							userSesion.email = self.request.get('mail');
							avatar = str(self.request.get('img'))
							if avatar <> "":	
								userSesion.avatar = db.Blob(avatar)								
							userSesion.put();
							# self.redirect('/perfil');						
						else:
							template_values['errorMsg'] = {
								"title": "Ocurrió un error al modificar el usuario.",
								"text": "La dirección de correo electrónico está siendo utilizada por otro usuario."
							}
							#Habr?a que pasar el error, pero se sale de la sesi?n
							# self.redirect('/perfil');
					else:
						#userSesion.nick = self.request.get('user');
						userSesion.password = self.request.get('contra');
						userSesion.email = self.request.get('mail');
						avatar = str(self.request.get('img')) 
						if avatar <> "":		
							userSesion.avatar = db.Blob(avatar)							
						userSesion.put();
						# self.redirect('/perfil');	
				else:
					template_values['errorMsg'] = {
						"title": "Ocurrió un error al modificar el usuario.",
						"text": "El nick está siendo utilizado por otro usuario."
					}
					#Habr?a que pasar el error, pero se sale de la sesi?n					
					# self.redirect('/perfil');
			else:
				usermail = UserDB().getUserByMail(cgi.escape(self.request.get('mail')))		
				if usermail:
					if usermail.email == userSesion.email:
						nick = UserDB().getUserByNick(self.request.get('user'))
						if nick:
							if nick.nick == userSesion.nick:
								#userSesion.nick = self.request.get('user');
								userSesion.password = self.request.get('contra');
								userSesion.email = self.request.get('mail');
								avatar = str(self.request.get('img'))
								if avatar <> "":	
									userSesion.avatar = db.Blob(avatar)									
								userSesion.put();
								#self.redirect('/perfil');						
							else:
								template_values['errorMsg'] = {
									"title": "Ocurrió un error al modificar el usuario.",
									"text": "El nick está siendo utilizado por otro usuario."
								}
								#Habr?a que pasar el error, pero se sale de la sesi?n							
								#self.redirect('/perfil');
						else:
							#userSesion.nick = self.request.get('user');
							userSesion.password = self.request.get('contra');
							userSesion.email = self.request.get('mail');
							avatar = str(self.request.get('img')) 
							if avatar <> "":						
								userSesion.avatar = db.Blob(avatar)							
							userSesion.put();
							#self.redirect('/perfil');									
					else:
						template_values['errorMsg'] = {
							"title": "Ocurrió un error al modificar el usuario.",
							"text": "La dirección de correo electrónico está siendo utilizada por otro usuario."
						}
						#Habr?a que pasar el error, pero se sale de la sesi?n						
						# self.redirect('/perfil');
				else:
					#userSesion.nick = self.request.get('user');
					userSesion.password = self.request.get('contra');
					userSesion.email = self.request.get('mail');
					avatar = self.request.str_POST['img']
					if avatar <> "":
						userSesion.avatar = db.Blob(avatar)					
					userSesion.put();
					# self.redirect('/perfil');

			template_values['userProfile'] = userProfile
			template_values['listaPartidas'] = listaPartidas
			template_values['listaAmigos'] = listaAmigos
			template_values['listaPeticiones'] = listaPeticiones
			template_values['isAmigo'] = isAmigo
			template_values['listaUsers'] = listaUsers
			template_values['listaMensajes'] = listaMensajes
			path = os.path.join(os.path.dirname(__file__), 'perfil.html')
			self.response.out.write(template.render(path, template_values))			
Пример #27
0
    def post(self):
        game_key = self.request.get('g')
        option = self.request.get('d')
        if game_key:
            game = Game.get(game_key)

            if option == "New":
                GameDB().nuevaPalabra(game)
                game = Game.get(game_key)
            else:
                GameDB().nuevaPalabra(game)
                game = Game.get(game_key)
                userAcertado = UserDB().getUserByNick(option)
                GameDB().cambiaDibujante(userAcertado.idSala, userAcertado)

            if game:
                user = None
                self.sess = session.Session('enginesession')
                if self.sess.load():
                    user = UserDB().getUserByKey(self.sess.user)
                    UsersInGameDB().changeState(user)

                idSala = GameDB().getSalaByGame(game)
                if UsersInGameDB().usersPlaying(
                        game) == UserDB().getNumUsersBySala(idSala):
                    users_by_game = UsersInGame.all()
                    users_by_game.filter("game =", game)

                    results = users_by_game.fetch(30)

                    #Comprobamos el tipo de juego
                    fin = False
                    empate = False
                    miSala = SalasDB().getSalaById(idSala)
                    if miSala.tipo == "Puntos":
                        #Comprobamos si algun jugador ha llegado a la puntuacion
                        for r in results:
                            if r.ptos >= miSala.numPuntos:
                                fin = True
                                empate = True
                    else:
                        if miSala.tipo == "Rondas":
                            na = 0

                    for r in results:
                        if fin == False:
                            if r.user.key() != game.dibujante.key():
                                messageRaw = {
                                    "type": "infoGame",
                                    "content": {
                                        "drawing": False,
                                        "word": len(game.palabra.palabra),
                                        "painter": str(game.dibujante.key())
                                    }
                                }
                            else:
                                messageRaw = {
                                    "type": "infoGame",
                                    "content": {
                                        "drawing": True,
                                        "word": game.palabra.palabra,
                                        "painter": str(game.dibujante.key())
                                    }
                                }
                        else:
                            if r.ptos >= miSala.numPuntos:
                                if empate == False:
                                    win = r.user.nick + " ha ganado la partida"
                                else:
                                    win = "Empate"
                            messageRaw = {
                                "type": "finPartida",
                                "content": {
                                    "Winner": win
                                }
                            }
                        message = json.dumps(messageRaw)
                        channel.send_message(str(r.key()), message)
Пример #28
0
    def get(self):
        template_values = {}
        user = None
        game = None

        self.sess = session.Session('enginesession')
        if self.sess.load():
            user = UserDB().getUserByKey(self.sess.user)
            template_values['user'] = user

        #path = os.path.join(os.path.dirname(__file__), 'juego.html')
        #self.response.out.write(template.render(path, template_values))

        game_key = self.request.get('gamekey')

        # Si hay usuario identificado
        if user:
            # Si tenemos una gamekey
            if game_key:
                game = Game.get(game_key)

            # Si existe un juego con esa gamekey
            if game:
                users_by_game = UsersInGame.all()
                users_by_game.filter("game =", game)
                usersPlaying = users_by_game.fetch(30)

                users_by_game.filter("user ="******"El usuario no esta asignado a este juego")

            else:
                self.response.out.write("No hay una id de juego asignada")

                #~ template_values = {'token': token,
                #~ 'me': user.key(),
                #~ 'game_key': game_key,
                #~ 'game_link': game_link,
                #~ 'initial_message': GameUpdater(game).get_game_message()
                #~ }

            #~ path = os.path.join(os.path.dirname(__file__), 'juego.html')
            #~ self.response.out.write(template.render(path, template_values))
            #~ else:
            #~ self.response.out.write('No such game')


#~
#~
        else:
            self.redirect('/login')