2
0

func.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. "use strict";
  2. function opennamu_do_id_check(data) {
  3. if(data.match(/\.|\:/)) {
  4. return 0;
  5. } else {
  6. return 1;
  7. }
  8. }
  9. function opennamu_do_ip_render() {
  10. for(let for_a = 0; for_a < document.getElementsByClassName('opennamu_render_ip').length; for_a++) {
  11. let ip = document.getElementsByClassName('opennamu_render_ip')[for_a].innerHTML.replace(/&amp;/g, '&');
  12. fetch('/api/ip/' + opennamu_do_url_encode(ip)).then(function(res) {
  13. return res.json();
  14. }).then(function(data) {
  15. if(document.getElementsByClassName('opennamu_render_ip')[for_a].id !== "opennamu_render_end") {
  16. document.getElementsByClassName('opennamu_render_ip')[for_a].innerHTML = data["data"];
  17. document.getElementsByClassName('opennamu_render_ip')[for_a].id = "opennamu_render_end";
  18. }
  19. });
  20. }
  21. }
  22. function opennamu_do_url_encode(data) {
  23. return encodeURIComponent(data);
  24. }
  25. function opennamu_cookie_split_regex(data) {
  26. return new RegExp('(?:^|; )' + data + '=([^;]*)');
  27. }
  28. function opennamu_get_main_skin_set(set_name) {
  29. return fetch("/api/setting/" + opennamu_do_url_encode(set_name)).then(function(res) {
  30. return res.json();
  31. }).then(function(text) {
  32. if(
  33. document.cookie.match(opennamu_cookie_split_regex(set_name)) &&
  34. document.cookie.match(opennamu_cookie_split_regex(set_name))[1] !== '' &&
  35. document.cookie.match(opennamu_cookie_split_regex(set_name))[1] !== 'default'
  36. ) {
  37. return document.cookie.match(opennamu_cookie_split_regex(set_name))[1];
  38. } else {
  39. if(text[set_name]) {
  40. return text[set_name][0][0];
  41. } else {
  42. return '';
  43. }
  44. }
  45. });
  46. }
  47. function opennamu_insert_v(name, data) {
  48. document.getElementById(name).value = data;
  49. }
  50. function opennamu_do_trace_spread() {
  51. if(document.getElementsByClassName('opennamu_trace')) {
  52. document.getElementsByClassName('opennamu_trace')[0].innerHTML = '' +
  53. '<style>.opennamu_trace_button { display: none; } .opennamu_trace { white-space: pre-wrap; overflow-x: unset; text-overflow: unset; }</style>' +
  54. '' + document.getElementsByClassName('opennamu_trace')[0].innerHTML
  55. }
  56. }
  57. function opennamu_do_render(to_obj, data, name = '', do_type = '', option = '') {
  58. let url;
  59. if(do_type === '') {
  60. url = "/api/render";
  61. } else {
  62. url = "/api/render/" + do_type;
  63. }
  64. fetch(url, {
  65. method : 'POST',
  66. headers : { 'Content-Type': 'application/x-www-form-urlencoded' },
  67. body : new URLSearchParams({
  68. 'name' : name,
  69. 'data': data,
  70. 'option' : option
  71. })
  72. }).then(function(res) {
  73. return res.json();
  74. }).then(function(text) {
  75. if(document.getElementById(to_obj)) {
  76. if(text["data"]) {
  77. document.getElementById(to_obj).innerHTML = text.data;
  78. eval(text.js_data);
  79. } else {
  80. document.getElementById(to_obj).innerHTML = '';
  81. }
  82. }
  83. });
  84. }
  85. function opennamu_xss_filter(str) {
  86. return str.replace(/[&<>"'\/]/g, function(match) {
  87. switch(match) {
  88. case '&':
  89. return '&amp;';
  90. case '<':
  91. return '&lt;';
  92. case '>':
  93. return '&gt;';
  94. case "'":
  95. return '&#x27;';
  96. case '"':
  97. return '&quot;';
  98. case '/':
  99. return '&#x2F;';
  100. }
  101. });
  102. }