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);