user_name_parser.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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_url_encode(data) {
  10. return encodeURIComponent(data);
  11. }
  12. function opennamu_do_user_document_check() {
  13. let data_all = document.getElementsByClassName('opennamu_user_link');
  14. for(let for_a = 0; for_a < data_all.length; for_a++) {
  15. if(data_all && data_all[for_a]) {
  16. if(data_all[for_a].getAttribute('complete') === '1') {
  17. continue;
  18. }
  19. }
  20. let data = data_all[for_a].innerHTML;
  21. let xhr = new XMLHttpRequest();
  22. xhr.open("POST", "/api/user_info/" + opennamu_do_url_encode(data));
  23. xhr.send();
  24. document.getElementsByClassName('opennamu_user_link')[for_a].setAttribute('complete', '1');
  25. xhr.onreadystatechange = function() {
  26. if(this.readyState === 4 && this.status === 200) {
  27. // start part
  28. let xhr_data = JSON.parse(this.responseText);
  29. // user document part
  30. if(xhr_data[data]['document'] === 0) {
  31. document.getElementsByClassName('opennamu_user_link')[for_a].id = "not_thing";
  32. }
  33. // user auth part
  34. let user_data = document.getElementsByClassName('opennamu_user_link')[for_a].innerHTML;
  35. if(xhr_data[data]['auth'] === 0) {
  36. } else if(xhr_data[data]['auth'] === 1) {
  37. } else {
  38. user_data = '<b>' + user_data + '</b>';
  39. }
  40. // user title part
  41. user_data = xhr_data[data]['user_title'] + user_data;
  42. // end part
  43. document.getElementsByClassName('opennamu_user_link')[for_a].innerHTML = user_data;
  44. }
  45. }
  46. }
  47. }
  48. function opennamu_do_ip_parser() {
  49. let data_all = document.getElementsByClassName('opennamu_ip_render');
  50. let data_list = {};
  51. for(let for_a = 0; for_a < data_all.length; for_a++) {
  52. if(data_all && data_all[for_a]) {
  53. if(data_all[for_a].getAttribute('complete') === '1') {
  54. continue;
  55. }
  56. }
  57. let data = data_all[for_a].innerHTML;
  58. let data_raw = data;
  59. if(data_list[data_raw]) {
  60. document.getElementsByClassName('opennamu_ip_render')[for_a].innerHTML = data_list[data_raw];
  61. document.getElementsByClassName('opennamu_ip_render')[for_a].setAttribute('complete', '1');
  62. continue;
  63. }
  64. if(opennamu_do_id_check(data_raw)) {
  65. data = '' +
  66. '<a class="opennamu_user_link" ' +
  67. 'href="/w/user:' + opennamu_do_url_encode(data_raw) + '">' +
  68. data_raw +
  69. '</a>' +
  70. '';
  71. } else {
  72. }
  73. data += ' <a href="/user/' + opennamu_do_url_encode(data_raw) + '">(🛠︎)</a>';
  74. document.getElementsByClassName('opennamu_ip_render')[for_a].innerHTML = data;
  75. document.getElementsByClassName('opennamu_ip_render')[for_a].setAttribute('complete', '1');
  76. data_list[data_raw] = data;
  77. }
  78. opennamu_do_user_document_check();
  79. }
  80. document.addEventListener("DOMContentLoaded", opennamu_do_ip_parser);