예제 #1
0
def creaviaje():
    datos=request.form
    token=datos["token"]
    if checkToken(token):
        id_usuario=getIdFromToken(token)
        dia=datos["dia"]
        hora=datos["hora"]
        minutos=datos["minutos"]
        horaLlegada=datos["horaLlegada"]
        minutosLlegada=datos["minutosLlegada"]
        plazas=datos["plazas"]
        precio=datos["precio"]
        detalles=datos["detalles"]
        destino=datos["destino"]
        esdevuelta=datos["esdevuelta"]
        consultaInsertarViaje="INSERT INTO `viajes` (`id_viaje`, `salida`, `llegada`, `detalles`, `id_usuario`, `plazas`, `precio`, `destino`,`EsDeVuelta`) \
        VALUES (NULL, '2016-01-"+str(dia)+" "+str(hora)+":"+str(minutos)+":00', '2016-01-"+str(dia)+" "+str(horaLlegada)+":"+str(minutosLlegada)+":00',\
         '"+str(detalles)+"', '"+str(id_usuario)+"', '"+str(plazas)+"', '"+str(precio)+"', '"+str(destino)+"',"+esdevuelta+")"
        conexionCreaViaje=conexion.conectar()
        cursorCreaViaje=conexionCreaViaje.cursor()
        cursorCreaViaje.execute(consultaInsertarViaje)
        conexionCreaViaje.commit()
        conexionCreaViaje.close()


        return {"exito":True}
    return{"Error":"Token inválido"}
예제 #2
0
def viajesFiltrados():
    datos=request.form
    dia=datos["dia"]
    hora=datos["hora"]
    minutos=datos["minutos"]
    destino=datos["destino"]
    origen=getIdPueblo(datos["origen"])#Numero indicando el id del pueblo
    margen=datos["margen"]
    vuelta=datos["EsDeVuelta"]
    consultaInsertarViaje="SELECT viajes.*,usuarios.pueblo_origen,usuarios.telefono FROM viajes INNER JOIN usuarios on viajes.id_usuario=usuarios.id_usuario where salida >= date_sub('2016-01-"+str (dia)+" "+str(hora)+":"+str(minutos)+":00',\
     INTERVAL "+margen+" MINUTE) AND salida <= date_add('2016-01-"+str (dia)+" "+str(hora)+":"+str(minutos)+":00',\
      INTERVAL "+margen+" MINUTE) AND pueblo_origen="+origen+" AND destino="+destino+" AND EsDeVuelta="+vuelta
    #print (consultaInsertarViaje)
    conexionCreaViaje=conexion.conectar()
    cursorCreaViaje=conexionCreaViaje.cursor()
    cursorCreaViaje.execute(consultaInsertarViaje)
    conexionCreaViaje.close()
    res=dict()
    for id_viaje,salida,llegada,detalles,id_usuario,plazas,precio,destino,EsDeVuelta,pueblo_origen,telefono in cursorCreaViaje:
        #salida_fecha= datetime.datetime.strptime(str(salida),"%Y-%M-%D %H:%M:%S").datetime()
        salida_fecha=salida
        salida_dia=salida_fecha.day
        salida_hora=salida_fecha.hour
        salida_minuto=salida_fecha.minute
        res[id_viaje]={"dia":salida_dia,"hora":salida_hora,"minutos":salida_minuto,"detalles":detalles,"id_usuario":id_usuario,"plazas":plazas,"precio":str(precio),"telefono":str(telefono),"EsDeVuelta":str(EsDeVuelta)}

    return res
예제 #3
0
def checkToken(token):
    consultaToken='SELECT token FROM `usuarios` WHERE `token` LIKE \''+token+'\''
    conexionToken=conexion.conectar()
    cursorToken=conexionToken.cursor()
    cursorToken.execute(consultaToken)
    conexionToken.close()
    for tok in cursorToken:
        return True
    return False
