fetch-instances-list.js
1 import fs from 'fs'; 2 3 const { INSTANCES_SOCIAL_SECRET_TOKEN } = process.env; 4 5 const params = new URLSearchParams({ 6 count: 0, 7 min_users: 500, 8 sort_by: 'active_users', 9 sort_order: 'desc', 10 }); 11 12 const url = `https://instances.social/api/1.0/instances/list?${params.toString()}`; 13 const results = await fetch(url, { 14 headers: { 15 Authorization: `Bearer ${INSTANCES_SOCIAL_SECRET_TOKEN}`, 16 }, 17 }); 18 19 const json = await results.json(); 20 21 // Filters 22 json.instances = json.instances.filter( 23 (instance) => Number(instance.connections) > 20, 24 ); 25 26 const names = json.instances.map((instance) => instance.name); 27 28 // Write to file 29 const path = './src/data/instances.json'; 30 fs.writeFileSync(path, JSON.stringify(names, null, '\t'), 'utf8'); 31 32 // Write everything to file, for debugging 33 const path2 = './src/data/instances-full.json'; 34 fs.writeFileSync(path2, JSON.stringify(json, null, '\t'), 'utf8');