def __init__(self): # fichero de propiedades self.objPropiedades = Propiedades() # acceso al registro dconf self.objRegistro = Registro() # leer el estado del proxy estado_proxy=self.objRegistro.getStatus() print("[INFO]: Estado del proxy: " + estado_proxy) #limpiando ficheros (aunque puede que aquí no sea suficiente) os.system("bash -c 'rm *.temp 2>/dev/null 1> /dev/null '") # configuración del icono self.ind = appindicator.Indicator.new("indicador-proxy", "estado del proxy", appindicator.IndicatorCategory.APPLICATION_STATUS) base_dir=os.path.abspath(os.path.dirname(sys.argv[0])) print "[INFO]: directorio: ", base_dir self.ind.set_icon(os.path.join(base_dir,'ind-con-proxy.png')) self.ind.set_attention_icon (os.path.join(base_dir,'ind-sin-proxy.png')) self.ind.set_status(appindicator.IndicatorStatus.ACTIVE) if estado_proxy == "none": self.ind.set_status(appindicator.IndicatorStatus.ATTENTION) # establece el menú de la aplicación self.menu_setup(estado_proxy) self.ind.set_menu(self.menu)
class MenuRegistro: def __init__(self,conexion,cursor): self.registro = Registro(conexion,cursor) while True: print("1) Crear Registro") print("2) Mostrar Registro") print("0) Salir") op = input() if op == '1': self.agregar() elif op == '2': self.buscar() elif op == '0': break def agregar(self): fecha = datetime.now().date() ph = input("PH: ") luz = input("Luz") humedad = input("Humedad: ") co2 = input("CO2: ") id_planta = input("id_planta: ") self.registro.agregar(fecha, ph, luz, humedad, co2,id_planta) def buscar(self): id_planta = input("Id_planta: ") resultados = self.registro.buscar(id_planta) for p in resultados: print("{0:2} {1:10} {2:10} {3:10} {4:10} {5:10} {6:2} ".format(p[0],str(p[1]),p[2],p[3],p[4],p[5],p[6]))
class MenuRegistro: def __init__(self, conexion, cursor): self.registro = Registro(conexion, cursor) while True: print("1) Agregar Registro") print("2) Buscar") print("0) Salir") op = input("Opcion: ") if op == '1': self.agregar() elif op == '2': self.buscar() elif op == '0': break def agregar(self): co2 = float(input("CO2: ")) humedad = float(input("Humedad: ")) luz = float(input("Luz: ")) ph = float(input("pH: ")) id_planta = int(input("Id Planta: ")) self.registro.agregar(co2, humedad, luz, ph, id_planta) def buscar(self): id_planta = int(input("Id de Planta: ")) resultados = self.registro.buscar(id_planta) for r in resultados: print(r)
class MenuRegistro: def __init__(self, conexion, cursor): self.registro = Registro(conexion, cursor) while True: print("1) Agregar Registro") print("2) Buscar Registros") print("0) Salir") op = input() if op=="1": self.agregar() elif op=="2": self.buscar() elif op=="0": break def agregar(self): dia = input("Dia: ") mes = input("Mes: ") year = input("Año: ") fecha = date(int(year), int(mes), int(dia)) ph = input("pH: ") luz = input("Luz: ") humedad = input("Humedad: ") c02 = input("co2: ") id_planta = input("ID Planta: ") self.registro.crear(fecha, ph, luz, humedad, c02, id_planta) def buscar(self): id_planta = input("ID Planta: ") resultados=self.registro.recuperar(id_planta) for p in resultados: print("{0:2} {1:5} {2:5} {3:5} {4:5} {5:5} {6:5}".format(p[0], str(p[1]), p[2], p[3], p[4], p[5], p[6]))
def api_update_registro(): # post request logger.debug(f"Update: {request.form}") try: Registro.update(**request.form) except Exception as e: logger.exception(e) return Response(status=400) else: logger.debug("Success") return Response(status=200)
def api_delete_registro(): # post request logger.debug(f"Delete: {request.form}") try: Registro.delete(**request.form) except Exception as e: logger.exception(e) return Response(response="Erro ao deletar registro", status=400) else: logger.debug("Success") return Response(response="Registro deletado com sucesso", status=200)
def __init__(self, conexion, cursor): self.registro = Registro(conexion, cursor) while True: print("1) Agregar Registro") print("2) Buscar Registros") print("0) Salir") op = input() if op=="1": self.agregar() elif op=="2": self.buscar() elif op=="0": break
def __init__(self): #Init Glade Builder builder = gtk.Builder() ficherin = os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])), 'indicador-proxy.glade') builder.add_from_file(ficherin) #Connect signals to builder self.window = builder.get_object('window1') builder.connect_signals(self) # Get components from builder self.servidor = builder.get_object('te_servidor') self.puerto = builder.get_object('te_puerto') self.aut = builder.get_object('cb_aut') self.usuario = builder.get_object('te_usuario') self.clave = builder.get_object('te_clave') self.clave = builder.get_object('te_clave') self.apt = builder.get_object('cb_apt') self.excep = builder.get_object('te_excep') self.git = builder.get_object('cb_git') self.docker = builder.get_object('cb_docker') # fichero de configuración self.objPropiedades = Propiedades() # acceso al registro self.objRegistro = Registro() # muestra la configuracion. Rellenamos los campos self.servidor.set_text(self.objRegistro.getHost()) self.puerto.set_text(self.objRegistro.getPort()) self.usuario.set_text(self.objRegistro.getUser()) self.clave.set_text(self.objRegistro.getPassword()) self.excep.set_text(self.objRegistro.getIgnoreList()) self.aut.set_active(self.objRegistro.getAuthentication()) a=self.objPropiedades.lee("proxy_apt") b=self.objPropiedades.lee("proxy_git") c=self.objPropiedades.lee("proxy_docker") self.apt.set_active(False) self.git.set_active(False) self.docker.set_active(False) if (a == "True"): self.apt.set_active(True) if (b == "True"): self.git.set_active(True) if (c == "True"): self.docker.set_active(True)
def __init__(self, conexion, cursor): self.registro = Registro(conexion, cursor) while(True): print("1) Agregar Registro") print("2) Mostrar Registro") print("0) Salir") op = input("Opcion: ") if op == "1": self.agregar() elif op == "2": self.mostrar() elif op == "0": break
def __init__(self, conexion, cursor): self.registro = Registro(conexion, cursor) while True: print("1) Agregar Registro") print("2) Buscar") print("0) Salir") op = input("Opcion: ") if op == '1': self.agregar() elif op == '2': self.buscar() elif op == '0': break
def get_new_records() -> typing.List[Registro]: try: logger.debug("Running get from spreadsheet") client = get_sheet_client() sheet = client.open("Leishmaniose").get_worksheet(0) updates = [] added = [] for i, row in enumerate(sheet.get_all_values()): if i == 0: continue if row[-1] != "": continue if row[0] == "" or row[1] == "": continue try: reg_dict = create_dict_from_str_list(row) reg = Registro.new(**reg_dict) except Exception as e: logger.exception(e) else: added.append(reg) updates.append({ "range": "J" + str(i + 1), "values": [[reg.reg_data_adicionado]] }) sheet.batch_update(updates) except Exception as e: logger.exception(e) raise else: return added
def CadastrarContato(lista_reg=[]): opcao_sair = int(-1) while True: nome = str("") telefone = str("") aniversario = str("") nome = input("NOME: ") telefone = input("TELEFONE: ") aniversario = input("ANIVERSARIO: ") registro = Registro(nome, telefone, aniversario) lista_reg.append(registro) print("REALIZAR OUTRO CADASTRO ?") print(" [1] CONTINUAR \n [2] SAIR") opcao_sair = int(input("SELECIONE A OPÇÃO: ")) if opcao_sair != 1: break return lista_reg
def build(self): manager = ScreenManager() manager.add_widget(Login(name='login')) manager.add_widget(Registro(name='registro')) return manager
def api_gen_laudo(): logger.debug(f"Generate laudo: {request.form}") try: fpath = laudomaker.make_laudos( Registro.get_ids([request.form.get("reg_id")]))[0] except Exception as e: logger.exception(e) return "" else: return url_for("api_get_laudo", fname=os.path.split(fpath)[1])
def api_gen_relatorio(): logger.debug(f"Generate report: {request.form}") try: fpath = utils.zip_files(sheetmaker.make_sheet( regs=Registro.get_ids(request.form.getlist("reg_ids"))), remove_dirs=True) except Exception as e: logger.exception(e) return "" else: return url_for("api_get_relatorio", fname=os.path.split(fpath)[1])
class MenuRegistro: def __init__(self, conexion, cursor): self.registro = Registro(conexion, cursor) while True: print("1) Agregar Registro") print("2) Mostrar Registro") print("0) Salir") op = input() if op == '1': self.agregar() elif op == '2': self.buscar() elif op == '0': break def agregar(self): #cultivo = input("Cultivo: ") #fecha = datetime.now().date() dia = input("Dia: ") mes = input("Mes: ") year = input("Año: ") fecha = date(int(year), int(mes), int(dia)) ph = input("pH: ") luz = input("Luz: ") humedad = input("Humedad: ") co2 = input("CO2: ") id_planta = input("Id Planta: ") #id_clasi = input("Id Clasificacion: ") self.registro.agregar(fecha, ph, luz, humedad, co2, id_planta) def buscar(self): id_planta = input("Id Planta: ") resultados = self.registro.buscar(id_planta) for p in resultados: print("{0:3} {1:5} {2:5} {3:5} {4:5} {5:5} {6:5}".format( p[0], str(p[1]), p[2], p[3], p[4], p[5], p[6]))
class MenuRegistro: def __init__(self, conexion, cursor): self.registro = Registro(conexion, cursor) while True: print("1) Agregar Registro") print("2) Buscar Registro") print("0) Salir") op = input() if op == "1": self.agregar() elif op =="2": self.buscar() elif op == "0": break def agregar(self): id_planta = input("id_planta: ") if self.registro.existePlanta(id_planta) == 1: print ("Planta inexistente") else: dia = input("Dia: ") mes = input("Mes: ") year = input("Año: ") fecha = date(int(year), int(mes), int(dia)) ph = input("PH: ") luz = input("Luz: ") humedad = input("Humedad: ") co2 = input("CO2: ") self.registro.agregar(fecha, ph, luz, humedad, co2, id_planta) def buscar(self): id_planta= input("Id planta: ") resultados = self.registro.buscar(id_planta) for p in resultados: print("ID: {0:2} \nFecha: {1:10} \nPH:........ {2:5} \nLuz:.......{3:5} \nHumedad:... {4:5} \nCO2:....... {5:5}\n". format(p[0], str(p[1]), p[2], p[3], p[4], p[5]))
class MenuRegistro: def __init__(self, conexion, cursor): self.registro = Registro(conexion, cursor) while(True): print("1) Agregar Registro") print("2) Mostrar Registro") print("0) Salir") op = input("Opcion: ") if op == "1": self.agregar() elif op == "2": self.mostrar() elif op == "0": break def agregar(self): dia = input("Dia: ") mes = input("Mes: ") anio = input("Año: ") fecha = date(int(anio), int(mes), int(dia)) ph = float(input("PH: ")) luz= float(input("Luz: ")) humedad = float(input("Humedad: ")) co2 = float(input("CO2: ")) planta_id = input("Planta: ") self.registro.crear(fecha, ph, luz, humedad, co2, planta_id) def mostrar(self): try: temp = ["No","Fecha","PH","Luz","Humedad","CO2"] ID = input("Planta: ") resultados = self.registro.recuperar(ID) print("| {0:2} | {1:10} | {2:4} | {3:4} | {4:7} | {5:4} |".format(temp[0], temp[1], temp[2], temp[3], temp[4], temp[5])) for n in resultados: print("| {0:2} | {1:10} | {2:4} | {3:4} | {4:4} | {5:4} |".format(n[0], str(n[1]), n[2], n[3], n[4], n[5])) except: print("No se ha encontrado el registro")
def api_registrar(): try: logger.debug(f"Request of register: {request.form}") reg = Registro.new( **{ f"reg_{dado['nome']}": request.form[f"reg_{dado['nome']}"] for dado in utils.get_data() if dado["coletar"] }) except KeyError as e: logger.exception(e) return Response( response=f"Erro ao adicionar registro, dados insuficientes", status=400) except Exception as e: logger.exception(e) return Response(response=f"Erro ao adicionar registro", status=400) else: logger.debug("Register success") return Response( response=f"""Adicionado com sucesso: '{reg.brief()}'""", status=201)
from sala import Sala from aluno import Aluno from professor import Professor a1 = Aluno("Wellington", "Sistemas", 9456839, "3245-0090", "*****@*****.**") a2 = Aluno("Dani", "Sistemas", 9456839, "3245-0090", "*****@*****.**") a3 = Aluno("Thomaz", "Licenciatura em Computação", 9456839, "3245-0090", "*****@*****.**") p = Professor("Alex Zissou", "3245-6788", "*****@*****.**") alunos = [a1, a2, a3] professores = [p] sala = Sala("19", "IEGA", professores, alunos, 2) r = Registro(sala, "Wellington") r2 = Registro(sala, "Dani") r3 = Registro(sala, "Thomaz") sala2 = Sala("23", "Acessar", p, [], 1) # lista de alunos vazia, sala sem aluno def test_emprestar_ok(): assert r.pegar_chave() == 0 def test_devolver_ok(): assert r.devolver_chave() == 0 def test_emprestar_aluno_notOk():
def test_emprestar_aluno_notOk(): r = Registro(sala, "Junior") assert r.pegar_chave() == -1
def test_sala_sem_aluno(): r = Registro(sala2, "Junior") assert r.pegar_chave() == -1
class IndicadorProxy: configWin = None objRegistro = None objPropiedades = None strCmd = "" ficheros = [] usarSudo = False def __init__(self): # fichero de propiedades self.objPropiedades = Propiedades() # acceso al registro dconf self.objRegistro = Registro() # leer el estado del proxy estado_proxy=self.objRegistro.getStatus() print("[INFO]: Estado del proxy: " + estado_proxy) #limpiando ficheros (aunque puede que aquí no sea suficiente) os.system("bash -c 'rm *.temp 2>/dev/null 1> /dev/null '") # configuración del icono self.ind = appindicator.Indicator.new("indicador-proxy", "estado del proxy", appindicator.IndicatorCategory.APPLICATION_STATUS) base_dir=os.path.abspath(os.path.dirname(sys.argv[0])) print "[INFO]: directorio: ", base_dir self.ind.set_icon(os.path.join(base_dir,'ind-con-proxy.png')) self.ind.set_attention_icon (os.path.join(base_dir,'ind-sin-proxy.png')) self.ind.set_status(appindicator.IndicatorStatus.ACTIVE) if estado_proxy == "none": self.ind.set_status(appindicator.IndicatorStatus.ATTENTION) # establece el menú de la aplicación self.menu_setup(estado_proxy) self.ind.set_menu(self.menu) def menu_setup(self, estado_proxy): self.menu = gtk.Menu() self.menu_activar = gtk.MenuItem("Usar proxy") self.menu_activar.connect("activate", self.activa_proxy) self.menu.append(self.menu_activar) self.menu_desactivar = gtk.MenuItem("Sin proxy") self.menu_desactivar.connect("activate", self.desactiva_proxy) self.menu.append(self.menu_desactivar) if estado_proxy == "none": self.menu_activar.show() else: self.menu_desactivar.show() self.blanco_item = gtk.MenuItem() self.blanco_item.show() self.menu.append(self.blanco_item) self.menu_configurar = gtk.MenuItem("Configurar") self.menu_configurar.connect("activate", self.configurar) self.menu.append(self.menu_configurar) self.menu_configurar.show() # self.menu_prueba = gtk.MenuItem("Prueba") # self.menu_prueba.connect("activate", self.prueba) # self.menu.append(self.menu_prueba) # self.menu_prueba.show() self.blanco_item = gtk.MenuItem() self.blanco_item.show() self.menu.append(self.blanco_item) self.quit_item = gtk.MenuItem("Quit") self.quit_item.connect("activate", self.quit) self.quit_item.show() self.menu.append(self.quit_item) def quit(self, widget): sys.exit(0) def activa_proxy(self, widget): print("[DEBUG]: Activar proxy") self.ficheros = [] self.usarSudo = False #de momento false durante la ejecución ya se verá # leer información del registro servidor = self.objRegistro.getHost() puerto = self.objRegistro.getPort() usuario = None clave = None if self.objRegistro.getAuthentication() == "True": usuario = self.objRegistro.getUser() clave = self.objRegistro.getPassword() noproxy = self.objRegistro.getIgnoreList() # estableciendo proxy para aplicaciones de consola (.bashrc) self.pon_proxy_bashrc(servidor, puerto, usuario, clave, noproxy) if (self.objPropiedades.lee("proxy_apt") == "True"): # Establece el proxy para 'apt-conf' self.pon_proxy_apt_conf(servidor, puerto, usuario, clave, noproxy) if (self.objPropiedades.lee("proxy_git") == "True"): # Establece el proxy para 'git' self.pon_proxy_git(servidor, puerto, usuario, clave) if (self.objPropiedades.lee("proxy_docker") == "True" ): # Establece el proxy para 'docker' self.pon_proxy_docker(servidor, puerto, usuario, clave, noproxy) # escribe las modificaciones en los ficheros si todo está OK if (self.modifica_ficheros()): # activa en el registro el proxy self.objRegistro.setStatus('manual') # modificando menu e icono self.menu_activar.hide() self.menu_desactivar.show() self.ind.set_status(appindicator.IndicatorStatus.ACTIVE) def desactiva_proxy(self, widget): self.ficheros = [] self.usarSudo = False #de momento false durante la ejecución ya se verá # Desactivando el proxy para las aplicaciones de consola (.bashrc) self.quita_proxy_bashrc() self.quita_proxy_apt_conf() self.quita_proxy_git() self.quita_proxy_docker() # escribe las modificaciones en los ficheros si todo está OK if (self.modifica_ficheros()): # Desactivando el proxy en el registro self.objRegistro.setStatus('none') # modificando menu e icono self.menu_activar.show() self.menu_desactivar.hide() self.ind.set_status(appindicator.IndicatorStatus.ATTENTION) #solicita clave para copiar ficheros del sitema # devuelve true si todo está ok sino devuelve False def modifica_ficheros(self): var=0 comando= "bash -c '" if len(self.ficheros)>0: if self.usarSudo: comando = "gksudo -m 'Se requiere su contraseña para realizar los cambios en el sistema' -- bash -c '" s = len(self.ficheros) for c in xrange(0,s,2): comando += "cp " + self.ficheros[c+1] + ' ' + self.ficheros[c] + "; " comando += "'" var = os.system(comando) s = len(self.ficheros) for c in xrange(0,s,2): os.remove(self.ficheros[c+1]) retorno= True if (var != 0): retorno=False return retorno # Opción al seleccionar 'configurar' def configurar(self, widget): if self.configWin is None: self.configWin = ConfigWin() else: self.configWin.__init__() self.configWin.show() # Opción que se lanza al seleccionar el menú prueba def prueba(self, widget): print ("[DEBUG] Prueba") # Activa el proxy en el fichero ~/.bashrc def pon_proxy_bashrc(self, proxy, puerto, usuario, clave, noproxy): home = expanduser("~") f = home+"/.bashrc" print "[DEBUG]: establecer proxy en ", f try: fichero = open(f, "a") if (usuario): fichero.write("export HTTP_PROXY=\"http://%s:%s@%s:%s\"\n" % (usuario, clave, proxy, puerto)) fichero.write("export HTTPS_PROXY=\"https://%s:%s@%s:%s\"\n" % (usuario, clave, proxy, puerto)) fichero.write("export FTP_PROXY=\"ftp://%s:%s@%s:%s\"\n" % (usuario, clave, proxy, puerto)) else: fichero.write("export HTTP_PROXY=\"http://%s:%s\"\n" % (proxy, puerto)) fichero.write("export HTTPS_PROXY=\"https://%s:%s\"\n" % (proxy, puerto)) fichero.write("export FTP_PROXY=\"ftp://%s:%s\"\n" % (proxy, puerto)) fichero.write("export NO_PROXY=\"%s\"\n" % (noproxy)) fichero.close() except Exception, e: print "[ERROR]: except en pon_proxy_bashrc: %s" % e pass
def incluir(self, end, end_memp=-1, end_swap=-1): self.registros.append(Registro(end, end_memp, end_swap))
def extractAndTransform(processNumber): #ETL for Site 1 if processNumber == 1: dataDesaparecimentoRegexSite1 = re.compile('[0-9]+/[0-9]+/[0-9]+') for record in resultsCrawler1: nome = record['nome'].replace('\'', '').strip() nome = nome.lower() imagem = record['img'].replace( '\'', '"').strip() if 'img' in record.keys() else '' sexo = record['sexo'].replace('\'', '') sexo = sexo.lower().replace('sexo:', '').replace('masculino', 'M').replace( 'feminino', 'F').strip() olhos = record['olhos'].lower().replace('olhos:', '').strip() corDaPele = record['corDaPele'].lower().replace( 'cor da pele:', '').strip() cabelo = record['cabelo'].lower().replace('cabelos:', '').strip() pesoAproximado = record['pesoAproximado'].lower().replace( 'peso aproximado:', '').strip() alturaAproximada = record['alturaAproximada'].lower().replace( 'altura aproximada:', '').strip() tipoFisico = record['tipoFisico'].lower().replace( 'tipo físico:', '').strip() transtornoMental = record['transtornoMental'].lower().replace( 'tem algum tipo de transtorno mental?', '').strip() idade = record['idadeHoje'].lower().replace('idade hoje:', '').strip() dataNascimento = '' dataDesaparecimentoOrig = record['dataDesaparecimento'].replace( '\'', '').replace('Desapareceu em ', '').strip() diasDesaparecido = dataDesaparecimentoOrig.split('(')[1].replace( ')', '') dataDesaparecimento = dataDesaparecimentoRegexSite1.match( dataDesaparecimentoOrig) if dataDesaparecimento != None: dataDesaparecimento = dataDesaparecimento.group().strip() else: dataDesaparecimento = dataDesaparecimentoOrig localDesaparecimento = record['local'].replace('\'', '').replace( '.', '').strip() localDesaparecimento = localDesaparecimento.split('/') bairroDesaparecimento = '' cidadeDesaparecimento = '' ufDesaparecimento = '' if len(localDesaparecimento) > 2: bairroDesaparecimento = localDesaparecimento[0] cidadeDesaparecimento = localDesaparecimento[1] ufDesaparecimento = localDesaparecimento[2] elif len(localDesaparecimento) == 2: cidadeDesaparecimento = localDesaparecimento[0] ufDesaparecimento = localDesaparecimento[1] marcaCaracteristica = '' status = record['status'] informacoes = record['observacao'].replace('\'', '').strip() boletimOcorrencia = record['boletimOcorrencia'].lower().replace( 'foi feito boletim de ocorrência do caso?', '').strip() fonte = record['fonte'] + ' ' reg.update({nome: nome}) objeto = Registro(nome, imagem, sexo, olhos, corDaPele, cabelo, pesoAproximado, alturaAproximada, tipoFisico, transtornoMental, idade, dataNascimento, diasDesaparecido, dataDesaparecimento, bairroDesaparecimento, cidadeDesaparecimento, ufDesaparecimento, marcaCaracteristica, status, informacoes, boletimOcorrencia, fonte) try: reg.update({nome: objeto}) except KeyError: reg[nome] = objeto #print(len(reg)) #ETL for Site 2 if processNumber == 2: dddDesaparecimentoRegex = re.compile('\([0-9]+') for record in resultsCrawler2: nome = record['nome'].replace('\'', '').strip() nome = nome.lower() imagem = record['img'].replace( '\'', '"').strip() if 'img' in record.keys() else '' sexo = record['sexo'].replace('\'', '').strip() olhos = record['olhos'].replace('\'', '').strip() corDaPele = record['raca'].strip() cabelo = cabelo = record['cabelo'].lower().strip() pesoAproximado = record['pesoAproximado'].strip( ) if record['pesoAproximado'].strip() != '0' else '' alturaAproximada = record['alturaAproximada'].strip( ) if record['alturaAproximada'].strip() != '0' else '' tipoFisico = '' transtornoMental = '' dataNascimento = record['dataNascimento'].replace('\'', '').strip() idade = '' #fazer metodo pra calcular a idade dataDesaparecimento = record['dataDesaparecimento'].replace( '\'', '').strip() diasDesaparecido = '' #fazer metodo pra calcular os dias de desaparecimento dddDesaparecimento = dddDesaparecimentoRegex.match( record['telContato']) bairroDesaparecimento = '' ufDesaparecimento = '' cidadeDesaparecimento = '' if dddDesaparecimento != None: dddDesaparecimento = dddDesaparecimento.group().replace( '(', '') ufDesaparecimento = Util.mapDDD(dddDesaparecimento) marcaCaracteristica = '' status = record['status'].strip() informacoes = record['observacao'].replace('\'', '').strip() boletimOcorrencia = '' #fazer metodo pra verificar no email de contato se eh de algum orgao responsavel, assim, provavelmente tem B.O. fonte = record['fonte'].strip() + ' ' try: if reg[nome].imagem == '': reg[nome].imagem = imagem if reg[nome].sexo == '': reg[nome].sexo = sexo if reg[nome].olhos == '': reg[nome].olhos = olhos if reg[nome].corDaPele == '': reg[nome].corDaPele = corDaPele if reg[nome].cabelo == '': reg[nome].cabelo = cabelo if reg[nome].pesoAproximado == '': reg[nome].pesoAproximado = pesoAproximado if reg[nome].alturaAproximada == '': reg[nome].alturaAproximada = alturaAproximada if reg[nome].tipoFisico == '': reg[nome].tipoFisico = tipoFisico if reg[nome].transtornoMental == '': reg[nome].transtornoMental = transtornoMental if reg[nome].dataNascimento == '': reg[nome].dataNascimento = dataNascimento if reg[nome].idade == '': reg[nome].idade = idade if reg[nome].dataDesaparecimento == '': reg[nome].dataDesaparecimento = dataDesaparecimento if reg[nome].diasDesaparecido == '': reg[nome].diasDesaparecido = diasDesaparecido if reg[nome].bairroDesaparecimento == '': reg[nome].bairroDesaparecimento = bairroDesaparecimento if reg[nome].cidadeDesaparecimento == '': reg[nome].cidadeDesaparecimento = cidadeDesaparecimento if reg[nome].ufDesaparecimento == '': reg[nome].ufDesaparecimento = ufDesaparecimento if reg[nome].marcaCaracteristica == '': reg[nome].marcaCaracteristica = marcaCaracteristica if reg[nome].status == '': reg[nome].status = status if reg[nome].informacoes == '': reg[nome].informacoes = informacoes if reg[nome].boletimOcorrencia == '': reg[nome].boletimOcorrencia = boletimOcorrencia reg[nome].fonte += fonte except KeyError: objeto = Registro(nome, imagem, sexo, olhos, corDaPele, cabelo, pesoAproximado, alturaAproximada, tipoFisico, transtornoMental, idade, dataNascimento, diasDesaparecido, dataDesaparecimento, bairroDesaparecimento, cidadeDesaparecimento, ufDesaparecimento, marcaCaracteristica, status, informacoes, boletimOcorrencia, fonte) reg[nome] = objeto #print(len(reg)) #ETL for Site 5 if processNumber == 3: dataDesaparecimentoRegex = re.compile('Data do desaparecimento:') localDesaparecimentoRegex = re.compile( '[lL]ocal do desaparecimento:|[dD]esapareceu de|[dD]esapareceu do|[dD]esapareceu da|[dD]esapareceu em|[dD]esapareceu no' ) corDaPeleRegex = re.compile('Cor|cor') sexoRegex = re.compile('Sexo|sexo') for record in resultsCrawler5: nome = record['nome'].replace('\'', '').strip() nome = nome.lower() imagem = record['img'].replace( '\'', '"').strip() if 'img' in record.keys() else '' sexo = '' olhos = '' corDaPele = '' cabelo = '' pesoAproximado = '' alturaAproximada = '' corDaPele = '' tipoFisico = '' transtornoMental = '' idade = '' dataNascimento = '' diasDesaparecido = '' dataDesaparecimento = '' bairroDesaparecimento = '' cidadeDesaparecimento = '' ufDesaparecimento = 'RS' marcaCaracteristica = '' informacoes = '' boletimOcorrencia = '' info = record['informacoes'].replace('\'', '').strip() fonte = record['fonte'].strip() + ' ' arrayInfo = info.split('$$$$') for r in arrayInfo: if dataDesaparecimentoRegex.search(r) != None: dataDesaparecimento = r.replace('Data do desaparecimento:', '').strip() if localDesaparecimentoRegex.match(r) != None: cidadeDesaparecimentoAux = r.replace( 'Local do desaparecimento:', '').replace('Desapareceu de ', '').replace( 'Desapareceu do ', '').replace('Desapareceu da ', '').replace( 'Desapareceu em ', '').replace('Leia mais', '').strip() cidadeDesaparecimentoAux = cidadeDesaparecimentoAux.split( '/') cidadeDesaparecimentoAux = cidadeDesaparecimentoAux[0] cidadeDesaparecimento = cidadeDesaparecimentoAux.split( '-')[0].strip() if corDaPeleRegex.match(r) != None: corDaPele = r.replace('Cor:', '').strip() if sexoRegex.match(r) != None: sexo = r.replace('Sexo:', '').strip().lower().replace( 'masculino', 'M').replace('feminino', 'F') status = record['status'].strip() try: if reg[nome].imagem == '': reg[nome].imagem = imagem if reg[nome].sexo == '': reg[nome].sexo = sexo if reg[nome].olhos == '': reg[nome].olhos = olhos if reg[nome].corDaPele == '': reg[nome].corDaPele = corDaPele if reg[nome].cabelo == '': reg[nome].cabelo = cabelo if reg[nome].pesoAproximado == '': reg[nome].pesoAproximado = pesoAproximado if reg[nome].alturaAproximada == '': reg[nome].alturaAproximada = alturaAproximada if reg[nome].tipoFisico == '': reg[nome].tipoFisico = tipoFisico if reg[nome].transtornoMental == '': reg[nome].transtornoMental = transtornoMental if reg[nome].dataNascimento == '': reg[nome].dataNascimento = dataNascimento if reg[nome].idade == '': reg[nome].idade = idade if reg[nome].dataDesaparecimento == '': reg[nome].dataDesaparecimento = dataDesaparecimento if reg[nome].diasDesaparecido == '': reg[nome].diasDesaparecido = diasDesaparecido if reg[nome].bairroDesaparecimento == '': reg[nome].bairroDesaparecimento = bairroDesaparecimento if reg[nome].cidadeDesaparecimento == '': reg[nome].cidadeDesaparecimento = cidadeDesaparecimento if reg[nome].ufDesaparecimento == '': reg[nome].ufDesaparecimento = ufDesaparecimento if reg[nome].marcaCaracteristica == '': reg[nome].marcaCaracteristica = marcaCaracteristica if reg[nome].status == '': reg[nome].status = status if reg[nome].informacoes == '': reg[nome].informacoes = informacoes if reg[nome].boletimOcorrencia == '': reg[nome].boletimOcorrencia = boletimOcorrencia reg[nome].fonte += fonte except KeyError: objeto = Registro(nome, imagem, sexo, olhos, corDaPele, cabelo, pesoAproximado, alturaAproximada, tipoFisico, transtornoMental, idade, dataNascimento, diasDesaparecido, dataDesaparecimento, bairroDesaparecimento, cidadeDesaparecimento, ufDesaparecimento, marcaCaracteristica, status, informacoes, boletimOcorrencia, fonte) reg[nome] = objeto #ETL for Site 6 if processNumber == 6: for record in resultsCrawler6: nome = record['nome'].replace('\'', '').strip() nome = nome.lower() imagem = record['img'].replace( '\'', '"').strip() if 'img' in record.keys() else '' idade = record['idade'].strip() dataNascimento = record['dataNascimento'].strip() informacoes = record['informacoes'].replace('\'', '').strip() dataDesaparecimento = record['dataDesaparecimento'].strip() diasDesaparecido = record['diasDesaparecido'].strip() sexo = record['sexo'].strip() pesoAproximado = record['pesoAproximado'].strip() alturaAproximada = record['alturaAproximada'].strip() olhos = record['olhos'].strip() corDaPele = record['corDaPele'].strip() marcaCaracteristica = record['observacao'].strip() cabelo = record['cabelo'].strip() local = record['local'].strip() local = local.split(',') ufDesaparecimento = '' cidadeDesaparecimento = '' bairroDesaparecimento = '' if len(local) == 2: ufDesaparecimento = local[1].strip() cidadeDesaparecimento = local[0].strip() elif len(local) == 3: ufDesaparecimento = local[2].strip() cidadeDesaparecimento = local[1].strip() bairroDesaparecimento = local[0].strip() fonte = record['fonte'].strip() + ' ' status = record['status'].strip() try: if reg[nome].imagem == '': reg[nome].imagem = imagem if reg[nome].sexo == '': reg[nome].sexo = sexo if reg[nome].olhos == '': reg[nome].olhos = olhos if reg[nome].corDaPele == '': reg[nome].corDaPele = corDaPele if reg[nome].cabelo == '': reg[nome].cabelo = cabelo if reg[nome].pesoAproximado == '': reg[nome].pesoAproximado = pesoAproximado if reg[nome].alturaAproximada == '': reg[nome].alturaAproximada = alturaAproximada if reg[nome].tipoFisico == '': reg[nome].tipoFisico = tipoFisico if reg[nome].transtornoMental == '': reg[nome].transtornoMental = transtornoMental if reg[nome].dataNascimento == '': reg[nome].dataNascimento = dataNascimento if reg[nome].idade == '': reg[nome].idade = idade if reg[nome].dataDesaparecimento == '': reg[nome].dataDesaparecimento = dataDesaparecimento if reg[nome].diasDesaparecido == '': reg[nome].diasDesaparecido = diasDesaparecido if reg[nome].bairroDesaparecimento == '': reg[nome].bairroDesaparecimento = bairroDesaparecimento if reg[nome].cidadeDesaparecimento == '': reg[nome].cidadeDesaparecimento = cidadeDesaparecimento if reg[nome].ufDesaparecimento == '': reg[nome].ufDesaparecimento = ufDesaparecimento if reg[nome].marcaCaracteristica == '': reg[nome].marcaCaracteristica = marcaCaracteristica if reg[nome].status == '': reg[nome].status = status if reg[nome].informacoes == '': reg[nome].informacoes = informacoes if reg[nome].boletimOcorrencia == '': reg[nome].boletimOcorrencia = boletimOcorrencia reg[nome].fonte += fonte except KeyError: objeto = Registro(nome, imagem, sexo, olhos, corDaPele, cabelo, pesoAproximado, alturaAproximada, tipoFisico, transtornoMental, idade, dataNascimento, diasDesaparecido, dataDesaparecimento, bairroDesaparecimento, cidadeDesaparecimento, ufDesaparecimento, marcaCaracteristica, status, informacoes, boletimOcorrencia, fonte) reg[nome] = objeto #print(len(reg)) #Quantidade de registros coletados com nomes diferentes #load to database load()
def api_get(): filtro_id = request.args.get("filtro_id", "") filtro_ra = request.args.get("filtro_ra", "") filtro_nome_animal = request.args.get("filtro_nome_animal", "") filtro_nome_dono = request.args.get("filtro_nome_dono", "") filtro_endereco = request.args.get("filtro_endereco", "") filtro_quadra = request.args.get("filtro_quadra", "") filtro_situacao_coleta = request.args.get("filtro_situacao_coleta", "") filtro_data_col_inicio = request.args.get("filtro_data_col_inicio", "") filtro_data_col_fim = request.args.get("filtro_data_col_fim", "") filtro_data_exa_inicio = request.args.get("filtro_data_exa_inicio", "") filtro_data_exa_fim = request.args.get("filtro_data_exa_fim", "") filtro_teste_resultado = request.args.get("filtro_teste_resultado", "") filtro_data_add_inicio = request.args.get("filtro_data_add_inicio", "") filtro_data_add_fim = request.args.get("filtro_data_add_fim", "") regs = Registro.get_all(desc=request.args.get("desc", None) is not None) results = [] try: for reg in regs: logger_filter.debug(reg) if filtro_id != "" and str(reg.reg_id) != filtro_id: logger_filter.debug("Filtered by id") continue if filtro_ra != "" and reg.reg_ra != filtro_ra: logger_filter.debug("Filtered by ra") continue if filtro_nome_animal != "" and filtro_nome_animal not in reg.reg_nome_animal: logger_filter.debug("Filtered by nome animal") continue if filtro_nome_dono != "" and filtro_nome_dono in reg.reg_nome_dono: logger_filter.debug("Filtered by nome dono") continue if filtro_endereco != "" and filtro_endereco in reg.reg_endereco: logger_filter.debug("Filtered by endereco") continue if filtro_quadra != "" and reg.reg_quadra != filtro_quadra: logger_filter.debug("Filtered by quadra") continue if filtro_situacao_coleta != "" and reg.reg_situacao_coleta != filtro_situacao_coleta: logger_filter.debug("Filtered by situação coleta") continue if filtro_data_col_inicio != "" and not datetime.strptime( reg.reg_data_coleta, "%Y-%m-%d").date() >= datetime.strptime( filtro_data_col_inicio, "%Y-%m-%d").date(): logger_filter.debug("Filtered by data coleta inicio") continue if filtro_data_col_fim != "" and not datetime.strptime( reg.reg_data_coleta, "%Y-%m-%d").date() <= datetime.strptime( filtro_data_col_fim, "%Y-%m-%d").date(): logger_filter.debug("Filtered by data coleta fim") continue if filtro_data_exa_inicio != "" and not datetime.strptime( reg.reg_teste_data_exame, "%Y-%m-%d").date() >= datetime.strptime( filtro_data_exa_inicio, "%Y-%m-%d").date(): logger_filter.debug("Filtered by teste data exame inicio") continue if filtro_data_exa_fim != "" and not datetime.strptime( reg.reg_teste_data_exame, "%Y-%m-%d").date() <= datetime.strptime( filtro_data_exa_fim, "%Y-%m-%d").date(): logger_filter.debug("Filtered by teste data exame fim") continue if filtro_teste_resultado != "" and reg.reg_teste_resultado != filtro_teste_resultado: logger_filter.debug("Filtered by teste resultado") continue if filtro_data_add_inicio != "" and not datetime.strptime( reg.reg_data_adicionado, "%Y-%m-%d %H:%M:%S").date() >= datetime.strptime( filtro_data_add_inicio, "%Y-%m-%d").date(): logger_filter.debug("Filtered by data adicionado") continue if filtro_data_add_fim != "" and not datetime.strptime( reg.reg_data_adicionado, "%Y-%m-%d %H:%M:%S").date() <= datetime.strptime( filtro_data_add_fim, "%Y-%m-%d").date(): continue results.append(reg) except Exception as e: logger.debug(request.args.to_dict()) logger.exception(e) return Response(response=json.dumps([]), status=400, mimetype="application/json") else: return Response(response=json.dumps(results, default=lambda x: x.json()), status=200, mimetype="application/json")