예제 #4
0
def registro():

    datos = request.form
    nombre = datos["nombre"]
    apellidos = datos["apellidos"]
    telefono = datos["telefono"]
    pueblo = datos["pueblo"]
    correo = datos["correo"]
    passwd = generate_password_hash(
        datos["password"])  # check_password_hash(pw_hash, password)
    #verificar datos aqui:
    #el pueblo existe
    errores = list()
    if (len(datos["password"]) < 6):
        errores.append("Contraseña demasiado corta")
    if (getIdPueblo(pueblo) == "ERROR"):
        errores.append("error: pueblo no existente: " + pueblo)
    #el correo es valido
    if not validate_email(
            correo):  #paranoya: verify=True revisar que el correo existe
        errores.append("error: correo no valido: " + correo)
    #el telefono es valido
    regexpTelefono = re.compile("^[9|6|7][0-9]{8}$")
    if not regexpTelefono.match(telefono):
        errores.append("error: telefono no valido: " + telefono)
    #verificar que el usuario no está registrado:
    consultaCorreoUnico = 'SELECT correo FROM `usuarios` WHERE `correo` LIKE \'' + correo + '\''
    conexionRegistro = conexion.conectar()
    cursorRegistro = conexionRegistro.cursor()
    cursorRegistro.execute(consultaCorreoUnico)
    for mail in cursorRegistro:
        errores.append("Ya existe un usuario con este correo")

    #En caso de error devolver una lista con los errores
    if (len(errores) > 0):
        return errores

    #No hace falta else: hacemos un return

    #Generar token para el usuario en caso de exito

    token = generate_password_hash("TOKEN++" + passwd + datos["password"] +
                                   correo)

    #insertar datos en la base de datos
    insertarUsuario="INSERT INTO `usuarios` (`id_usuario`, `nombre`, `apellidos`, `telefono`, `pueblo_origen`, `pass`, `correo`, `token`) VALUES (NULL, \'" +\
    nombre+"\',\'"+apellidos+"\',\'"+telefono+"\',"+getIdPueblo(pueblo)+",\'"+passwd+"\',\'"+correo+"\',\'"+token+"\');"
    #print(insertarUsuario)
    cursorRegistro.execute(insertarUsuario)
    conexionRegistro.commit()
    conexionRegistro.close()

    #devolver {"token":token}
    return {"exito": True, "token": token}
예제 #5
0
def isBanned(user_name):
    conn = conectar()
    cur = conn.cursor()

    cur.callproc('jugadorToxico', [user_name])
    result = cur.fetchone()

    cur.close()
    conn.close()

    return result[0]
예제 #6
0
def actualizar_nivel(userName):
    conn = conectar()
    cur = conn.cursor()

    cur.callproc('update_nivel', [
        userName,
    ])

    cur.close()
    conn.commit()
    conn.close()
예제 #7
0
def getIdFromToken(token):
    consultaToken='SELECT id_usuario FROM `usuarios` WHERE `token` LIKE \''+token+'\''
    conexionToken=conexion.conectar()
    #print(consultaToken)
    cursorToken=conexionToken.cursor()
    cursorToken.execute(consultaToken)
    conexionToken.close()
    res="ERROR"
    for tok in cursorToken:
        return tok[0]
    #print("TOKEN INVALIDO")
    return res
예제 #8
0
def getIdFromToken(token):
    consultaToken = 'SELECT id_usuario FROM `usuarios` WHERE `token` LIKE \'' + token + '\''
    conexionToken = conexion.conectar()
    #print(consultaToken)
    cursorToken = conexionToken.cursor()
    cursorToken.execute(consultaToken)
    conexionToken.close()
    res = "ERROR"
    for tok in cursorToken:
        return tok[0]
    #print("TOKEN INVALIDO")
    return res
예제 #9
0
def RegistrarUsuario(datosDeRegistro):
    data = datosDeRegistro
    conn = conectar()
    cur = conn.cursor()
    cur.execute(
        """
        INSERT into Jugador (nick,nombres,apellidoP,apellidoM,correo,contraseña,pais,cantReportes,ban_S_N,ultimoLogin,peleasDisponibles)
        VALUES (%s, %s, %s, %s, %s, %s, %s,0,False,current_date,5);""",
        (data[0], data[1], data[2], data[3], data[4], data[5], data[6]))
    cur.close()
    conn.commit()
    conn.close()
