bbs_main.js 3.4 KB

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