-- Leo's gemini proxy

-- Connecting to sl1200.dystopic.world:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;lang=es-ES

Cómo publicar un listado con los artículos más visitados de tu cápsula

2022-11-01

#gemini #agate #journalctl

El objetivo es facilitar al visitante un listado con los 20 artículos más visitados, para ello tendremos que:


Asegurarnos de que nuestro usuario tiene acceso a consultar journalctl, si no es así usaremos el comando:

	sudo usermod -a -G systemd-journal usuario

Extraemos los logs del servidor gemini creados durante el último minuto para ir generando un archivo con todos los logs que nos interesan, deberás adaptarlo a los logs que genere tu servidor:

	journalctl --since "1 min ago" | grep 'agate-server' | sed '/feed.gmi/d' | sed '/atom.xml/d' | sed '/error/d' | sed '/robots/d' | sed '/top_visitas/d' | cut -d " " -f 12 | sed 's/\"//g' | cut -b 31- | awk 'NF' >> /home/usuario/bin/visitas/logvisitas

Como ves extraigo los logs de agate-server y elimino los logs generados por visitas correspondientes a feed.gmi, atom.xml, robots, errores y las propias del listado de top_visitas que quiero generar, también borro líneas en blanco, por algo que no entiendo de vez en cuando sale una.


Obtención listado de las 20 entradas más visitadas:

	sort /home/usuario/bin/visitas/logvisitas  | uniq -c | sort -nr | head -n 20 > /home/usuario/bin/visitas/listado

Publicación del listado en la cápsula, deberé generar un archivo .gmi y añadir "=>" al principio de cada línea:

	less /home/usuario/bin/visitas/listado | tail -n +2 | head -n 20 > /home/usuario/gemini/content/top_visitas
	less /home/usuario/gemini/content/top_visitas | sed -r 's/(.*)( )//g' | sed 's/^/=>/' > /home/usuario/gemini/content/top_visitas.gmi

Una vez tengas el script personalizando las rutas y filtros, lo haces ejecutable con "chmod+x" y lo programas con "crontab -e". Como has visto pongo siempre las rutas absolutas, es necesario si vas a programar el script con cron.



This work by SL1200 is licensed under CC BY 4.0


◄ BACK

🏠 Home

-- Response ended

-- Page fetched on Fri May 17 07:01:11 2024