예제 #10
0
def registro():

    datos=request.form
    nombre=datos["nombre"]
    apellidos=datos["apellidos"]
    telefono=datos["telefono"]
    pueblo=datos["pueblo"]
    correo=datos["correo"]
    passwd= generate_password_hash(datos["password"])# check_password_hash(pw_hash, password)
    #verificar datos aqui:
    #el pueblo existe
    errores=list()
    if(len(datos["password"])<6):
        errores.append("Contraseña demasiado corta")
    if(getIdPueblo(pueblo)=="ERROR"):
        errores.append("error: pueblo no existente: "+pueblo)
    #el correo es valido
    if not validate_email(correo):#paranoya: verify=True revisar que el correo existe
        errores.append("error: correo no valido: "+correo)
    #el telefono es valido
    regexpTelefono = re.compile("^[9|6|7][0-9]{8}$")
    if not regexpTelefono.match(telefono):
        errores.append("error: telefono no valido: "+telefono)
    #verificar que el usuario no está registrado:
    consultaCorreoUnico='SELECT correo FROM `usuarios` WHERE `correo` LIKE \''+correo+'\''
    conexionRegistro=conexion.conectar()
    cursorRegistro=conexionRegistro.cursor()
    cursorRegistro.execute(consultaCorreoUnico)
    for mail in cursorRegistro:
         errores.append("Ya existe un usuario con este correo")


    #En caso de error devolver una lista con los errores
    if(len(errores)>0):
        return errores

    #No hace falta else: hacemos un return

    #Generar token para el usuario en caso de exito

    token=generate_password_hash("TOKEN++"+passwd+datos["password"]+correo)

    #insertar datos en la base de datos
    insertarUsuario="INSERT INTO `usuarios` (`id_usuario`, `nombre`, `apellidos`, `telefono`, `pueblo_origen`, `pass`, `correo`, `token`) VALUES (NULL, \'" +\
    nombre+"\',\'"+apellidos+"\',\'"+telefono+"\',"+getIdPueblo(pueblo)+",\'"+passwd+"\',\'"+correo+"\',\'"+token+"\');"
    #print(insertarUsuario)
    cursorRegistro.execute(insertarUsuario)
    conexionRegistro.commit()
    conexionRegistro.close()

    #devolver {"token":token}
    return {"exito":True,"token":token}
예제 #11
0
def banPlayer(nick):
    if (nickExiste(nick)):
        conn = conectar()
        cur = conn.cursor()
        cur.execute("UPDATE jugador SET ban_S_N = True WHERE nick = (%s) ",
                    (nick, ))
        conn.commit()
        cur.close()
        conn.close()
        return True
    else:
        cur.close()
        conn.close()
        return False
예제 #12
0
def login():
    datos=request.form
    correo=datos["correo"]
    passwd=datos["password"]
    consultaLogin='******''+correo+'\''
    conexionLogin=conexion.conectar()
    cursorLogin=conexionLogin.cursor()
    cursorLogin.execute(consultaLogin)
    for token,password in cursorLogin:
        conexionLogin.close()
        if check_password_hash(password, passwd):
            return {"token":token}
    conexionLogin.close()
    return{"Error":"Usuario o contraseña inválido"}
예제 #13
0
def top3():
    conn = conectar()
    cur = conn.cursor()
    top = []

    cur.callproc('topNiveles', [])
    result = cur.fetchall()
    for jug in result:
        top.append([jug[0], jug[1]])

    cur.close()
    conn.close()

    return top
예제 #14
0
def login():
    datos = request.form
    correo = datos["correo"]
    passwd = datos["password"]
    consultaLogin = '******'' + correo + '\''
    conexionLogin = conexion.conectar()
    cursorLogin = conexionLogin.cursor()
    cursorLogin.execute(consultaLogin)
    for token, password in cursorLogin:
        conexionLogin.close()
        if check_password_hash(password, passwd):
            return {"token": token}
    conexionLogin.close()
    return {"Error": "Usuario o contraseña inválido"}
