Double Click to Rewind Video

try to take over the world!

  1. // ==UserScript==
  2. // @name Double Click to Rewind Video
  3. // @namespace https://greasyfork.org/users/169007
  4. // @version 0.2
  5. // @description try to take over the world!
  6. // @author ZZYSonny
  7. // @match https://www.bilibili.com/video/*
  8. // @grant none
  9. // @run-at document-idle
  10. // ==/UserScript==
  11.  
  12. (() => {
  13. 'use strict';
  14.  
  15. const waitUntil = (cond) =>
  16. new Promise((resolve, _) => {
  17. var timer = setInterval(() => {
  18. if (cond()) {
  19. clearInterval(timer);
  20. resolve();
  21. }
  22. }, 200);
  23. })
  24.  
  25. waitUntil(() => document.getElementsByTagName("video").length > 0
  26. && document.getElementsByTagName("video")[0].currentSrc.startsWith("blob")).then(() => {
  27. console.log("[Rewind]: Function Added")
  28. var vid = document.getElementsByTagName("video")[0]
  29. var lastPauseTime = -1
  30. console.log(vid.currentSrc)
  31.  
  32. vid.addEventListener("play", (ev) => {
  33. lastPauseTime = Date.now()
  34. })
  35.  
  36. vid.addEventListener("pause", (ev) => {
  37. if(lastPauseTime>0){
  38. var nowPauseTime = Date.now()
  39. console.log(nowPauseTime - lastPauseTime)
  40. if(nowPauseTime - lastPauseTime < 500){
  41. vid.currentTime -= 10
  42. vid.play()
  43. }
  44.  
  45. }
  46. lastPauseTime = -1
  47. })
  48. })
  49.  
  50.  
  51. })();