留言救星

巴啥留言排序

  1. // ==UserScript==
  2. // @name 留言救星
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description 巴啥留言排序
  6. // @author You
  7. // @match https://forum.gamer.com.tw/C.php?*
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=gamer.com.tw
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. (function () {
  13. 'use strict';
  14.  
  15. extendComment = function (bsn, snB, doneCallback) {
  16. console.log('test')
  17. jQuery("#showoldCommend_" + snB).hide();
  18. jQuery("#closeCommend_" + snB).show();
  19. commentNew5[snB] = jQuery("#Commendlist_" + snB).html();
  20. commentNew5[snB] = commentNew5[snB].replace(/ data-tooltipped=""/g, "").replace(/data-original-title=/g, "title=");
  21. var next_snC = jQuery("#moreCommentBtn_" + snB).attr("next");
  22. jQuery.ajax({
  23. url: "/ajax/moreCommend.php",
  24. data: {bsn: bsn, snB: snB, returnHtml: 1, next_snC: next_snC},
  25. method: "GET",
  26. dataType: "json"
  27. }).done(function (rdata) {
  28. var listSelector = "#Commendlist_" + snB;
  29. rdata['html'].sort(function (a, b) {
  30. let tempHtmlA = document.createElement('html')
  31. let tempHtmlB = document.createElement('html')
  32. tempHtmlA.innerHTML = a
  33. tempHtmlB.innerHTML = b
  34. let floorA = tempHtmlA.querySelector('.reply-content__footer').firstElementChild.attributes['data-floor'].value
  35. let floorB = tempHtmlB.querySelector('.reply-content__footer').firstElementChild.attributes['data-floor'].value
  36. return floorA - floorB
  37. })
  38. jQuery(listSelector).empty().prepend(rdata["html"]);
  39. Forum.C.commentFormatter(listSelector + " .reply-content__article > span.comment_content");
  40. Forum.C.bindReplyMenuTippy(listSelector);
  41. Forum.C.bindCommentGpBpListTippy(listSelector);
  42. Forum.C.bindCommentDateTippy(listSelector);
  43. GamerCard.bind(listSelector);
  44.  
  45. if (rdata["next_snC"]) {
  46. jQuery("#moreCommentBtn_" + snB).attr("next", rdata["next_snC"]).show()
  47. } else {
  48. jQuery("#moreCommentBtn_" + snB).attr("next", 0).hide()
  49. }
  50. if (doneCallback) {
  51. doneCallback()
  52. }
  53. })
  54. }
  55.  
  56. let replyContent = document.querySelectorAll('[id*=Commendlist_]')
  57. for (let i = 0; i < replyContent.length; i++) {
  58. let replyCommandDiv = replyContent[i].querySelectorAll('[id*=Commendcontent_]')
  59. replyCommandDiv = Array.prototype.slice.call(replyCommandDiv, 0);
  60. replyContent[i].innerHTML = ''
  61. replyCommandDiv.sort(function (a, b) {
  62. let tempA = a.querySelector('.reply-content__footer')
  63. let tempB = b.querySelector('.reply-content__footer')
  64. let floorA = tempA.getElementsByTagName('div')[0].innerText.replace('B', '')
  65. let floorB = tempB.getElementsByTagName('div')[0].innerText.replace('B', '')
  66. return floorA - floorB;
  67. })
  68. console.log(replyCommandDiv.length)
  69. for (let j = 0; j < replyCommandDiv.length; j++) {
  70. replyContent[i].appendChild(replyCommandDiv[j])
  71. }
  72. }
  73. })();