예제 #15
0
def getAvatar(nick):
    conn = conectar()
    cur = conn.cursor()
    cur.execute("select * from avatar")
    found = False
    for avatar in cur:
        if (avatar[0] == nick):
            found = True
            atributes = [
                avatar[0], avatar[1], avatar[2], avatar[3], avatar[4],
                avatar[5]
            ]
            return atributes
    if (found == False):
        print("No se encontro al avatar")
예제 #16
0
 def __init__(self, configuracion):
     """
     Se encarga de retornar un objeto SamDB, lista a usar en la operación que querramos
     """
     self.claves = configuracion['claves']
     self.borrables = configuracion['borrables']
     self.traduccion = configuracion['traduccion']
     
     self.lp = parametros()
     
     self.sesion = conectar(self.lp)
     if (self.sesion):
         self.conexion = SamDB(session_info=self.sesion, lp=self.lp)
     else:
         raise AutenticacionException('No estás autenticado')
예제 #17
0
def subirStats(nick, stats):
    conn = conectar()
    cur = conn.cursor()
    if (stats == "velocidad"):
        cur.execute(
            "UPDATE avatar SET velocidad = velocidad+3 WHERE nick=(%s) ",
            (nick, ))
    elif stats == "ataque":
        cur.execute("UPDATE avatar SET ataque = ataque+1 WHERE nick=(%s) ",
                    (nick, ))
    else:
        cur.execute("UPDATE avatar SET vida = vida+3 WHERE nick=(%s) ",
                    (nick, ))
    conn.commit()
    cur.close()
    conn.close()
예제 #18
0
def nickExiste(nick):
    conn = conectar()
    cur = conn.cursor()
    cur.execute("SELECT nick FROM administrador ")
    existe = False
    # recorremos el cursor en la tabla de administrador
    for administrador in cur:
        if (administrador[0] == nick):
            existe = True
    #si no se encuentra ningun administrador con el nick correspondiente,
    #recorremos a los jugadores
    if (existe == False):
        cur.execute("SELECT nick FROM jugador ")
        for jugador in cur:
            if (jugador[0] == nick):
                existe = True
    return existe
예제 #19
0
def report(nick):
    conn = conectar()
    cur = conn.cursor()
    cur.execute('SELECT nick FROM jugador')
    found = False
    for jugador in cur:
        if (jugador[0] == nick):
            found = True
    if found == True:
        cur.execute(
            'UPDATE jugador SET cantreportes = cantreportes+1 WHERE nick = (%s);',
            (nick, ))
        cur.close()
        conn.commit()
        conn.close()
        return True
    else:
        cur.close()
        conn.commit()
        conn.close()
        return False
예제 #20
0
def viajesFiltrados():
    datos = request.form
    dia = datos["dia"]
    hora = datos["hora"]
    minutos = datos["minutos"]
    destino = datos["destino"]
    origen = getIdPueblo(datos["origen"])  #Numero indicando el id del pueblo
    margen = datos["margen"]
    vuelta = datos["EsDeVuelta"]
    consultaInsertarViaje = "SELECT viajes.*,usuarios.pueblo_origen,usuarios.telefono FROM viajes INNER JOIN usuarios on viajes.id_usuario=usuarios.id_usuario where salida >= date_sub('2016-01-" + str(
        dia) + " " + str(hora) + ":" + str(minutos) + ":00',\
     INTERVAL " + margen + " MINUTE) AND salida <= date_add('2016-01-" + str(
            dia) + " " + str(hora) + ":" + str(minutos) + ":00',\
      INTERVAL " + margen + " MINUTE) AND pueblo_origen=" + origen + " AND destino=" + destino + " AND EsDeVuelta=" + vuelta
    #print (consultaInsertarViaje)
    conexionCreaViaje = conexion.conectar()
    cursorCreaViaje = conexionCreaViaje.cursor()
    cursorCreaViaje.execute(consultaInsertarViaje)
    conexionCreaViaje.close()
    res = dict()
    for id_viaje, salida, llegada, detalles, id_usuario, plazas, precio, destino, EsDeVuelta, pueblo_origen, telefono in cursorCreaViaje:
        #salida_fecha= datetime.datetime.strptime(str(salida),"%Y-%M-%D %H:%M:%S").datetime()
        salida_fecha = salida
        salida_dia = salida_fecha.day
        salida_hora = salida_fecha.hour
        salida_minuto = salida_fecha.minute
        res[id_viaje] = {
            "dia": salida_dia,
            "hora": salida_hora,
            "minutos": salida_minuto,
            "detalles": detalles,
            "id_usuario": id_usuario,
            "plazas": plazas,
            "precio": str(precio),
            "telefono": str(telefono),
            "EsDeVuelta": str(EsDeVuelta)
        }

    return res
