Bangumi Show Watching Days

首页显示在看条目的已看天数,收藏页面显示条目的已看天数和完成天数,先去“在看”页面获取时间方可正常使用,开始看的时间可以修改保存

目前为 2018-01-01 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name Bangumi Show Watching Days
  3. // @namespace https://github.com/bangumi/scripts/liaune
  4. // @version 0.3
  5. // @description 首页显示在看条目的已看天数,收藏页面显示条目的已看天数和完成天数,先去“在看”页面获取时间方可正常使用,开始看的时间可以修改保存
  6. // @author Liaune
  7. // @include /^https?://(bangumi\.tv|bgm\.tv|chii\.in)\/(.+?/list)?/
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. (function() {
  12.  
  13. const You=document.querySelectorAll('#headerNeue2 .idBadgerNeue a.avatar')[0].href.split('/user/')[1];
  14. const User =window.location.href.match(/\/list\/(\S+)\//)? window.location.href.match(/\/list\/(\S+)\//)[1]: null;
  15. //在首页显示已看天数
  16. if($('#prgSubjectList')){
  17. let watchlist = document.querySelectorAll('#prgSubjectList li.clearit');
  18. watchlist.forEach( (elem, index) => {
  19. let ID_w=elem.querySelector('a.title').href.split('/subject/')[1];
  20. if(localStorage.getItem(You+'Time_do'+ID_w)){
  21. let date = new Date(localStorage.getItem(You+'Time_do'+ID_w));
  22. let now = new Date();
  23. let durtime = parseInt((now.getTime() - date.getTime())/(24 * 60 * 60 * 1000));
  24. let showdurtime = document.createElement('span');
  25. showdurtime.className = 'tip_j';
  26. showdurtime.innerHTML = " (已看"+ durtime +"天) ";
  27. showdurtime.style.color='blue';
  28. if(durtime>=100) showdurtime.style.color='red';
  29. elem.append(showdurtime);
  30. }
  31. });
  32. }
  33.  
  34.  
  35. //在收藏页面获取和显示已看天数和完成天数
  36. if($('#browserItemList li.item')){
  37. itemsList = document.querySelectorAll('#browserItemList li.item');
  38. itemsList.forEach( (elem, index) => {
  39. let href = elem.querySelector('a.subjectCover').href;
  40. let ID = href.split('/subject/')[1];
  41. if(window.location.href.match(/\/list\/(\S+)\/do|on_hold/)){
  42. let Time_do = elem.querySelector('.inner .collectInfo span.tip_j')? elem.querySelector('.inner .collectInfo span.tip_j').innerHTML: null;
  43. if(Time_do && !localStorage.getItem(User+'Time_do'+ID))
  44. localStorage.setItem(User+'Time_do'+ID,Time_do);
  45.  
  46. let showstarttime = document.createElement('span');
  47. showstarttime.className = 'tip';
  48. showstarttime.contentEditable = true;
  49. showstarttime.textContent = localStorage.getItem(User+'Time_do'+ID);
  50. elem.querySelector('.inner .collectInfo').insertBefore(showstarttime,elem.querySelector('.inner .collectInfo span.tip_j'));
  51.  
  52. let date = new Date(localStorage.getItem(User+'Time_do'+ID));
  53. let date1 = new Date(Time_do);
  54. let now = new Date();
  55. let durtime = parseInt((now.getTime() - date.getTime())/(24 * 60 * 60 * 1000));
  56. let waittime = parseInt((now.getTime() - date1.getTime())/(24 * 60 * 60 * 1000));
  57. let showdurtime = document.createElement('span');
  58. showdurtime.className = 'tip_j';
  59. showdurtime.innerHTML = " (已看"+ durtime +"天) ";
  60. showdurtime.style.color='#0058ff';
  61. if(durtime>=100) showdurtime.style.color='red';
  62. $(showdurtime).insertAfter(showstarttime);
  63. $('<span class="tip_j">—</span>').insertAfter(showdurtime);
  64.  
  65. let showwaittime = document.createElement('span');
  66. showwaittime.className = 'tip_j';
  67. showwaittime.innerHTML = " ("+ waittime +"天没看) ";
  68. showwaittime.style.color='#c0690c';
  69. if(waittime>=30) showwaittime.style.color='red';
  70. elem.querySelector('.inner .collectInfo').insertBefore(showwaittime,elem.querySelector('.inner .collectInfo span.tip_i'));
  71.  
  72. showstarttime.addEventListener('blur', function (){
  73. localStorage.setItem(User+'Time_do'+ID,showstarttime.textContent);
  74. date = new Date(localStorage.getItem(User+'Time_do'+ID));
  75. durtime = parseInt((now.getTime() - date.getTime())/(24 * 60 * 60 * 1000));
  76. showdurtime.innerHTML = " (已看"+ durtime +"天) ";
  77. if(durtime>=100) showdurtime.style.color='red';
  78. });
  79.  
  80. }
  81. else if(window.location.href.match(/\/list\/(\S+)\/collect/)){
  82. let Time_finish = elem.querySelector('.inner .collectInfo span.tip_j')? elem.querySelector('.inner .collectInfo span.tip_j').innerHTML: null;
  83. if(Time_finish) localStorage.setItem(User+'Time_finish'+ID,Time_finish);
  84. let Time_do = localStorage.getItem(User+'Time_do'+ID);
  85. let showstarttime = document.createElement('span');
  86. showstarttime.className = 'tip';
  87. showstarttime.contentEditable = true;
  88. showstarttime.textContent = Time_do ? Time_do:'?';
  89. elem.querySelector('.inner .collectInfo').insertBefore(showstarttime,elem.querySelector('.inner .collectInfo span.tip_j'));
  90. $('<span class="tip_j">—</span>').insertAfter(showstarttime);
  91. let date = new Date(Time_finish);
  92. let date0 = Time_do ? new Date(Time_do): null;
  93. let durtime = date0 ? parseInt((date.getTime() - date0.getTime())/(24 * 60 * 60 * 1000)): null;
  94.  
  95. let showdurtime = document.createElement('span');
  96. showdurtime.className = 'tip_j';
  97. if(durtime) showdurtime.innerHTML = " (历时"+ durtime +"天) ";
  98. showdurtime.style.color='#0058ff';
  99. if(durtime>=100) showdurtime.style.color='red';
  100. elem.querySelector('.inner .collectInfo').insertBefore(showdurtime,elem.querySelector('.inner .collectInfo span.tip_i'));
  101. showstarttime.addEventListener('blur', function (){
  102. localStorage.setItem(User+'Time_do'+ID,showstarttime.textContent);
  103. date0 = new Date(localStorage.getItem(User+'Time_do'+ID));
  104. durtime = parseInt((date.getTime() - date0.getTime())/(24 * 60 * 60 * 1000));
  105. showdurtime.innerHTML = " (历时"+ durtime +"天) ";
  106. if(durtime>=100) showdurtime.style.color='red';
  107. });
  108. }
  109. });
  110. }
  111. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址