You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.2 KiB

3 years ago
  1. elem = document.getElementsByTagName('table')[0];
  2. getnodes();
  3. async function getnodes() {
  4. let config = await fetch(api_url + 'config').
  5. then(resp => resp.json()).
  6. then(obj => { return obj.config }).
  7. catch(console.error);
  8. console.log('nodes.config:',config);
  9. let n = 1;
  10. let list = '<ul>';
  11. let nodes = [];
  12. for (node of config.nodes) {
  13. console.log('nodes.node:',node);
  14. let [ip,port] = node.split(':');
  15. let info = await get_info(node);
  16. nodes.push(info);
  17. let url=`http://${node}`;
  18. let status='offline';
  19. let info_url = `${url}${api_url}getinfo`;
  20. list += `<li>node${n} (:${port}) <a href="${url}">${node}</a> ${status} <a href="${info_url}">information</a></li>\n`;
  21. console.log('nodes.info:',info);
  22. n++;
  23. }
  24. list += '</ul>';
  25. let elem = document.getElementById('list');
  26. elem.innerHTML = list;
  27. return nodes;
  28. }
  29. function get_info(node) {
  30. let [ip,port] = node.split(':');
  31. let remote_api_url = `http://${node}${api_url}`;
  32. let promised = fetch(remote_api_url + 'getinfo').
  33. then(resp => resp.json).
  34. then(obj => { let info = obj.info; return info; }).
  35. catch(console.error);
  36. return promised;
  37. }
  38. console.log('peerid.js loaded');