diff --git a/consultas/querys_sqlite.py b/consultas/querys_sqlite.py index 9f22256..5c50ba5 100755 --- a/consultas/querys_sqlite.py +++ b/consultas/querys_sqlite.py @@ -9,6 +9,7 @@ console = Console() conn = sqlite3.connect(f'{selfpath}/../ipinfo.db') c = conn.cursor() + # GeoLoc def get_geoloc(codigo): if codigo == 200: @@ -41,6 +42,7 @@ def vistas_pais_detalle(pais, codigo=''): resp = c.fetchall() return resp + def pt_visita_pais_detalle(pais, codigo=''): respuesta = vistas_pais_detalle(pais, codigo) if codigo != '': @@ -49,8 +51,8 @@ def pt_visita_pais_detalle(pais, codigo=''): titulo = f"[bold][blue]Detalle visitas pais: [/blue][yellow]{pais}[/yellow][/bold]" tbl_v = Table( title=titulo, - box = box.ROUNDED, - show_lines = False, + box=box.ROUNDED, + show_lines=False, row_styles=["dim", ""], border_style="dark_magenta") tbl_v.add_column("Fecha", justify="center", style="bright_yellow") @@ -63,6 +65,7 @@ def pt_visita_pais_detalle(pais, codigo=''): console.print(tbl_v) + # Formato fecha -- Convertir fecha 'unixepoch' a 'localtime' def unix_to_local_date(): consulta = """ @@ -71,16 +74,18 @@ def unix_to_local_date(): c.execute(consulta) return c.fetchall() + # Select geoloc by cod html -- SELECT all from registro where ip=(SELECT ip from visita where cod_html=200); def select_cod(codigo): consulta = f""" - SELECT geoloc FROM registro WHERE ip IN + SELECT geoloc FROM registro WHERE ip IN (SELECT ip FROM visita WHERE cod_html = {codigo}); """ c.execute(consulta) resp = c.fetchall() return resp + # Select fecha mayor que (ej. 1661226920) def sel_pais_desde(pais, unix_e): consulta = f""" @@ -91,14 +96,15 @@ def sel_pais_desde(pais, unix_e): resp = c.fetchall() return resp + def pt_sel_pais_fecha(pais, fecha_ux, fecha_loc): fecha = fecha_loc.split('/') - fecha = fecha[2] +'/'+ fecha[1] +'/'+ fecha[0] + fecha = fecha[2] + '/' + fecha[1] + '/' + fecha[0] respuesta = sel_pais_desde(pais, fecha_ux) tbl_v = Table( title=f"[bold][blue]Visitas {pais}, desde {fecha}[/blue][/bold]", - box = box.ROUNDED, - show_lines = False, + box=box.ROUNDED, + show_lines=False, row_styles=["dim", ""], border_style="dark_magenta") tbl_v.add_column("Fecha", justify="center", style="bright_yellow") @@ -111,9 +117,10 @@ def pt_sel_pais_fecha(pais, fecha_ux, fecha_loc): console.print(tbl_v) + # Top 50 paises def top_paises(top): - consulta = f""" + consulta = f""" SELECT registro.pais, count(registro.pais) as Visitas FROM visita, registro @@ -131,8 +138,8 @@ def pt_top_paises(top): respuesta = top_paises(top) tbl_v = Table( title=f"[bold][blue]Vistas Top {top}[/blue][/bold]", - box = box.ROUNDED, - show_lines = False, + box=box.ROUNDED, + show_lines=False, row_styles=["dim", ""], border_style="dark_magenta") tbl_v.add_column("País", justify="center", style="bright_yellow") @@ -142,13 +149,14 @@ def pt_top_paises(top): console.print(tbl_v) + # respuesta HTML para pais=? def cod_html_pais(pais): consulta = f""" SELECT cod_html, count(cod_html) AS Ocurrencias FROM visita - WHERE ip IN (SELECT `ip` FROM `registro` WHERE `pais` = '{pais}') + WHERE ip IN (SELECT `ip` FROM `registro` WHERE `pais` = '{pais}') GROUP BY cod_html ORDER BY count(*) DESC; """ @@ -161,8 +169,8 @@ def pt_html_cod_pais(pais): respuesta = cod_html_pais(pais) tbl_v = Table( title=f"[bold][blue]Códigos html: [/blue][green]{pais}[/bold][/green]", - box = box.ROUNDED, - show_lines = False, + box=box.ROUNDED, + show_lines=False, row_styles=["dim", ""], border_style="dark_magenta") tbl_v.add_column("Código", justify="center", style="bright_yellow") diff --git a/iplocate.py b/iplocate.py index 7578df9..16a567f 100755 --- a/iplocate.py +++ b/iplocate.py @@ -17,38 +17,42 @@ import logging selfpath = os.path.abspath(os.path.dirname(__file__)) parser = cfg.ConfigParser() parser.read(f'{selfpath}/config.cfg') -token = parser.get('iplocate','token') +token = parser.get('iplocate', 'token') token = token.strip("'") muevelog = f'{selfpath}/muevelog.sh ' log_file = f'{selfpath}/log/iplocate.log' console = Console() -#tkn=True -# IP validate https://stackoverflow.com/questions/319279/how-to-validate-ip-address-in-python +# tkn=True +# stackoverflow.com/questions/319279/how-to-validate-ip-address-in-python ip_regx = "^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$" ip_local_regx = "^192\.168\.0\.([0-9]|[0-9][0-9]|[0-9][0-9][0-9])$" logging.basicConfig( - filename = log_file, - format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s', - level = logging.INFO - ) + filename=log_file, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + level=logging.INFO +) logging.info("iplocate inicio") + def log_usage(proceso, info): usage_log = f"Proceso:[{proceso}] - Info: [{info}]" logging.info(usage_log) + def log_error(proceso, info): error_log = f"Proceso: [{proceso}], Info:[{info}]" logging.error(error_log) + try: ownip = requests.get('https://ifconfig.me/').text except Exception as ex: log_error("Request ip pública", ex) + def filtro_ip_propia(ip): - return True if ip != ownip and not re.search(ip_local_regx, ip) else False + return True if ip != ownip and not re.search(ip_local_regx, ip) else False def print_ipinfo(ip, tkn=True): @@ -56,16 +60,16 @@ def print_ipinfo(ip, tkn=True): try: ip_info = sql_alch.consulta_ip(ip, tkn) except Exception as ex: - print(f'Exception sql_alch.consulta_ip({ip})\n',ex) + print(f'Exception sql_alch.consulta_ip({ip})\n', ex) ip_info = None if isinstance(ip_info, dict): print_tabla_ip(ip_info) elif isinstance(ip_info, list): - lista_visitas=[] - contad=0 + lista_visitas = [] + contad = 0 for tupla in ip_info: visita = [] - if contad < 1: + if contad < 1: for ind, val in enumerate(tupla): if ind == 0: ip_dict = dict() @@ -73,32 +77,32 @@ def print_ipinfo(ip, tkn=True): ip_dict[dato.split("=")[0]] = dato.split("=")[1] print_tabla_ip(ip_dict) else: - visita.append(str(val).split(',')[3].split('=')[1]) #.ljust(24)) - visita.append(str(val).split(',')[2].split('=')[1]) #.center(11)) + visita.append(str(val).split(',')[3].split('=')[1]) # .ljust(24)) + visita.append(str(val).split(',')[2].split('=')[1]) # .center(11)) metodo = (str(val).split(',')[4].split('=')[1]) - metodo = '---' if metodo == 'None' else metodo #.center(10) + metodo = '---' if metodo == 'None' else metodo # .center(10) visita.append(metodo) request = ''.join(str(val).split(',')[5].split('=')[1:]) # configurar wrap en tabla - #request = request[:86]+'...' if len(request) > 90 else request + # request = request[:86]+'...' if len(request) > 90 else request request = '---' if request == 'None' else request visita.append(request) else: for ind, val in enumerate(tupla): if ind > 0: # aqui modificar para representar las nuevas columnas de tabla visita - visita.append(str(val).split(',')[3].split('=')[1]) #.ljust(24) - visita.append(str(val).split(',')[2].split('=')[1]) #.center(11) + visita.append(str(val).split(',')[3].split('=')[1]) #.ljust(24) + visita.append(str(val).split(',')[2].split('=')[1]) #.center(11) metodo = (str(val).split(',')[4].split('=')[1]) - metodo = '---' if metodo == 'None' else metodo #.center(10) + metodo = '---' if metodo == 'None' else metodo #.center(10) visita.append(metodo) request = ''.join(str(val).split(',')[5].split('=')[1:]) # configurar wrap en tabla - #request = request[:86]+'...' if len(request) > 90 else request + # request = request[:86]+'...' if len(request) > 90 else request request = '---' if request == 'None' else request visita.append(request) lista_visitas.append(visita) - contad+=1 + contad += 1 print_tabla_visita(lista_visitas) else: console.print(f'[red]Error type(ip_info) = [/red][magenta]{type(ip_info)}[/magenta][red]][/red]') @@ -108,14 +112,14 @@ def print_ipinfo(ip, tkn=True): def print_tabla_ip(ip_info): - tbl_ip = Table(box = box.ROUNDED, highlight=True, border_style="dim plum1") + tbl_ip = Table(box=box.ROUNDED, highlight=True, border_style="dim plum1") tbl_ip.add_column("IP", justify="left", style="bold #005fff", no_wrap=True) tbl_ip.add_column(f"{ip_info['ip']}", justify="left", style="#00ff5f") try: if 'host' in ip_info: tbl_ip.add_row("HOSTNAME", ip_info['host']) elif 'hostname' in ip_info: - tbl_ip.add_row("HOSTNAME", ip_info['hostname']) + tbl_ip.add_row("HOSTNAME", ip_info['hostname']) if 'anycast' in ip_info: anycast = 'Si' if ip_info['anycast'] else 'No' tbl_ip.add_row("ANYCAST", anycast) @@ -154,8 +158,9 @@ def print_tabla_ip(ip_info): except Exception as ex: print('Exception print(tabla_ip): ', ex) + def print_tabla_visita(lista_visitas): - tbl_v = Table(box = box.ROUNDED, show_lines = False,row_styles=["dim", ""], border_style="dark_orange3") + tbl_v = Table(box=box.ROUNDED, show_lines=False, row_styles=["dim", ""], border_style="dark_orange3") tbl_v.add_column("Fecha visita", justify="center", style="bright_yellow", no_wrap=True) tbl_v.add_column("Codigo", justify="center", style="bold dodger_blue2") tbl_v.add_column("Metodo", justify="center", style="bright_magenta") @@ -168,21 +173,21 @@ def print_tabla_visita(lista_visitas): def archivo_ips(ips, tkn=True): with open(ips, 'r') as lista: - for linea in lista: - if '\n' in linea: - linea = linea.split('\n')[0] - print_ipinfo(linea, tkn) + for linea in lista: + if '\n' in linea: + linea = linea.split('\n')[0] + print_ipinfo(linea, tkn) sys.exit(0) + def _sync(): console.print('[bold yellow]Sincronizando logs del servidor(bash script)[/bold yellow]') subprocess.check_call(muevelog+"%s" % "--start", shell=True) - def main(): if len(sys.argv) > 1: - try: + try: match sys.argv[1]: case '--all': _sync() @@ -262,7 +267,7 @@ def main(): else: querys.pt_visita_pais_detalle(pais.upper()) case _: - console.print(f'[red] query desconocida [bold]{sys.argv[2]}[/bold][/red]') + console.print(f'[red] query desconocida [bold]{sys.argv[2]}[/bold][/red]') case _: ip = sys.argv[1] print_ipinfo(ip, False) @@ -299,6 +304,7 @@ def uso_consultas(): """ console.print(ayuda) + def uso(): ayuda = f""" [bold blue]ipLocate[/bold blue] @@ -310,7 +316,7 @@ def uso(): [bold yellow]iploc -h[/bold yellow] [green]- Muestra esta ayuda.[/green] [bold yellow]iploc -hq[/bold yellow] [green]- Ayuda sobre queries.[/green] - + [bold blue]Consultas ipinfo.io:[/bold blue] [bold yellow]iploc[/bold yellow] [blue][/blue] [green]- Consulta la información de disponible en ipinfo.io.[/green] [bold yellow]iploc -f [/bold yellow][blue] [/blue] [green]- Consulta info. de las IPs en (ipinfo.io).[/green] @@ -331,5 +337,6 @@ def uso(): """ console.print(ayuda) + if __name__ == "__main__": main() diff --git a/maps/map_thumb.png b/maps/map_thumb.png index 790ff61..9be3573 100644 Binary files a/maps/map_thumb.png and b/maps/map_thumb.png differ diff --git a/mapsgen.py b/mapsgen.py index 2e91938..b10aa7e 100644 --- a/mapsgen.py +++ b/mapsgen.py @@ -1,8 +1,8 @@ import staticmaps from iplocate import selfpath -#context.set_tile_provider(staticmaps.tile_provider_ArcGISWorldImagery) -#context.set_tile_provider(staticmaps.tile_provider_CartoDarkNoLabels) +# context.set_tile_provider(staticmaps.tile_provider_ArcGISWorldImagery) +# context.set_tile_provider(staticmaps.tile_provider_CartoDarkNoLabels) cntxt200 = staticmaps.Context() cntxt200.set_tile_provider(staticmaps.tile_provider_OSM) cntxt300 = staticmaps.Context() @@ -10,17 +10,18 @@ cntxt300.set_tile_provider(staticmaps.tile_provider_OSM) cntxtAll = staticmaps.Context() cntxtAll.set_tile_provider(staticmaps.tile_provider_OSM) + def map200(geolocs): for loc in geolocs: lat = float(loc[0].split(',')[0]) lon = float(loc[0].split(',')[1]) marca200 = staticmaps.create_latlng(lat,lon) - cntxt200.add_object(staticmaps.Marker(marca200 ,color=staticmaps.parse_color('#00ff29'), size=7)) + cntxt200.add_object(staticmaps.Marker(marca200, color=staticmaps.parse_color('#00ff29'), size=7)) svg_image = cntxt200.render_svg(1920, 1080) - with open(f"{selfpath}/maps/map_200.svg", "w", encoding ="utf-8") as f: + with open(f"{selfpath}/maps/map_200.svg", "w", encoding="utf-8") as f: svg_image.write(f, pretty=True) - + image = cntxt200.render_cairo(1920, 1080) image.write_to_png(f"{selfpath}/maps/map_200.png") @@ -30,12 +31,12 @@ def map300(geolocs): lat = float(loc[0].split(',')[0]) lon = float(loc[0].split(',')[1]) marca300 = staticmaps.create_latlng(lat,lon) - cntxt300.add_object(staticmaps.Marker(marca300 ,color=staticmaps.parse_color('#b20101'), size=5)) + cntxt300.add_object(staticmaps.Marker(marca300, color=staticmaps.parse_color('#b20101'), size=5)) svg_image = cntxt300.render_svg(1920, 1080) - with open(f"{selfpath}/maps/map_300.svg", "w", encoding ="utf-8") as f: + with open(f"{selfpath}/maps/map_300.svg", "w", encoding="utf-8") as f: svg_image.write(f, pretty=True) - + image = cntxt300.render_cairo(1920, 1080) image.write_to_png(f"{selfpath}/maps/map_300.png") @@ -47,9 +48,9 @@ def maps_gen(locs_200, locs_300): for loc in locs_300: lat = float(loc[0].split(',')[0]) lon = float(loc[0].split(',')[1]) - marca3 = staticmaps.create_latlng(lat,lon) + marca3 = staticmaps.create_latlng(lat, lon) cntxtAll.add_object(staticmaps.Marker(marca3, color=staticmaps.parse_color('#b20101'), size=5)) - + for loc in locs_200: lat = float(loc[0].split(',')[0]) lon = float(loc[0].split(',')[1]) @@ -57,9 +58,9 @@ def maps_gen(locs_200, locs_300): cntxtAll.add_object(staticmaps.Marker(marca3, color=staticmaps.parse_color('#00ff29'), size=6)) svg_image = cntxtAll.render_svg(1920, 1080) - with open(f"{selfpath}/maps/map_all.svg", "w", encoding ="utf-8") as f: + with open(f"{selfpath}/maps/map_all.svg", "w", encoding="utf-8") as f: svg_image.write(f, pretty=True) - + image = cntxtAll.render_cairo(1920, 1080) image.write_to_png(f"{selfpath}/maps/map_all.png") maps_thumbs(locs_200, locs_300) @@ -72,7 +73,7 @@ def maps_thumbs(locs_200, locs_300): for loc in locs_300: lat = float(loc[0].split(',')[0]) lon = float(loc[0].split(',')[1]) - demo300 = staticmaps.create_latlng(lat,lon) + demo300 = staticmaps.create_latlng(lat, lon) cntxtdemo.add_object(staticmaps.Marker(demo300, color=staticmaps.parse_color('#b20101'), size=4)) for loc in locs_200: @@ -82,9 +83,8 @@ def maps_thumbs(locs_200, locs_300): cntxtdemo.add_object(staticmaps.Marker(demo200, color=staticmaps.parse_color('#00ff29'), size=5)) svg_thumb = cntxtdemo.render_svg(1024, 768) - with open(f"{selfpath}/maps/map_thumb.svg", "w", encoding ="utf-8") as f: + with open(f"{selfpath}/maps/map_thumb.svg", "w", encoding="utf-8") as f: svg_thumb.write(f, pretty=True) - + image = cntxtdemo.render_cairo(1024, 768) image.write_to_png(f"{selfpath}/maps/map_thumb.png") - diff --git a/sql_alch.py b/sql_alch.py index 00bb551..088e307 100644 --- a/sql_alch.py +++ b/sql_alch.py @@ -24,6 +24,7 @@ base_de_datos = f'sqlite:////{selfpath}/ipinfo.db' console = Console() Base = declarative_base() + # Tabla registro ip info class Registro(Base): """Definición de tabla 'Registro'""" @@ -50,15 +51,14 @@ class Registro(Base): """Convierte fecha 'unix epoch' y devuelve en formato local""" return time.asctime(time.localtime(int(self.fecha_reg.__repr__()))) - def __repr__(self) -> str: - #print('en repr') + # print('en repr') try: rep = f'ip={self.ip};host={self.hostname};anycast={self.anycast};'+\ f'cuidad={self.cuidad};region={self.region};pais={self.pais};'+\ f'geoloc={self.geoloc};organizacion={self.organizacion};'+\ f'fecha_reg={self.get_fecha()};tzone={self.tzone};cod_post={self.cod_post}' - #print('Repr:', rep) + # print('Repr:', rep) return rep except Exception as ex: print('Exception :', ex) @@ -67,7 +67,6 @@ class Registro(Base): class Visita(Base): """Definición de tabla 'Visita'""" - __tablename__ = 'visita' id = Column(Integer, Sequence('visita_id_seq'), primary_key=True) ip = Column(String, ForeignKey('registro.ip')) @@ -75,9 +74,8 @@ class Visita(Base): fecha = Column(Integer) metodo = Column(String, default='---') consulta = Column(String, default='---') - registro = Column(Integer, default=0) - visita_ip = relationship("Registro", back_populates="visitas") - + registro = Column(Integer, default=0) + visita_ip = relationship("Registro", back_populates="visitas") def get_fecha(self): """Convierte fecha 'unix epoch' y devuelve en formato local""" @@ -99,7 +97,7 @@ class Visita(Base): engine = create_engine(base_de_datos) Base.metadata.create_all(engine) -#Base.metadata.create_all(engine.execution_options(synchronize_session="fetch")) +# Base.metadata.create_all(engine.execution_options(synchronize_session="fetch")) Session = sessionmaker(bind=engine) session = Session() @@ -112,10 +110,10 @@ fecha_error = "2022/05/10 07:11:46" fecha_access = "10/May/2022:11:42:14 -0400".split(' ')[0] """ + def fecha_access_to_epoch(fecha): """Convierte la fecha del formato entregado por access.log y reverse_access.log(nginx) al formato unix epoch. - :fecha: str Fecha :returns: int unix epoch fecha (secs) """ @@ -123,10 +121,10 @@ def fecha_access_to_epoch(fecha): fecha_unix = int(time.mktime(fecha.timetuple())) return fecha_unix + def fecha_error_to_epoch(fecha): """Convierte la fecha del formato entregado por error.log y reverse_error.log (nginx) al formato unix epoch. - :fecha_local: str Fecha :returns: int unix epoch fecha (secs) """ @@ -134,9 +132,9 @@ def fecha_error_to_epoch(fecha): fecha_unix = int(time.mktime(fecha.timetuple())) return fecha_unix + def epoch_to_local(fecha): """Convierte fecha unix epoch a localtime - :fecha: int Fecha (secs) :returns: str Fecha """ @@ -148,7 +146,7 @@ def ip_registrada(ip): en tabla 'Visita' para ip pasada como argumento. """ try: - ip_reg = session.query(Visita).filter(Visita.ip==ip).filter(Visita.registro==1).first() + ip_reg = session.query(Visita).filter(Visita.ip == ip).filter(Visita.registro == 1).first() except Exception as ex: print('Exception', ex) ip_reg = None @@ -219,7 +217,7 @@ def carga_access_log(log): print('Exception: ', ex) try: with Progress() as prog, session: - task1=prog.add_task("[yellow bold]Guardando[/yellow bold]", total=len(session.new)) + task1 = prog.add_task("[yellow bold]Guardando[/yellow bold]", total=len(session.new)) session.commit() while not prog.finished: prog.update(task1, advance=0.1) @@ -296,9 +294,9 @@ def carga_error_logs(log): url = url[:252]+'...' except Exception: url = '---' - if ip != None: + if ip is not None: if filtro_ip_propia(ip): - fecha = int(fecha_error_to_epoch(fecha)) + fecha = int(fecha_error_to_epoch(fecha)) codigo = 0 if ip_registrada(ip): session.add(Visita(ip=ip, @@ -324,7 +322,7 @@ def carga_error_logs(log): pass try: with Progress() as prog, session: - task1=prog.add_task("[yellow bold]Guardando[/yellow bold]", total=len(session.new)) + task1 = prog.add_task("[yellow bold]Guardando[/yellow bold]", total=len(session.new)) session.commit() while not prog.finished: prog.update(task1, advance=0.1) @@ -368,7 +366,7 @@ def carga_registro_ip(ip_info): if not ip_registrada(ip_info['ip']): info_dic = {} info_dic['ip'] = ip_info['ip'] - info_dic['hostname'] = ip_info['hostname'] if 'hostname' in ip_info else None + info_dic['hostname'] = ip_info['hostname'] if 'hostname' in ip_info else None info_dic['anycast'] = ip_info['anycast'] if 'anycast' in ip_info else None info_dic['ciudad'] = ip_info['city'] if 'city' in ip_info else None info_dic['region'] = ip_info['region'] if 'region' in ip_info else None @@ -378,25 +376,25 @@ def carga_registro_ip(ip_info): info_dic['tzone'] = ip_info['timezone'] if 'timezone' in ip_info else None info_dic['cod_post'] = ip_info['postal'] if 'postal' in ip_info else None try: - session.add(Registro( ip = info_dic['ip'], - hostname = info_dic['hostname'], - anycast = info_dic['anycast'], - cuidad = info_dic['ciudad'], - region = info_dic['region'], - pais = info_dic['pais'], - geoloc = info_dic['geoloc'], - organizacion = info_dic['organizacion'], - fecha_reg = int(time.mktime(time.localtime())), - tzone = info_dic['tzone'], - cod_post = info_dic['cod_post'], - )) + session.add(Registro(ip=info_dic['ip'], + hostname=info_dic['hostname'], + anycast=info_dic['anycast'], + cuidad=info_dic['ciudad'], + region=info_dic['region'], + pais=info_dic['pais'], + geoloc=info_dic['geoloc'], + organizacion=info_dic['organizacion'], + fecha_reg=int(time.mktime(time.localtime())), + tzone=info_dic['tzone'], + cod_post=info_dic['cod_post'], + )) session.commit() except Exception as ex: print('[session.commit(ADD REGISTRO)] Exception: ', ex) print('Datos-Dic: ', info_dic) stmt = update(Visita).where(Visita.ip == ip_info['ip']).values(registro=1).\ - execution_options(synchronize_session="fetch") - #result = session.execute(stmt) + execution_options(synchronize_session="fetch") + # result = session.execute(stmt) try: session.execute(stmt) session.commit() @@ -414,13 +412,14 @@ def consulta_ip(ip_consulta, tkn=True): consulta = f'https://ipinfo.io/{ip_consulta}{token}' info_ip = requests.get(consulta).text return loads(info_ip) - case False: + case False: consulta = f'https://ipinfo.io/{ip_consulta}' info_ip = requests.get(consulta).text return loads(info_ip) case None: resp = consulta_db(ip_consulta) - return resp + return resp + def consulta_db(ip): """Consulta base de datos por la IPs pasada como argumento. @@ -435,7 +434,6 @@ def consulta_db(ip): print('Exception consulta_db:\n', ex) - def registro_ips(): """Consulta API, obtiene datos de IPs en tabla 'Visita' cuya valor en columna 'registro' sea '0'. Utiliza clase @@ -444,18 +442,18 @@ def registro_ips(): statement = select(Visita).filter_by(registro=0) with Progress() as progress: total = len(session.execute(statement).scalars().all()) - task1= progress.add_task("[bold blue]Cargando [/bold blue]", total=total) + task1 = progress.add_task("[bold blue]Cargando [/bold blue]", total=total) total_ant = total while not progress.finished: res = session.execute(statement).scalars().first() total_act = len(session.execute(statement).scalars().all()) avance = total_ant - total_act - #print('total update:',total,'total_act:', total_act,' Diferencia: ', avance ) + # print('total update:',total,'total_act:', total_act,' Diferencia: ', avance ) total_ant = total_act if res is None: - progress.update (task1, advance=avance) + progress.update(task1, advance=avance) else: - ip_actual= res.ip + ip_actual = res.ip ip_info = consulta_ip(ip_actual, True) carga_registro_ip(ip_info) progress.update(task1, advance=avance) @@ -471,6 +469,6 @@ def mapsgen(): try: loc_200 = get_geoloc(200) loc_300 = get_geoloc(300) - maps_gen(loc_200, loc_300) + maps_gen(loc_200, loc_300) except Exception as ex: print('Exception mapsgen: ', ex)