OpenReview Helper

try to take over the world!

当前为 2019-10-20 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name OpenReview Helper
  3. // @name:en OpenReview Helper
  4. // @name:zh OpenReview Helper
  5. // @namespace http://tampermonkey.net/
  6. // @version 0.1.1
  7. // @description try to take over the world!
  8. // @author Han Yang
  9. // @match https://openreview.net/group?id=*
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. (function () {
  14. 'use strict';
  15.  
  16. function httpGetAsync(paper, callback) {
  17. // console.log('paper', paper);
  18. let url = 'forum?id=' + paper.getAttribute('data-id');
  19. console.log(url);
  20. let xmlHttp = new XMLHttpRequest();
  21. let parser = new DOMParser();
  22. xmlHttp.onreadystatechange = function () {
  23. if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
  24. let doc = parser.parseFromString(xmlHttp.responseText, "text/html")
  25. callback(doc.getElementById('reply_count').innerText);
  26. }
  27. }
  28. xmlHttp.open("GET", url, true); // true for asynchronous
  29. xmlHttp.send(null);
  30. };
  31.  
  32. function httpGet(paper, callback) {
  33. // console.log('paper', paper);
  34. let url = 'forum?id=' + paper.getAttribute('data-id');
  35. console.log(url);
  36. let xmlHttp = new XMLHttpRequest();
  37. let parser = new DOMParser();
  38. xmlHttp.open("GET", url, false); // false for synchronous request
  39. xmlHttp.send(null);
  40. // let doc = parser.parseFromString(xmlHttp.responseText, "text/html")
  41. let doc = xmlHttp.response;
  42. console.log(xmlHttp.response);
  43. callback(doc.getElementById('reply_count').innerText);
  44. };
  45.  
  46. function tt(paper) {
  47. console.log(paper);
  48. let id = paper.getAttribute('data-id');
  49. let url = `notes?forum=${id}&details=replyCount`;
  50. console.log(url);
  51. fetch(url).then(async (response) => {
  52. let reply_count = (await response.json()).count - 1;
  53. console.log(id, reply_count, paper);
  54. // paper.appendChild(document.createElement('br', reply_count));
  55. document.querySelector(`li[data-id='${id}']`).append(`reply count: ${reply_count}`);
  56. });
  57. // console.log(r);
  58. }
  59.  
  60. function dd() {
  61. // let papers = Array.prototype.slice.call(window.document.querySelectorAll('li.note')).slice(0, 50);
  62. let papers = document.querySelector('#all-submissions').querySelectorAll('li.note');
  63. console.log(papers);
  64.  
  65. for (let i = 0; i < papers.length; ++i) {
  66. console.log(i);
  67. // console.log(paper.childElementCount);
  68. // let id = paper.getAttribute('data-id');
  69. // console.log('pre paper', papers[paper]);
  70. tt(papers[i]);
  71.  
  72. }
  73. };
  74.  
  75. function fire() {
  76. setTimeout(dd, 1000);
  77. }
  78. // let $ = window.jQuery;
  79. // Your code here...
  80. // alert('hello');
  81. // setTimeout(dd, 5000);
  82. let notes = document.getElementById('notes');
  83. notes.onchange = fire;
  84. })();