Historial de navegación en Yacy
Hace un tiempo vengo usando SearXNG. Es un “metabuscador”: no tiene su propia base de datos, sino que delega la búsqueda a distintos buscadores, compila los resultados, y te arma la lista. La principal ventaja que tiene es que te sacás de arriba todos los resúmenes de “IA” de Google y esas cosas. La principal desventaja es… bueno, todo lo demás. Al final del día, seguís teniendo los resultados de los grandes buscadores. La mitad de los motores fallan un día sí y otro también, porque se rompe el scraping. La búsqueda en Google hace un tiempo que ya no me funciona. O sea, todo una tranza. Por eso entré a mirar Yacy con un poco más de cariño.
Yacy es un buscador peer-to-peer, abierto, que te permite no depender de servicios de terceros. En su configuración por defecto, se conecta a otras instancias de Yacy, y mantiene un índice distribuido. Está bastante bien la idea. Podés, si querés, indexar los sitios que quieras para que estén en tu instancia local. El problema es que, en su configuración por defecto, los resultados son una cagada. Así que no, no lo estoy usando en su configuración por defecto. Estoy, esencialmente, ignorando la parte de “peer to peer”.
Podés configurar Yacy para que tenga un índice local, nada más. Las búsquedas son sólo dentro de los sitios que vos indexes, no pide resultados al resto de la red. Obviamente como buscador primario eso tiene sus problemas: nunca vas a encontrar algo “nuevo” así. Pero una cosa que he notado es que muchas veces termino yendo a los mismos sitios. Las mismas documentaciones. Claro, podría tener marcadores y buscar ahí, pero eso requeriría que guarde marcadores y los mantenga organizados. Eso no sería yo.
Entonces el plan es seguir usando SearXNG, y también tener mi propio Yacy corriendo, y que sea una más de las fuentes de SearXNG. Mi idea es “alimentar” Yacy con mi historial de navegación.
Yacy tiene una forma sencilla de hacer eso: tiene un proxy HTTP. Simplemente levantás Yacy, activás el proxy, apuntás tu navegador a ese proxy, y listo, todo lo que visites se agrega al índice de Yacy. Es excelente, si sos de esas personas que está usando internet por allá por los 90, cuando nadie usaba conexiones encriptadas, y todo viajaba por texto plano, y el proxy podía ver lo que pasaba por ahí. El proxy de Yacy simplemente no funciona con HTTPS.
Así que necesitaba otra solución. Lo que quería era leer mi historial de Firefox de las últimas 24 horas, y mandarle la lista de URLs a Yacy para que las indexe.
Lo primero de todo es instalar ffsclient para poder leer tu historial de Firefox desde el sync. Después de hacer ffsclient login, ya está, ya podés hacer requests. Para traerte el historial, el comando es ffsclient history list. Eso acepta un par de parámetros, para decirle desde cuándo, el formato, y esas cosas.
Después, es sólo hacer un scriptcito:
| |
Básicamente, lo que hace ese script es traer todos los registros del historial modificados desde hace 25 horas (la superposición es intencional, así nada queda afuera), filtra por aquellos que realmente fueron visitados (los modificados son muchos más), elimina duplicados, y manda la lista a Yacy para que indexe.
Para que funcione, necesita tres variables de entorno:
YACY_HOST: el host de Yacy (por ejemplo,http://localhost:8090)EXCLUDE_REGEXP: expresión regular para excluir sitios. Por ejemplo, no quiero indexar resultados de búsqueda, así que acá meto google, duckduckgo, y mi instancia de SearXNG.YACY_CREDENTIALS: usuario y password de Yacy, para poder indexar. Por ejemplo:admin:password.
Luego de que tenés autenticado ffsclient, es cuestión de meter un cron y listo. Tenés todos los días tu historial agregado a Yacy.
Todavía tengo un drama con algunos sitios atrás de Cloudflare (en particular, BGG no lo puedo indexar), pero para la mayoría, funciona.