def xReporte(): global lPro cod = ES.entradaNombre(droid, 'Reporte de Casa Nacional', 'Introduzca el reporte o parte de el', lPro[0]['repCaNa']) lCod = [] #print(cod, lPro[0]['repCaNa']) for l in lPro: if (l['repCaNa']) and (cod in l['repCaNa']): if ('S' == l['estatus']): caida = 'Caida: ' else: caida = '' lst = (caida+l['repCaNa']+'-'+l['nombre'], l['id']-1) lCod.append(lst) # for l in lPro return mPropiedad(lCod, 'Reporte CN:'+cod)
def xNombre(): global lPro cod = ES.entradaNombre(droid, 'Nombre de la propiedad', 'Introduzca el nombre o parte de el', lPro[0]['nombre']) lCod = [] for l in lPro: nombre = l['nombre'] if (l['nombre']) and (0 <= nombre.lower().find(cod.lower())): # if (l['nombre']) and (cod.lower() in nombre.lower()): if ('S' == l['estatus']): caida = 'Caida: ' else: caida = '' lst = (caida+l['codigo']+'-'+l['nombre'], l['id']-1) lCod.append(lst) # for l in lPro return mPropiedad(lCod, 'Nombre de la propiedad:'+cod)
def buscarNombre(): global dPer nombre = ES.entradaNombre(droid, 'Nombre del socio') if None == nombre: return -10, None nombres = [] cedulas = [] try: for k, v in dPer.items(): if 0 <= v.lower().find(nombre.lower()): nombres.append(v) cedulas.append(k) except UnicodeError: pass if not nombres: ES.alerta(droid, nombre, "No hubo coincidencias!") return -10, None indice = ES.entradaConLista(droid, 'SOCIOS ENCONTRADOS', 'Seleccione socio(a)', nombres) if None == indice or 0 > indice: return -10, None return int(cedulas[indice]), nombres[indice]
def obtenerIP(servidor): # Es la unica rutina que consegui para obtener mi IP. s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect((servidor, 80)) # servidor puede ser cualquiera, no es necesario usar el seleccionado. return s.getsockname()[0] # el IP es el primer elemento de la tupla devuelta. El 2do elemento parece ser una puerta. ES.muestraInicio("IPASPUDO: J-30619229-8.") ind = ES.entradaConLista(droid , 'Busqueda del servidor', 'Seleccione servidor', lSitios) # Busca el servidor. if (None == ind) or (ind == (len(lSitios)-1)) or (len(lSitios) <= ind) or \ (0 > ind): # Se asegura de tener el indice correcto. ES.muestraFin() sys.exit() IPServ = lIPs[ind] if ((ind == (len(lSitios)-2)) or ('' == IPServ)): IPServ = ES.entradaNombre(droid, 'IP del servidor', 'Introduzca IP del servidor', '192.168.0.') print("Obteniendo archivo desde %s (%s)." % (lSitios[ind], IPServ)) if droid: decip = droid.wifiGetConnectionInfo().result['ip_address'] hexip = hex(decip).split('x')[1] dirL = int(hexip, 16) miDirIP = socket.inet_ntoa(struct.pack("<L", dirL)) else: miDirIP = obtenerIP(IPServ) # Esta rutina fue la unica que encontre para mi IP. print("Mi direccion IP es: %s" % miDirIP) try: if IPServ[0:IPServ.rindex('.')] != miDirIP[0:miDirIP.rindex('.')]: # Las tres primeras partes de ambos IPv4 deben ser iguales. print("El servidor seleccionado %s es errado." % IPServ) ES.muestraFin() sys.exit()
def actualizar(): ind = ES.entradaConLista(droid, 'Busqueda del servidor',\ 'Seleccione servidor', lSitios) # Busca el servidor. if (None == ind) or (ind == (len(lSitios)-1)) or (len(lSitios) <= ind) or \ (0 > ind): # Se asegura de tener el indice correcto. return ES.muestraFin() sys.exit() IPServ = lIPs[ind] if ((ind == (len(lSitios) - 2)) or ('' == IPServ)): IPServ = ES.entradaNombre(droid, 'IP del servidor', 'Introduzca IP del servidor', IPServ[0:10]) print("Obteniendo archivo desde %s (%s)." % (lSitios[ind], IPServ)) if droid: decip = droid.wifiGetConnectionInfo().result['ip_address'] hexip = hex(decip).split('x')[1] dirL = int(hexip, 16) miDirIP = socket.inet_ntoa(struct.pack("<L", dirL)) else: miDirIP = obtenerIP( IPServ) # Esta rutina fue la unica que encontre para mi IP. print("Mi direccion IP es: %s" % miDirIP) try: if IPServ[0:IPServ.rindex('.')] != miDirIP[0:miDirIP.rindex( '.' )]: # Las tres primeras partes de ambos IPv4 deben ser iguales. print("El servidor seleccionado %s es errado." % IPServ) return ES.muestraFin() sys.exit() except ValueError: # La funcion rindex (busca indece desde el final de la cadena), no consigue el '.'. print("ERROR EXTRA#O DE RED") # Este error NUNCA deberia ocurrir. return ES.muestraFin() sys.exit() # Se trata de saber, cuando se actualizo por ultima vez un archivo. En el nuevo control.txt, # ademas de la informacion del sistema, tambien se guardara la fecha de descarga de cada archivo. # dControl = ES.cargaDicc("control.txt") # Diccionario de control, antes de recibir el nuevo. No implementado 27/08/2019. URL = "http://" + IPServ + ':8080/storage/' bImpar = True data = urlopen(URL + CONTROL, None, 10).read().decode( 'ISO-8859-1' ) # None, ningun parametro es enviado al servidor; 10, timeout. if None == data: print('ERROR. No hubo carga.') sys.exit() f = open(DIR + CONTROL, "w") if f: archivos = data.split('\n') fechaGrabado = archivos.pop(0) f.write('Datos grabados: ' + fechaGrabado) ahora = strftime("\nDatos descargados: %a, %d/%m/%Y %-l:%M:%S %p\n", localtime()) f.write(ahora) f.close() else: print('ERROR. No se pudo escribir en el archivo.') sys.exit() for nombreArchivo in archivos: # if nombreArchivo[5:6].isdigit(): continue # La primera linea es una fecha. El primer caracter es un digito. nombreArchivo = nombreArchivo.rstrip(' \t\n\r') if not nombreArchivo: continue sColor, bImpar = ES.colorLinea(bImpar, CO.VERDE, CO.AZUL) print("%sLeyendo%s %s remoto." % (sColor, CO.FIN, nombreArchivo)) try: data = urlopen(URL + nombreArchivo, None, 10).read().decode( 'ISO-8859-1' ) # None, ningun parametro es enviado al servidor; 10, timeout. bLeido = True # No hubo error de lectura desde el servidor. except: print("%sERROR LEYENDO%s %s %sREMOTO.%s" % (CO.ROJO, CO.FIN, nombreArchivo, CO.ROJO, CO.FIN)) bLeido = False if bLeido: # Si no hubo error de lectura desde el servidor. try: f = open(DIR + nombreArchivo, "w") bAbierto = True # No hubo error al abrir para escribir en archivo local. except: print("%sERROR AL TRATAR DE ABRIR%s %s%s %sPARA ESCRITURA.%s" % \ (CO.ROJO, CO.FIN, DIR, nombreArchivo, CO.ROJO, CO.FIN)) bAbierto = False if bAbierto: # Si no hubo error al abrir para escribir en archivo local. print("%sEscribiendo%s %s local..." % (sColor, CO.FIN, nombreArchivo)) try: f.write(data) bEscrito = True # No hubo error escribiendo en el archivo local. except: print("%sERROR AL TRATAR DE ESCRIBIR%s %s." % (CO.ROJO, CO.FIN, nombreArchivo)) bEscrito = False finally: f.close() if bEscrito: print( "%s %sactualizado con%s %d lineas!" % (nombreArchivo, (CO.CYAN if 'heute.txt' == nombreArchivo else sColor), CO.FIN, ES.cLineas(nombreArchivo))) # Fin if bEscrito # Fin if bAbierto # Fin if bLeido # Fin for return ES.muestraFin() # Funcion actualizar
) # servidor puede ser cualquiera, no es necesario usar el seleccionado. return s.getsockname( )[0] # el IP es el primer elemento de la tupla devuelta. El 2do elemento parece ser una puerta. ES.muestraInicio("Century21 Puente Real: J-40589955-7.") ind = ES.entradaConLista(droid, 'Busqueda del servidor', 'Seleccione servidor', lSitios) # Busca el servidor. if (None == ind) or (ind == (len(lSitios)-1)) or (len(lSitios) <= ind) or \ (0 > ind): # Se asegura de tener el indice correcto. ES.muestraFin() sys.exit() IPServ = lIPs[ind] if ((ind == (len(lSitios) - 2)) or ('' == IPServ)): IPServ = ES.entradaNombre(droid, 'IP del servidor', 'Introduzca IP del servidor', IPServ[0:10]) print("Obteniendo archivo desde %s (%s)." % (lSitios[ind], IPServ)) if droid: decip = droid.wifiGetConnectionInfo().result['ip_address'] hexip = hex(decip).split('x')[1] dirL = int(hexip, 16) miDirIP = socket.inet_ntoa(struct.pack("<L", dirL)) else: miDirIP = obtenerIP( IPServ) # Esta rutina fue la unica que encontre para mi IP. print("Mi direccion IP es: %s" % miDirIP) try: if IPServ[0:IPServ.rindex('.')] != miDirIP[0:miDirIP.rindex( '.')]: # Las tres primeras partes de ambos IPv4 deben ser iguales. print("El servidor seleccionado %s es errado." % IPServ)
else: ano = sAno else: print("%sEjecutar: movServifun mm ipas aaaa%s" % (CO.ROJO, CO.FIN)) sys.exit() nombArch = basename(nombArchivo) while True: if bMovil: mes = ES.entradaNumero(droid, "Mes del Concepto", "Mes del Concepto", sMes) if None == mes or 1 > int(mes) or 12 < int(mes): print("%sEl mes esta errado.%s" % (CO.ROJO, CO.FIN)) sys.exit() mes = "%02d" % mes nombArchivo = ES.entradaNombre(droid, "Nombre del archivo", "Nombre del Archivo", 'IPAS') ano = ES.entradaNumero(droid, "A#o del Movimiento", "A#o del Movimiento", sAno) bInicio = True st = '' for sNuc in ('01', '02', '03', '04', '05', '06'): nombArchivoCompleto = nombArchivo + sNuc + str(ano) + str(mes) +\ '.TXT' try: if bMovil: f = ES.abrir(nombArchivoCompleto, 'r') else: f = open(nombArchivoCompleto, 'r') except: f = False if not f: