36 lines
1.4 KiB
JavaScript

import fs from "node:fs";
import axios from "axios";
// Charger le fichier JSON
const recommendations = JSON.parse(fs.readFileSync('documents/recommendations_abonnements.json', 'utf8'));
// Fonction pour récupérer les informations d'un compte Mastodon à partir de son ID
async function getAccountInfo(id) {
const response = await axios.get(`https://mastodon.cipherbliss.com/api/v1/accounts/${id}`);
const account = response.data;
return {
pseudo: account.username,
name: account.display_name,
description: account.note
};
}
// Sélectionner 3 comptes au hasard
const selectedAccounts = [];
for (let i = 0; i < 3; i++) {
const randomIndex = Math.floor(Math.random() * recommendations.length);
const accountId = recommendations[randomIndex].id;
selectedAccounts.push(accountId);
}
// Récupérer les informations des comptes sélectionnés
const accountsInfo = await Promise.all(selectedAccounts.map(async (id) => {
return getAccountInfo(id);
}));
// Générer le message de recommandation
const message = `Je vous recommande de suivre ces trois comptes Mastodon :
* ${accountsInfo[0].pseudo} (${accountsInfo[0].name}) - ${accountsInfo[0].description}
* ${accountsInfo[1].pseudo} (${accountsInfo[1].name}) - ${accountsInfo[1].description}
* ${accountsInfo[2].pseudo} (${accountsInfo[2].name}) - ${accountsInfo[2].description}`;
console.log(message);