bbs_main.js 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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 class="opennamu_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. data_html += ' (' + bbs_list[key][2] + ')';
  28. data_html += '</li>';
  29. }
  30. data_html += '</ul>';
  31. data_html += '<hr class="main_hr">';
  32. for(let for_a = 0; for_a < data.length; for_a++) {
  33. data_html += '<div class="opennamu_recent_change">';
  34. data_html += '<a href="/bbs/w/' + data[for_a]['set_id'] + '/' + data[for_a]['set_code'] + '">' + opennamu_xss_filter(data[for_a]['title']) + '</a>';
  35. data_html += '<div style="float: right;">';
  36. data_html += '<span id="opennamu_bbs_comment_' + String(for_a) + '"></span>';
  37. data_html += '<a href="/bbs/in/' + data[for_a]['set_id'] + '">';
  38. data_html += bbs_id_to_name[data[for_a]['set_id']]
  39. data_html += '</a>';
  40. data_html += ' | ';
  41. data_html += data[for_a]['user_id_render'] + ' | ';
  42. data_html += data[for_a]['date'];
  43. data_html += '</div>'
  44. data_html += '<div style="clear: both;"></div>';
  45. data_html += '</div>';
  46. data_html += '<hr class="main_hr">';
  47. }
  48. document.getElementById('opennamu_bbs_main').innerHTML = data_html;
  49. for(let for_a = 0; for_a < data.length; for_a++) {
  50. fetch('/api/v2/bbs/w/comment/' + data[for_a]['set_id'] + '/' + data[for_a]['set_code'] + '/length').then(function(res) {
  51. return res.json();
  52. }).then(function(comment_data) {
  53. if(comment_data) {
  54. document.getElementById('opennamu_bbs_comment_' + String(for_a)).innerText = comment_data['data'] + ' | ';
  55. }
  56. });
  57. }
  58. });
  59. });
  60. }