def AgregaPreguntaA(email, clave, idtexto): bd = DB(nombrebd="aprende") usuario = login(email, clave, bd) resp = {} if usuario: if duenoPagina(idtexto, bd) == usuario['ID']: rows = bd.Ejecuta( "select orden from preguntas where idtexto=%s order by orden desc limit 1" % idtexto) orden = 1 if rows: orden = rows[0]['orden'] + 1 bd.Ejecuta( "insert into preguntas (idtexto, orden) values(%s, %s)" % (idtexto, orden)) idpregunta = bd.UltimoID() bd.Ejecuta( "insert into posibles (idpregunta, texto) values(%s, 'A')" % idpregunta) bd.Ejecuta( "insert into posibles (idpregunta, texto) values(%s, 'B')" % idpregunta) bd.Ejecuta( "insert into posibles (idpregunta, texto) values(%s, 'C')" % idpregunta) resp['id'] = idpregunta resp['preguntas'] = leePreguntas(idtexto, bd) bd.cierra() return resp
def LeeProvPendP(email, clave): bd = DB(nombrebd="textos") usuario = login(email, clave, bd) if usuario: usuario["pendientes"] = bd.Ejecuta(""" select *, telefono, direccion, pedicab.id as ID, 'X' as despachar from pedicab inner join cli on cli.id=pedicab.idcli where idprov=%s and pendiente=1 """ % usuario['id']) bd.cierra() return usuario bd.cierra() return None # def LeePedidoP(email, clave, idpedido): bd = DB(nombrebd="textos") usuario = login(email, clave, bd) if usuario: tabla = "prod%s" % usuario['id'] rows = bd.Ejecuta(""" select prod.*, cantidad, pedidet.id as idpedidet from pedidet inner join %s as prod on prod.id=pedidet.idproducto where pedidet.idpedicab=%s """ % (tabla, idpedido)) bd.cierra() return rows bd.cierra() return None
def querys_done(): bd = DB() querysDone = bd.Ejecuta("SELECT idTerm FROM positions GROUP BY idTerm") if querysDone: for a in querysDone: bd.Ejecuta("""update terms set state=%s where id = %s """ % (0, int(a["idTerm"]))) bd.cierra()
def querys_done2(): bd = DB() querysDone = bd.Ejecuta("select term from positions group by term") if querysDone: for a in querysDone: bd.Ejecuta( """update terms set term="%s", state=%s where term = "%s" """ % (a["term"].encode("utf-8"), 0, a["term"].encode("utf-8"))) bd.cierra()
def GrabaNodoRuta(email, ip, funcion, pag): bd = DB() usuario = bd.Ejecuta("select * from usuarios where email=%s" % email) if usuario: usuario = usuario[0] else: usuario = dict() usuario["ID"] = 0 bd.Ejecuta( "insert into rutas (IDusuario, ip, funcion, pag, fecha) values (%s,'%s','%s','%s',sysdate())" % (usuario["ID"], ip, funcion[:255], pag)) bd.cierra()
def CreaUsuarioA(email, clave, nombre, modo, lang): bd = DB(nombrebd="aprende") rows = bd.Ejecuta("select * from usuarios where email='%s'" % email) resp = "x" if not rows: bd.Ejecuta( "insert into usuarios (nombre, email, clave, modo, lang) values ('%s','%s','%s','%s','%s')" % (nombre, email, clave, modo, lang)) resp = "ok" bd.cierra() return resp
def CambiaCampoP(email, clave, datos): # print("llega SubeArchivoP", datos['texto']) bd = DB(nombrebd="textos") if datos['tabla'] == 'prov': usuario = login(email, clave, bd) if usuario: bd.Ejecuta("update prov set %s='%s' where id=%s" % (datos['nombre'], datos['val'], usuario['id'])) elif datos['tabla'] == 'cli': bd.Ejecuta("update cli set %s='%s' where telefono='%s'" % (datos['nombre'], datos['val'], datos['telefono'])) bd.cierra()
def ModificaTituloA(email, clave, idtexto, titulo): bd = DB(nombrebd="aprende") usuario = login(email, clave, bd) resp = None if usuario: if duenoPagina(idtexto, bd) == usuario['ID']: bd.Ejecuta("update paginas set titulo='%s' where id=%s" % (titulo, idtexto)) resp = bd.Ejecuta( "select *, id as ID, titulo as nombre from paginas where idusuario=%s" % usuario['ID']) bd.cierra() return resp
def CreaTextoA(email, clave): bd = DB(nombrebd="aprende") usuario = login(email, clave, bd) resp = {} if usuario: bd.Ejecuta("insert into paginas (idusuario, texto) values (%s, '')" % usuario['ID']) resp['id'] = bd.UltimoID() resp["textos"] = bd.Ejecuta( "select *, id as ID, titulo as nombre from paginas where idusuario=%s" % usuario['ID']) bd.cierra() return resp
def DespacharP(email, clave, idtextosdo): bd = DB(nombrebd="textos") usuario = login(email, clave, bd) if usuario: bd.Ejecuta("update pedicab set pendiente=0 where id=%s" % idpedido) usuario["pendientes"] = bd.Ejecuta(""" select *, telefono, direccion, pedicab.id as ID, 'X' as despachar from pedicab inner join cli on cli.id=pedicab.idcli where idprov=%s and pendiente=1 """ % usuario['id']) bd.cierra() return usuario bd.cierra() return None
def ReadLikesP(idprov, values): bd = DB(nombrebd="textos") tabla = "prod%s" % idprov v = values.strip() if v: v = v.split() s = "like '%" + v[0] + "%'" s = s + ''.join([" and nombre like '%" + x + "%'" for x in v[1:]]) print("select ID, nombrefrom %s where nombre %s limit 8" % (tabla, s)) response = bd.Ejecuta( "select ID, nombre from %s where nombre %s limit 8" % (tabla, s)) else: response = bd.Ejecuta("select ID, nombre from %s where 1=2" % tabla) bd.cierra() return response
def LeeCuadernosA(email, clave): bd = DB(nombrebd="aprende") usuario = login(email, clave, bd) response = {} if usuario: response['usuario'] = usuario if usuario['modo'] == 'E': response["niveles"] = bd.Ejecuta("select *, id as ID from niveles") response["materias"] = bd.Ejecuta( "select *, id as ID from materias") response["cuadernos"] = bd.Ejecuta( "select *, id as ID from cuadernos where idmaestro=%s order by nombre" % usuario['ID']) bd.cierra() return response
def new_querys(): bd = DB() querys = bd.Ejecuta("select term from terms") querysDone = bd.Ejecuta( "select suggested as term from suggesteds group by suggested") for a in querys: for b in querysDone: if a["term"] == b["term"]: querysDone.remove(b) if querysDone: for a in querysDone: bd.Ejecuta("""insert into terms (term, state) values("%s",%s)""" % (a["term"].encode("utf-8"), 1)) bd.cierra()
def save_tags(tags): bd = DB() for a in tags: bd.Ejecuta( """insert into pagescrawl (idPositions, position, type, text) values(%s,%s,"%s","%s")""" % (a[0], a[1], a[2].encode("utf-8"), a[3].encode("utf-8"))) bd.cierra()
def get_page_optz(): bd = DB() toDo = bd.Ejecuta( """SELECT positions.id AS idPositions, positions.term, positions.url FROM positions JOIN pagescrawltext ON positions.id = pagescrawltext.idPositions LEFT JOIN consolidatedpagescrawl ON consolidatedpagescrawl.idPositions=pagescrawltext.idPositions LEFT JOIN badurl ON positions.id = badurl.idPositions WHERE badurl.id IS NULL AND pagescrawltext.idPositions IS NOT NULL AND consolidatedpagescrawl.id IS NULL""") # done = bd.Ejecuta("SELECT idPositions FROM consolidatedPagescrawl GROUP BY idPositions") # badUrl = bd.Ejecuta("SELECT idPositions FROM badurl WHERE fix = 0 GROUP BY idPositions") # for a in done: # for b in toDo: # if a["idPositions"] == b["idPositions"]: # toDo.remove(b) # break # for a in badUrl: # for b in toDo: # if a["idPositions"] == b["idPositions"]: # toDo.remove(b) # break bd.cierra() if toDo: return toDo else: return []
def get_count_domain(): bd = DB() data = bd.Ejecuta( "SELECT idDomain,COUNT(idDomain) AS c FROM consolidatedpagescrawl GROUP BY idDomain" ) bd.cierra() return data
def save_page_optz(idPositions, urlDomain, optzUrl, optzTitle, optzH1, PA): bd = DB() bd.Ejecuta( """insert into consolidatedpagescrawl (idPositions, isHomePage, urlOptz, titleTagOptz, h1Optz, pageAuthority) values(%s,%s,%s,%s,%s,%s)""" % (idPositions, urlDomain, optzUrl, optzTitle, optzH1, PA)) bd.cierra()
def get_terms_for_vol(): bd = DB() querys = bd.Ejecuta( "SELECT id, term,googleState FROM terms WHERE googleState = 1 LIMIT 0, 900" ) bd.cierra() return querys
def EnviarPedP(datos): bd = DB(nombrebd="textos") tabla = "prod%s" % datos['idprov'] bd.Ejecuta( "insert into juricab (idprov, idcli, fecha) values(%s, %s, now())" % (datos['idprov'], datos['idcli'])) idped = bd.UltimoID() s = 0 for row in datos['ped']: bd.Ejecuta( "insert into pedidet (idpedicab, idproducto, cantidad, precio) values(%s, %s, %s, %s)" % (idped, row['id'], row['cantidad'], row['precio'])) s += float(row['cantidad']) * float(row['precio']) bd.Ejecuta("update pedicab set valor=%s where id=%s" % (s, idped)) bd.cierra()
def LeeHorarioA(email, clave, idusuario): bd = DB(nombrebd="aprende") usuario = login(email, clave, bd) resp = {} if usuario: resp['horario'] = bd.Ejecuta( "select *, cast(horat as char) as horac from horarios where idusuario=%s and activo=1 order by dia, horat" % usuario['ID']) resp['horas'] = bd.Ejecuta( "select cast(horat as char) as horac from horarios where idusuario=%s and activo=1 group by horat" % usuario['ID']) resp['dias'] = bd.Ejecuta( "select distinct dia from horarios where idusuario=%s and activo=1 order by dia" % usuario['ID']) bd.cierra() return resp
def get_page_data(idPositions): bd = DB() data = bd.Ejecuta( "select position, type, text from pagescrawl where idPositions=" + str(idPositions)) bd.cierra() return data
def LeeUltTextoJ(num): bd = DB(nombrebd="textos") # rows = bd.Ejecuta("select * from docs where num=%s"%num) rows = bd.Ejecuta( "select parrafos.* from parrafos inner join docs on docs.id=parrafos.iddoc where num=%s" % num) bd.cierra() return rows
def SubeArchivo(datos): bd = DB(nombrebd="textos") texto1 = pdf(datos['filename']) capitulo = "capitulo 1" texto = texto1.replace("'", "''") bd.Ejecuta("insert into docs (titulo, num) values('%s', %s)" % (capitulo, datos['num'])) iddoc = bd.UltimoID() text = texto.split('\n') # bd.Ejecuta("truncate table parrafos") for p in text: if p.strip(): bd.Ejecuta("insert into parrafos (iddoc, texto) values(%s, '%s')" % (iddoc, p)) bd.cierra() return texto
def LeeProductoP(idprov, idproducto): bd = DB(nombrebd="textos") tabla = "prod%s" % idprov rows = bd.Ejecuta("select * from %s where id='%s'" % (tabla, idproducto)) if rows: return rows[0] bd.cierra()
def check_domain(domain): bd = DB() data = bd.Ejecuta("SELECT id FROM domains WHERE url='" + domain + "'") bd.cierra() if data: return data[0] else: return []
def LeeCliP(telefono): bd = DB(nombrebd="textos") rows = bd.Ejecuta("select * from cli where telefono='%s'" % telefono) if not rows: bd.Ejecuta("insert into cli (telefono) values ('%s')" % telefono) bd.commit() rows = bd.Ejecuta("select * from cli where telefono='%s'" % telefono) if rows: response = {} response['cli'] = rows[0] response['prov'] = bd.Ejecuta( "select *, id as ID from prov where activo=1 order by nombre") return response bd.cierra()
def AgregaPosibleA(email, clave, idpregunta): bd = DB(nombrebd="aprende") resp = None usuario = login(email, clave, bd) if usuario: rows = bd.Ejecuta("select idtexto from preguntas where id=%s" % idpregunta) if rows: idtexto = rows[0]['idtexto'] if duenoPregunta(idpregunta, bd) == usuario['ID']: bd.Ejecuta( "insert into posibles (idpregunta, texto) values(%s, 'X')" % idpregunta) resp = leePreguntas(idtexto, bd) bd.cierra() return resp
def get_count_positions(): bd = DB() data = bd.Ejecuta("""SELECT COUNT(positions.id) AS c FROM positions JOIN consolidatedpagescrawl ON positions.id = consolidatedpagescrawl.idPositions""" ) bd.cierra() return data[0]["c"]
def GrabaNodoRuta(email, ip, funcion, pag): bd = DB() usuario = bd.Ejecuta("select * from usuarios where email=%s" % email) if usuario: usuario = usuario[0] else: usuario = dict() usuario["ID"] = 0 funcion = funcion.decode("utf8").encode("utf8") # print(funcion) bd.Ejecuta( "insert into rutas (IDusuario, ip, funcion, pag, fecha) values (%s,'%s','%s','%s',sysdate())" % (usuario["ID"], ip, funcion, pag)) # idusuario = usuario['ID'] # bd.c.execute("""insert into rutas (IDusuario, ip, funcion, pag, fecha) values (%s,'%s','%s','%s',sysdate())""", # (idusuario, ip, funcion, pag)) bd.cierra()
def save_suggested(idTerm, query, suggested): bd = DB() for a in suggested: bd.Ejecuta( """insert into suggesteds (idTerm,term, position, suggested, date) values(%s,"%s",%s,"%s", UTC_TIMESTAMP())""" % (idTerm, query.encode("utf-8"), a["position"], a["suggested"].encode("utf-8"))) bd.cierra()