예제 #21
0
def generarAvatar(nick):
    listaDatos = []

    ataque = random.randint(1, 3)
    vida = random.randint(10, 20)
    velocidad = random.randint(1, 10)

    listaDatos.append(nick)
    listaDatos.append(ataque)
    listaDatos.append(velocidad)
    listaDatos.append(vida)
    listaDatos.append(0)

    conn = conectar()
    cur = conn.cursor()
    cur.execute(
        """
        INSERT INTO avatar (nick, ataque, velocidad, vida,ptosexp,nivel)
        VALUES (%s,%s,%s,%s,%s,1);""",
        (listaDatos[0], listaDatos[1], listaDatos[2], listaDatos[3],
         listaDatos[4]))
    cur.close()
    conn.commit()
    conn.close()
예제 #22
0
def enviar_admin():
    args = [0]
    cursor.callproc('GenerarAdministradorSucursal', args)
    cursor.execute("SELECT @_GenerarAdministradorSucursal_0;")
    res_json = '{"opcode":0, "dato":' + cursor.fetchall()[0][0] + '}'
    conexion.conectar(res_json.encode())
예제 #23
0
def enviar_promocion():
    args = [0]
    cursor.callproc('GenerarPuestoEmpleado', args)
    cursor.execute("SELECT @_GenerarPuestoEmpleado_0;")
    res_json = '{"opcode":4, "dato":' + cursor.fetchall()[0][0] + '}'
    conexion.conectar(res_json.encode())
예제 #24
0
파일: usuario.py 프로젝트: S8Vega/todo_list
import conexion
import datetime
import hashlib

cnc = conexion.conectar()
database = cnc[0]
cursor = cnc[1]


class Usuario:
    def __init__(self, nombre, apellido, email, contrasena):
        self.nombre = nombre
        self.apellido = apellido
        self.email = email
        self.contrasena = contrasena

    def cifrar(self):
        cifrado = hashlib.sha256()
        cifrado.update(self.contrasena.encode("utf8"))
        return cifrado.hexdigest()

    def registrar(self):
        sql = f"SELECT * FROM usuarios WHERE email = '{self.email}'"
        cursor.execute(sql)
        if cursor.rowcount > 1:
            print(f"el email {self.email} ya esta registrado")
            return [0, self]
        fecha = datetime.datetime.now()
        sql = "INSERT INTO usuarios VALUES(null, %s, %s, %s, %s, %s)"
        usuario = (self.nombre, self.apellido, self.email, self.cifrar(), fecha)
        try:
예제 #25
0
from flask import request, url_for
from flask.ext.api import FlaskAPI, status, exceptions
from werkzeug.security import generate_password_hash, check_password_hash
from validate_email import validate_email
import re
import conexion
import datetime
app = FlaskAPI(__name__)

cnx = conexion.conectar()

cursor = cnx.cursor()


#inicializando:
pueblos=dict()
destinos=dict()

query = ("SELECT * FROM pueblos "
         #"WHERE hire_date BETWEEN %s AND %s"
         )
cursor.execute(query)
#cursor.execute(query, (hire_start, hire_end))

