OpenReview Helper

try to take over the world!

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

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