Bé, ja tinc llesta el que podria ser la primera versió beta. Per cada usuari local obté el següent:
- calcula el ràtio dels favorits locals i remots.
- calcula el ràtio dels impulsos locals i remots.
- mostra el total de servidors remots que han afavorit a cada usuari local.
- mostra el total de servidors remots que han impulsat a cada usuari local.
En la captura es pot veure els ràtios dels primers 50 usuaris de mastodont.cat, ordenats per el ràtio més alt d'impulsos remots obtinguts.
He afegit al codi que també agafi els seguidors de cada usuari, tant locals com del fedivers.
Amb tota aquesta informació ja es pot valorar la capacitat dels usuaris d'un servidor de transcendir en altres, o sigui, el grau d'acceptació que tenen les nostres publicacions.
El mateix programa en #Python ara el puc executar en multiprocés o en mono procés passant-li un argument.
En multiprocés no es pot depurar i quan necessitava fer-ho havia de comentar el codi que crida al multiprocés i activar les línies de mono procés.
Ara ja no cal, al executar el programa li passo l'argument '--mono' i ja està. Fàcil i divertit.
L'algoritme d'obtenció dels favorits ha estat una mica més complicat perquè l'informació és a dues taules diferents: "favourites" i "accounts"
El algoritme dels impulsos és aquest. Obté de la base de dades "statuses" quants usuaris locals i desprès quants no locals (del fedivers) han impulsat un tut concret.
Ja he trobat la manera de consultar quants impulsos son locals i quants del fedivers de cada tut. El mateix per els favorits. 😀
El programa triga 361,49 segons en processar els 114.923 tuts públics de 2.343 usuaris locals.
El multiprocés de #Python li dona una velocitat espectacular.
L'API de Mastodon permet obtenir el llistat dels usuaris que han impulsat o fet fav a un tut local, amb el format usuari@servidor.
Fent servir l'API ja tindria el programa fet però hi ha un problema: el codi necessita buscar aquesta informació de cada un dels milers de tuts de cada un dels centenars d'usuaris i com que s'auto protegeix (té un limit de peticions per usuari o applicació), el meu programa arriba de seguida al limit de l'API.
Bé, ja tinc fet un algoritme que obté les id de tots els tuts públics de cada usuari local.
Desprès, el codi ja sap trobar quants impulsos o m'agrada té cada un dels tuts públics de cada usuari local i guarda aquests valors en una base de dades (exemple en la captura).
La captura mostra, per cada usuari local, el total de tuts públics, el total de "favs" i el total d'impulsos que han rebut aquests tuts públics.
M’agrada el català!