for (id_pueblo, nombre_pueblo, id_provincia) in cursor:
    pueblos[id_pueblo]=nombre_pueblo
    #pueblos[id_pueblo]=(nombre_pueblo,id_provincia)

query = ("SELECT * FROM destinos"
         #"WHERE hire_date BETWEEN %s AND %s"
         )
예제 #26
0
#import usuarios.conexion as conexion
import conexion


conex = conexion.conectar()
database = conex[0]
cursor = conex[1]

class Nota:

    def __init__(self, usuario_id, titulo='', descripcion=''):
        self.usuario_id = usuario_id
        self.titulo = titulo
        self.descripcion = descripcion


    def guardar(self):
        sql = "INSERT INTO notas VALUES(null, %s, %s, %s, NOW(), 1)"
        nota = (self.usuario_id, self.titulo, self.descripcion)

        cursor.execute(sql, nota)
        database.commit()

        return [cursor.rowcount, self]


    def listar(self):
        sql = f'SELECT * FROM notas WHERE usuario_id = {self.usuario_id} AND estado=1'

        cursor.execute(sql)
        response = cursor.fetchall()
예제 #27
0
def enviar_cliente():
    args = [0]
    cursor.callproc('GenerarCliente', args)
    cursor.execute("SELECT @_GenerarCliente_0;")
    res_json = '{"opcode":1, "dato":' + cursor.fetchall()[0][0] + '}'
    conexion.conectar(res_json.encode())
예제 #28
0
import conexion

connect = conexion.conectar()
database = connect[0]
cursor = connect[1]


class Nota:
    def __init__(self, usuario_id, titulo="", descripcion="", realizada=""):
        self.usuario_id = usuario_id
        self.titulo = titulo
        self.descripcion = descripcion
        self.realizada = str(realizada)

    def guardar(self):
        sql = f"SELECT * FROM notas WHERE usuarios_id = {self.usuario_id} AND titulo LIKE '{self.titulo}'"
        cursor.execute(sql)
        if cursor.rowcount > 0:
            print(f"la nota {self.titulo} ya esta registrada")
            return [0, self]
        sql = "INSERT INTO notas VALUES(null, %s, %s, %s, NOW(), %s)"
        nota = (self.usuario_id, self.titulo, self.descripcion, self.realizada)
        cursor.execute(sql, nota)
        database.commit()
        return [cursor.rowcount, self]

    def listar(self):
        sql = f"SELECT * FROM notas WHERE usuarios_id = {self.usuario_id} ORDER BY `realizada` ASC"
        cursor.execute(sql)
        result = cursor.fetchall()
        return result
from src.extras import clean, convert_float, pause
from conexion import conectar
import pymysql as mysql
import json
import time
import random
import sys

encontradas_en_db = 0
donde = []
iguales = 0
encontradas = 0
no_encontradas = 0
conexion = conectar()
cur = conexion.cursor()
determinantes_no_encontradas = {}
""" try:
    clean()
    print('Iniciando...')
    with open('determinantes.json', 'r') as f:
        diccionario_de_determinantes = json.load(f)
    clean()
except:
    diccionario_de_determinantes = {} """


def contar_caracteres(cadena, caracter):
    contador = 0
    for i in range(len(cadena)):
        if cadena[i] == caracter:
            contador += 1
예제 #30
0
import mysql.connector
from datetime import datetime
from conexion import conectar

database, cursor = conectar()


class Usuario:

    nombre: str
    apellido: str
    email: str
    passwd: str

    def __init__(self, nombre, apellido, email, passwd):
        self.nombre = nombre
        self.apellido = apellido
        self.email = email
        self.passwd = passwd

    def crear_usuario(self):
        try:
            sql_request = f"INSERT INTO usuarios VALUES (null, '{self.nombre}', '{self.apellido}', '{self.email}', '{self.passwd}', '{datetime.now()}')"
            cursor.execute(sql_request)
            database.commit()
            return True
        except Exception as err:
            print("Error al crear el usuario. " + str(type(err).__name__) +
                  ": " + str(err))

    def buscar_usuario(self):