def agrega(self): ''' Agrega el archivo a la base ''' s = 'INSERT INTO archivos (url_archivo, id_usuario, id_grupo) VALUES(' s += str(self.url) + ', ' + str(self.id_usuario) + ', ' + str(self.id_grupo) + ')' Comandos.ejecuta_comando(s)
def registra(self,cod): ''' Registra al usuario cod: el codigo de activacion de la cuenta returns: un mensaje con el resultado del registro ''' if(cod == codigo): id_escuela = Comandos.consulta('SELECT id FROM escuela WHERE nombre=\'%s\';' % (usr.get_escuela())) id_nacionalidad = Comandos.consulta('SELECT id FROM paises WHERE pais=\'%s\';' % (usr.get_nacionalidad())) Comandos.ejecuta_comando("""INSERT INTO usuario (nombre,apellido,genero,nick_name,escuela,nacionalidad,f_nacimiento,rating,foto,password,salt) VALUES (\'%s\',\'%s\',\'%s\',\'%s\',%d,%d,\'%s\',0,\'%s\',%d,\'a\');"""%(str(usr.get_nombre()),str(usr.get_apellido()),str(usr.get_genero()),str(usr.get_nick_name()), id_escuela[0][0],id_nacionalidad[0][0],str(usr.get_f_nacimiento()),str(usr.get_foto()),hash(str(usr.get_password())))) if(usr.get_genero() == 'm'): return "Bienvenido a Subject " + usr.get_nombre() return "Bienvenida a Subject " + usr.get_nombre() else: return "No coinciden"
def actualiza_foto(self, email, archivo): size = 0 allData='' while True: data = archivo.file.read(8192) allData+=data if not data: break size += len(data) savedFile = open('tmp/'+archivo.filename, 'wb') savedFile.write(allData) savedFile.close() shutil.move('/tmp/'+archivo.filename,'home/daniel/Subject/web-server/Vista/img/fotos_perfil') os.chmod('home/daniel/Subject/web-server/Vista/img/fotos_perfil/%s'%(archivo.filename),stat.S_IRWXU) id_usuario = Comandos.consulta('SELECT id FROM usuario WHERE nick_name = \'%s\';' % (email)) Comandos.ejecuta_comando('INSERT INTO archivos (url_archivo,id_usuario,id_grupo,tipo) VALUES (\'%s\',%d,NULL,\'%s\');' % (('/static/img/fotos_perfil/%s'%(archivo.filename)),id_usuario[0][0],'imagen')) Comandos.ejecuta_comando('UPDATE usuario SET foto=\'%s\' WHERE nick_name=\'%s\';' % (('/static/img/fotos_perfil/%s'%(archivo.filename)), email))
def califica_publicacion(self,id_usuario,id_publicacion,calificacion): Comandos.ejecuta_comando('INSERT INTO likes (id_usuario,id_publicacion,calificacion) VALUES(%d,%d,%d);'%(id_usuario,id_publicacion,calificacion)) rows = Comandos.consulta('SELECT calificacion FROM likes WHERE id_publicacion = %d;'%(id_publicacion)) cal = 0.0 num_cal = 0 for row in rows: cal += row['calificacion'] num_cal += 1 calificacion_final = 0 if num_cal != 0: cal = float(cal) calificacion_final = cal/num_cal else: calificacion_final = 0 Comandos.ejecuta_comando('UPDATE publicaciones SET calificacion=%f,num_calif=%d WHERE id = %d;'%(cal,num_cal,id_publicacion)) cons = Comandos.consulta('SELECT calificacion FROM publicaciones WHERE id_usuario = %d;'%(id_usuario)) rating = 0.0 numero_publicaciones = 0 for pub in cons: rating += pub[0] numero_publicaciones += 1 rating_final = 0 if numero_publicaciones != 0: rating = float(rating) rating_final = rating/numero_publicaciones else: rating_final = 0 Comandos.ejecuta_comando('UPDATE usuario SET rating=%f WHERE id = %d;'%(rating_final,id_usuario))
def publica_como_usuario(self, contentp, materia, archivo, email): id_usuario = Comandos.consulta('SELECT id FROM usuario WHERE nick_name = \'%s\';' % (email)) id_materia = Comandos.consulta('SELECT id FROM materias WHERE materia = \'%s\';' % (materia)) fecha = time.strftime('%Y-%m-%d') hora = time.strftime('%X') if(len(archivo.filename) != 0): size = 0 allData='' while True: data = archivo.file.read(8192) allData+=data if not data: break size += len(data) savedFile = open('tmp/'+archivo.filename, 'wb') savedFile.write(allData) savedFile.close() tipo="" if(str(archivo.type) == 'application/pdf'): tipo = 'pdf' else: tipo = 'imagen' shutil.move('/tmp/'+archivo.filename,'home/daniel/Subject/web-server/Vista/img/archivos') os.chmod('home/daniel/Subject/web-server/Vista/img/archivos/%s'%(archivo.filename),stat.S_IRWXU) Comandos.ejecuta_comando('INSERT INTO archivos (url_archivo,id_usuario,id_grupo,tipo) VALUES (\'%s\',%d,NULL,\'%s\');' % (('/static/img/archivos/%s'%(archivo.filename)),id_usuario[0][0],tipo)) id_archivo = Comandos.consulta('SELECT id FROM archivos WHERE url_archivo = \'%s\';' % (('/static/img/archivos/%s'%(archivo.filename)))) Comandos.ejecuta_comando('INSERT INTO publicaciones (id_usuario,id_grupo,id_archivo,id_materia,fecha,visibilidad,contenido,hora) VALUES (%d,NULL,%d,%d,\'%s\',NULL,\'%s\',\'%s\');' %(id_usuario[0][0],id_archivo[0][0],id_materia[0][0],fecha,contentp,hora)) return Comandos.ejecuta_comando('INSERT INTO publicaciones (id_usuario,id_grupo,id_materia,fecha,visibilidad,contenido,hora,calificacion,num_calif) VALUES (%d,NULL,%d,\'%s\',NULL,\'%s\',\'%s\',0,0);' %(id_usuario[0][0],id_materia[0][0],fecha,contentp,hora)) return
def agrega(self): ''' Agrega la categoria a la base de datos. ''' s = 'INSERT INTO categoria (nombre) VALUES(' + str(self.nombre) + ')' Comandos.ejecuta_comando(s)
def comenta(self,coment,id_usr,id_publicacion): fecha = time.strftime('%Y-%m-%d') hora = time.strftime('%X') Comandos.ejecuta_comando('INSERT INTO comentarios(contenido,id_usuario,id_publicacion,fecha,hora) VALUES(\'%s\',%d,%d,\'%s\',\'%s\');'%(coment,id_usr,int(id_publicacion),fecha,hora)) id_visit = Comandos.consulta('SELECT id_usuario FROM publicaciones WHERE id = %d;' % (int(id_publicacion))) return id_visit[0][0]
def unfollow(self,email,id_seguido): id_seguidor = Comandos.consulta('SELECT id FROM usuario WHERE nick_name = \'%s\';' % (email)) Comandos.ejecuta_comando('DELETE FROM siguea WHERE id_seguido=%d AND id_seguidor=%d;' % (id_seguido,id_seguidor[0][0])) return "OK"
def follow(self,email,id_seguido): id_seguidor = Comandos.consulta('SELECT id FROM usuario WHERE nick_name = \'%s\';' % (email)) Comandos.ejecuta_comando('INSERT INTO siguea (id_seguidor,id_seguido) VALUES (%d,%d);' % (id_seguidor[0][0],id_seguido)) return "OK"