en OpenReview Helper

try to take over the world!

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

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