Només ens falta el darrer pas, publicar els dos nous comptadors en la nostra instància Mastodon.
En aquest article vam afegir al script Python 'usercount.py' el codi necessari per a obtenir els valors dels dos.
Ens cal guardar els valors que anem obtenint en fitxers csv.

Editem el fitxer usercount.py i en la secció 'INITILISATION' i afegim el següent codi :


# Check interaccions.csv exists, if not, create it -> 25/10/18
if not os.path.isfile("interaccions.csv"):
   print("interaccions.csv does not exist, creating it...")
   # Create CSV header row
   with open("interaccions.csv", "w") as myfile:
      myfile.write("timestamp,interaccions\n")
   myfile.close()

El que fa és verificar si existeix el fitxer 'interaccions.csv' i si no hi és el crea, escrivint-hi una línia amb els noms de les columnes capçalera 'timestamp' i 'interaccions', separats per la típica coma "," dels csv.
Sota d'aquestes dues columnes el codi Python anirà escrivint els valors que obtingui.
També hem de verificar (i crear si no hi és) el fitxer csv per guardar els valors dels usuaris actius. Som-hi, ho posem a sota del de interaccions:

# Check actius_setmana.csv exists, if not, create it -> 25/10/18
if not os.path.isfile("actius_setmana.csv"):
   print("actius_setmana.csv does not exist, creating it...")
   # Create CSV header row
   with open("actius_setmana.csv", "w") as myfile:
     myfile.write("timestamp,actius\n")
   myfile.close()

I per publicar el 'toot' que contingui aquests dos nous comptadors és fàcil, editem la part final de 'usercount.py' anomenada 'TOOT!'

Hi intercalem el següent codi:

toot_text += "\n"
toot_text += "Activitat setmana actual" + "\n"
toot_text += "Interaccions: %s "% interaccions + "\n"
toot_text += "Usuaris actius: %s "% actius + "\n"
toot_text += "\n"

Les variables' % interaccions' i '% actius' las vam obtenir en l'article "Mastodon -> Redis -> Python", codi que ja hauries de tenir afegit ;-).

No. No m'ho deixava pas. Abans de compondre el 'toot' a publicar volem guardar els valors obtinguts. Ho posem en la secció 'LOG THE DATA':

####################################################
# LOG THE DATA of interaccions setmana actual
####################################################
   # Append to CSV file
   with open("interaccions.csv", "a") as myfile:
        myfile.write(str(ts) + "," + str(interaccions) + "\n")

####################################################
# LOG THE DATA of usuaris actius setmana actual
####################################################
   # Append to CSV file
   with open("actius_setmana.csv", "a") as myfile:
        myfile.write(str(ts) + "," + str(actius) + "\n")

La variable 'ts' és la data i hora actual, que l'script obté al principi de la secció 'GET THE DATA':

# Get current timestamp
ts = int(time.time())

En resum, cada vegada que usercount.py s'executi (jo el tinc programat cada hora amb crontab) obtindrà els dos nous valors de les interaccions i els usuaris actius i els guardarà en els fitxers csv respectius. Desprès, els publicarà en un 'toot' a la instància Mastodon configurada.

I fins aquí la serie de tres articles. Gràcies per la teva atenció ;-)