page2.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. async function apiGetRetry(url, retry = false) {
  2. try {
  3. const res = await fetch(url);
  4. if (!res.ok) {
  5. throw new Error("HTTP " + res.status);
  6. }
  7. const text = await res.text();
  8. if (!text || text.trim() === "") {
  9. throw new Error("empty response");
  10. }
  11. return text.trim();
  12. } catch (e) {
  13. console.log("GET failed:", url, e.message);
  14. if (retry) {
  15. setTimeout(() => apiGetRetry(url, true), 3000);
  16. }
  17. throw e;
  18. }
  19. }
  20. function getNetInfo1() {
  21. document.getElementById("text1").innerText = "";
  22. apiGetRetry("/api/network/interfaces")
  23. .then(data => {
  24. document.getElementById("text1").innerText = data;
  25. })
  26. .catch(() => {
  27. document.getElementById("text1").innerText = "获取失败";
  28. });
  29. }
  30. function getNetInfo2() {
  31. document.getElementById("text2").innerText = "";
  32. apiGetRetry("/api/network/routes")
  33. .then(data => {
  34. document.getElementById("text2").innerText = data;
  35. })
  36. .catch(() => {
  37. document.getElementById("text2").innerText = "获取失败";
  38. });
  39. }
  40. function getNetInfo3() {
  41. document.getElementById("text3").innerText = "";
  42. apiGetRetry("/api/network/dns")
  43. .then(data => {
  44. document.getElementById("text3").innerText = data;
  45. })
  46. .catch(() => {
  47. document.getElementById("text3").innerText = "获取失败";
  48. });
  49. }
  50. let netLogLevel = "";
  51. function setNetLogLevel() {
  52. const level = logLevel.value;
  53. fetch("/api/network/loglevel", {
  54. method: "POST",
  55. headers: {"Content-Type": "application/json"},
  56. body: JSON.stringify({level})
  57. })
  58. .then(async r => {
  59. if (!r.ok) throw new Error(await r.text());
  60. netLogLevel = level;
  61. })
  62. .catch(e => {
  63. logLevel.value = netLogLevel;
  64. });
  65. }
  66. function getNetLogLevel() {
  67. fetch("/api/network/loglevel")
  68. .then(async r => {
  69. if (!r.ok) throw new Error(await r.text());
  70. return r.json();
  71. })
  72. .then(d => {
  73. netLogLevel = d.log_level;
  74. logLevel.value = d.log_level;
  75. })
  76. .catch(e => {
  77. netLogLevel = "";
  78. logLevel.value = "";
  79. });
  80. }
  81. function initPage2() {
  82. getNetInfo1();
  83. getNetInfo2();
  84. getNetInfo3();
  85. getNetLogLevel();
  86. connectLog("yfkj-networkd.service", "text4");
  87. }
  88. function destroyPage2() {
  89. disconnectLog();
  90. }