From 4ba222018f9cc01c4286a8db96d8aa32f84396f2 Mon Sep 17 00:00:00 2001 From: "jp.av.dev" Date: Wed, 21 Sep 2022 00:28:18 -0300 Subject: [PATCH] ed: -q --detalle-pais opc. --- consultas/querys_sqlite.py | 28 +++++++++++++++++++--------- iplocate.py | 30 ++++++++++++++++++++---------- 2 files changed, 39 insertions(+), 19 deletions(-) diff --git a/consultas/querys_sqlite.py b/consultas/querys_sqlite.py index e931694..a2d25c9 100755 --- a/consultas/querys_sqlite.py +++ b/consultas/querys_sqlite.py @@ -10,20 +10,30 @@ conn = sqlite3.connect(f'{selfpath}/../ipinfo.db') c = conn.cursor() # Detalle Visitas por pais -def vistas_pais_detalle(pais): - pais = pais - consulta = f""" - SELECT DATE(fecha, 'unixepoch') AS fecha_local, ip, metodo, cod_html, consulta - FROM visita WHERE ip IN (SELECT `ip` FROM `registro` WHERE `pais` = '{pais}'); - """ +def vistas_pais_detalle(pais, codigo=''): + if codigo == '': + consulta = f""" + SELECT DATE(fecha, 'unixepoch') AS fecha_local, ip, metodo, cod_html, consulta + FROM visita WHERE ip IN (SELECT `ip` FROM `registro` WHERE `pais` = '{pais}'); + """ + else: + consulta = f""" + SELECT DATE(fecha, 'unixepoch') AS fecha_local, ip, metodo, cod_html, consulta + FROM visita WHERE ip IN (SELECT `ip` FROM `registro` WHERE `pais` = '{pais}') + and cod_html = '{codigo}'; + """ c.execute(consulta) resp = c.fetchall() return resp -def pt_visita_pais_detalle(pais): - respuesta = vistas_pais_detalle(pais) +def pt_visita_pais_detalle(pais, codigo=''): + respuesta = vistas_pais_detalle(pais, codigo) + if codigo != '': + titulo = f"[bold][blue]Detalle visitas pais: [yellow]{pais}[blue] respuesta [/blue][yellow]{codigo}[/bold][yellow]" + else: + titulo = f"[bold][blue]Detalle visitas pais: [/blue][yellow]{pais}[/yellow][/bold]" tbl_v = Table( - title=f"[bold][blue]Detalle visitas pais: [/blue][yellow]{pais}[/yellow][/bold]", + title=titulo, box = box.ROUNDED, show_lines = False, row_styles=["dim", ""], diff --git a/iplocate.py b/iplocate.py index 6421f09..a9a9d02 100755 --- a/iplocate.py +++ b/iplocate.py @@ -237,14 +237,21 @@ def main(): querys.pt_sel_pais_fecha(pais.upper(), fecha_unix, fecha_local) case '--detalle-pais': pais = sys.argv[3] - querys.pt_visita_pais_detalle(pais.upper()) + if len(sys.argv) > 4: + if sys.argv[4].isnumeric(): + codigo = sys.argv[4] + querys.pt_visita_pais_detalle(pais.upper(), codigo) + else: + console.print(f'[magenta]-q --detalle-pais [/magenta][red][bold] inválido ({sys.argv[4]})[/bold][/red]') + else: + querys.pt_visita_pais_detalle(pais.upper()) case _: console.print(f'[red] query desconocida [bold]{sys.argv[2]}[/bold][/red]') case _: ip = sys.argv[1] print_ipinfo(ip, False) - except IndexError: - console.print('[red] error sys.args! [/red]') + except IndexError as ex: + console.print('[red] error sys.args! [/red]', ex) finally: sys.exit(0) @@ -263,13 +270,16 @@ def uso_consultas(): ayuda = f""" [bold blue]ipLocate[/bold blue] - [deep_sky_blue1]Reportes según consultas a base de datos.[/deep_sky_blue1] + [deep_sky_blue1]Reportes según consultas a base de datos. - [bold blue]Consultas a base de datos:[/bold blue] - [bold yellow]iploc -q -p[/bold yellow] [blue][/blue] [green]- Conteo de respuestas html para (ejs. CL AR)[/green] - [bold yellow]iploc -q --top [/bold yellow][blue][/blue] [green]- Visitas top paises[/green] - [bold yellow]iploc -q --detalle-pais[/bold yellow][blue] [/blue] [green]- Muestra al detalle las visitas desde [/green] - [bold yellow]iploc -q --pais-desde[/bold yellow][blue] [/blue] [green]- Detalle visitas desde (ej. 2022/9/19)[/green] + Uso: [deep_sky_blue1][bold][yellow]iploc -q[/yellow][blue] [/bold][/blue] + + [deep_sky_blue1]Consultas a base de datos:[deep_sky_blue1] + [bold yellow]-p[/bold yellow] [blue][/blue] [green]- Conteo de respuestas html para (ejs. CL AR)[/green] + [bold yellow]--top [/bold yellow][blue][/blue] [green]- Visitas top paises[/green] + [bold yellow]--pais-desde[/bold yellow][blue] [/blue] [green]- Detalle visitas desde (ej. 2022/9/19)[/green] + [bold yellow]--detalle-pais[/bold yellow][blue] opc()[/blue] [green] - Muestra al detalle las visitas desde , + filtro por codigo opcional.[/green] """ console.print(ayuda) @@ -279,7 +289,7 @@ def uso(): [deep_sky_blue1]Consulta en ipinfo.io (con o sin token) información sobre IP(s). Carga logs de nginx en base de datos. - Consulta con ipinfo.io y registra en base de datos. + Consulta en ipinfo.io y registra en base de datos. Consultas y reportes según información en la base de datos.[/deep_sky_blue1] [bold yellow]iploc -h[/bold yellow] [green]- Muestra esta ayuda.[/green]