bbs_main.js 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. "use strict";
  2. function opennamu_bbs_main() {
  3. fetch('/api/v2/bbs').then(function(res) {
  4. return res.json();
  5. }).then(function(bbs_list) {
  6. let lang = bbs_list["language"];
  7. bbs_list = bbs_list["data"];
  8. fetch('/api/v2/bbs/main').then(function(res) {
  9. return res.json();
  10. }).then(function(data) {
  11. data = data["data"];
  12. let data_html = '<ul>';
  13. let bbs_id_to_name = {};
  14. for(let key in bbs_list) {
  15. bbs_id_to_name[bbs_list[key][0]] = key;
  16. data_html += '<li>';
  17. data_html += '<a href="/bbs/in/' + bbs_list[key][0] + '">';
  18. data_html += opennamu_xss_filter(key);
  19. data_html += '</a>';
  20. data_html += ' (';
  21. if(bbs_list[key][1] === 'comment') {
  22. data_html += lang['comment_base'];
  23. } else {
  24. data_html += lang['thread_base'];
  25. }
  26. data_html += ')';
  27. if(bbs_list[key][2] !== '') {
  28. data_html += ' (' + bbs_list[key][2] + ')';
  29. }
  30. data_html += '</li>';
  31. }
  32. data_html += '</ul>';
  33. data_html += '<hr class="main_hr">';
  34. for(let for_a = 0; for_a < data.length; for_a++) {
  35. data_html += '<div class="opennamu_recent_change">';
  36. data_html += '<a href="/bbs/w/' + data[for_a]['set_id'] + '/' + data[for_a]['set_code'] + '">' + opennamu_xss_filter(data[for_a]['title']) + '</a>';
  37. data_html += '<div style="float: right;">';
  38. data_html += '<span id="opennamu_bbs_comment_' + String(for_a) + '"></span>';
  39. data_html += '<a href="/bbs/in/' + data[for_a]['set_id'] + '">';
  40. data_html += bbs_id_to_name[data[for_a]['set_id']]
  41. data_html += '</a>';
  42. data_html += ' | ';
  43. data_html += data[for_a]['user_id_render'] + ' | ';
  44. data_html += data[for_a]['date'];
  45. data_html += '</div>'
  46. data_html += '<div style="clear: both;"></div>';
  47. data_html += '</div>';
  48. data_html += '<hr class="main_hr">';
  49. }
  50. document.getElementById('opennamu_bbs_main').innerHTML = data_html;
  51. for(let for_a = 0; for_a < data.length; for_a++) {
  52. fetch('/api/v2/bbs/w/comment/' + data[for_a]['set_id'] + '/' + data[for_a]['set_code'] + '/length').then(function(res) {
  53. return res.json();
  54. }).then(function(comment_data) {
  55. if(comment_data) {
  56. document.getElementById('opennamu_bbs_comment_' + String(for_a)).innerText = comment_data['data'] + ' | ';
  57. }
  58. });
  59. }
  60. });
  61. });
  62. }