DanDanZan Remember Played

Dandanzan useful media control

  1. // ==UserScript==
  2. // @name DanDanZan Remember Played
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description Dandanzan useful media control
  6. // @author You
  7. // @match *://*.dandanzan10.top/*
  8. // @match *://*.dandanzan.com/*
  9. // @match *://*.dandanzan.net/*
  10. // @match *://*.dandanzan.club/*
  11. // @icon https://www.google.com/s2/favicons?sz=64&domain=dandanzan10.top
  12. // @require https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js
  13. // @require https://cdn.jsdelivr.net/npm/js-cookie@3.0.1/dist/js.cookie.min.js
  14. // @grant GM_xmlhttpRequest
  15. // @license MIT
  16. // ==/UserScript==
  17. /* global $, Cookies */
  18.  
  19. (function() {
  20. console.log = function() { };
  21. console.clear = function() { };
  22. console.info("tzwei connected");
  23.  
  24. 'use strict';
  25.  
  26. let videoTitle = $("meta[property='og:url']").attr("content") ?? false;
  27.  
  28. if(videoTitle){
  29. var infoid = videoTitle.split('/').reverse()[0].split(".")[0];
  30.  
  31. $('.on').removeClass('on');
  32.  
  33. $(document).on("click", ".rmbClass", function() {
  34. let value = $(this).attr("onclick");
  35.  
  36. let tClassName = value.replace(/[_\W]+/g, "");
  37. Cookies.set(infoid + "lastPlayed", tClassName, { expires: 365 });
  38. });
  39.  
  40. $(".playlist.clearfix> ul > li > a").each(function() {
  41. let onClickValue = $(this).attr("onclick");
  42. let tClassName = onClickValue.replace(/[_\W]+/g, "");
  43.  
  44. $(this).addClass("rmbClass");
  45. $(this).addClass(tClassName);
  46. });
  47.  
  48. let lastPlayed = Cookies.get(infoid + "lastPlayed") ? Cookies.get(infoid + "lastPlayed") : false;
  49. if(lastPlayed){
  50. triggerLastPlayed(lastPlayed);
  51. }
  52. }
  53.  
  54. function triggerLastPlayed(lastPlayed){
  55. if($("."+lastPlayed).length){
  56. $('.on').removeClass('on');
  57.  
  58. let titleIndex = parseInt(lastPlayed.substr(4,1));
  59. $("dt:nth-child("+(titleIndex + 1)+")").click();
  60. $("."+lastPlayed).click();
  61. $("."+lastPlayed).parent().addClass("on");
  62. }
  63. }
  64.  
  65. function nextEpi(){
  66. let videoTitle = $("meta[property='og:url']").attr("content") ?? false;
  67. var infoid = videoTitle.split('/').reverse()[0].split(".")[0];
  68. let lastPlayed = Cookies.get(infoid + "lastPlayed") ? Cookies.get(infoid + "lastPlayed") : false;
  69. let testval = parseInt(lastPlayed.substr(5));
  70. triggerLastPlayed("play" + lastPlayed.substr(4,1) + (testval + 1))
  71. }
  72.  
  73. function prevEpi(){
  74. let videoTitle = $("meta[property='og:url']").attr("content") ?? false;
  75. var infoid = videoTitle.split('/').reverse()[0].split(".")[0];
  76. let lastPlayed = Cookies.get(infoid + "lastPlayed") ? Cookies.get(infoid + "lastPlayed") : false;
  77. let testval = parseInt(lastPlayed.substr(5));
  78. triggerLastPlayed("play" + lastPlayed.substr(4,1) + (testval - 1))
  79. }
  80.  
  81. $(".product-header").after("<div style='float: right;'><button id='saveTime'>Save</button><button id='loadTime'>Load</button>&nbsp;&nbsp;<button id='prevEpi'>PREV</button><button id='nextEpi'>NEXT</button></div>");
  82. $(".product-header").after("<div style='float: left;'><button id='seekRewind'>Seek Rewind (5s)</button><button id='seekForward'>Seek Forward (5s)</button>&nbsp;&nbsp;<button id='seekfForward'>FF Anime OP(70s)</button></div>");
  83.  
  84. $(document).on("click", "#saveTime", function() {
  85. saveTime();
  86. });
  87.  
  88. $(document).on("click", "#loadTime", function() {
  89. loadTime();
  90. });
  91.  
  92. $(document).on("click", "#prevEpi", function() {
  93. prevEpi();
  94. });
  95.  
  96. $(document).on("click", "#nextEpi", function() {
  97. nextEpi();
  98. });
  99.  
  100. $(document).on("click", "#seekForward", function() {
  101. seekForward(5);
  102. });
  103.  
  104. $(document).on("click", "#seekfForward", function() {
  105. seekForward(70);
  106. });
  107.  
  108. $(document).on("click", "#seekRewind", function() {
  109. seekRewind(5);
  110. });
  111.  
  112. function seekForward(sec){
  113. $("#video")[0].currentTime = $("#video")[0].currentTime + sec;
  114. }
  115.  
  116. function seekRewind(sec){
  117. $("#video")[0].currentTime = $("#video")[0].currentTime - sec;
  118. }
  119.  
  120. function saveTime(sec){
  121. let lastTime = $("#video")[0].currentTime;
  122.  
  123. let videoTitle = $("meta[property='og:url']").attr("content") ?? false;
  124. var infoid = videoTitle.split('/').reverse()[0].split(".")[0];
  125.  
  126. Cookies.set(infoid + "lastTime", lastTime, { expires: 365 });
  127.  
  128. alert("ok");
  129. }
  130.  
  131. function loadTime(sec){
  132. let videoTitle = $("meta[property='og:url']").attr("content") ?? false;
  133. var infoid = videoTitle.split('/').reverse()[0].split(".")[0];
  134.  
  135. let lastTime = Cookies.get(infoid + "lastTime") ? Cookies.get(infoid + "lastTime") : false;
  136. $("#video")[0].currentTime = lastTime;
  137. }
  138.  
  139. // $("#prevEpi").click();
  140. // $("#nextEpi").click();
  141. })();