const axios = require('axios'); class InstanceChecker { constructor() { this.axiosInstance = axios.create(); } async checkInstanceStatus(instance) { try { const response = await Promise.race([ this.axiosInstance.get(`https://${instance}/api/v1/instance`), new Promise((resolve, reject) => { setTimeout(() => reject(new Error('Tempo de espera excedido')), 6000); }) ]); return { instance, status: true }; } catch (error) { return { instance, status: false }; } } async fetchPeersFromAPI() { try { const response = await this.axiosInstance.get('https://mastodon.social/api/v1/instance/peers'); return response.data; } catch (error) { console.error('Erro ao buscar peers da API:', error.message); return []; } } async checkPeersStatus() { const peers = await this.fetchPeersFromAPI(); if (peers.length === 0) { console.log('Nenhum peer encontrado na API.'); return; } const results = []; for (const peer of peers) { try { const result = await this.checkInstanceStatus(peer); console.log(`${result.instance} está ${result.status}.`); results.push(result); } catch (error) { console.error(`Erro ao verificar o status de ${peer}:`, error.message); } } } } const instanceChecker = new InstanceChecker(); instanceChecker.checkPeersStatus();