ed: -q --detalle-pais <pais> opc. <codigo_html>

This commit is contained in:
jp.av.dev 2022-09-21 00:28:18 -03:00
parent 953fc4afc8
commit 4ba222018f
2 changed files with 39 additions and 19 deletions

View File

@ -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", ""],

View File

@ -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 <pais> [/magenta][red][bold]<CODIGO> 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]<pais>[/blue] [green]- Conteo de respuestas html para <pais> (ejs. CL AR)[/green]
[bold yellow]iploc -q --top [/bold yellow][blue]<n>[/blue] [green]- Visitas top <n> paises[/green]
[bold yellow]iploc -q --detalle-pais[/bold yellow][blue] <pais>[/blue] [green]- Muestra al detalle las visitas desde <pais>[/green]
[bold yellow]iploc -q --pais-desde[/bold yellow][blue] <pais> <fecha>[/blue] [green]- Detalle visitas <pais> desde <fecha> (ej. 2022/9/19)[/green]
Uso: [deep_sky_blue1][bold][yellow]iploc -q[/yellow][blue] <consulta>[/bold][/blue]
[deep_sky_blue1]Consultas a base de datos:[deep_sky_blue1]
[bold yellow]-p[/bold yellow] [blue]<pais>[/blue] [green]- Conteo de respuestas html para <pais> (ejs. CL AR)[/green]
[bold yellow]--top [/bold yellow][blue]<n>[/blue] [green]- Visitas top <n> paises[/green]
[bold yellow]--pais-desde[/bold yellow][blue] <pais> <fecha>[/blue] [green]- Detalle visitas <pais> desde <fecha> (ej. 2022/9/19)[/green]
[bold yellow]--detalle-pais[/bold yellow][blue] <pais> opc(<cod>)[/blue] [green] - Muestra al detalle las visitas desde <pais>,
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]