[TypingTube] random_jump

try to take over the world!

目前为 2021-03-28 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name [TypingTube] random_jump
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.4
  5. // @description try to take over the world!
  6. // @author You
  7. // @match https://typing-tube.net/*
  8. // @exclude https://typing-tube.net/movie*
  9. // @icon https://www.google.com/s2/favicons?domain=typing-tube.net
  10. // @grant none
  11. // ==/UserScript==
  12. let tag = document.createElement('script');
  13. tag.src = "https://www.youtube.com/iframe_api";
  14. var firstScriptTag = document.getElementsByTagName('script')[0];
  15. firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
  16. document.querySelector("[href*='lv=5']").parentNode.insertAdjacentHTML('afterend', `<div style="cursor:pointer;" id="random_selector" class="btn m-2 col lvall">ランダム
  17. </div><span id=player_box style="position:absolute;visibility:hidden;"></span>`)
  18. let ramdom = 0
  19. let player_clone
  20. function romdom_generator(){
  21. document.getElementById("random_selector").removeEventListener("click",romdom_generator)
  22. document.getElementById("random_selector").style.cursor = "none"
  23. ramdom = Math.floor(Math.random() * (36881 - 5 + 1) + 5)
  24. $.ajax({
  25. type: 'POST',
  26. url: '/movie/lyrics/' + ramdom,
  27. success:function(data){
  28. console.log(data)
  29.  
  30. if(data.match(/(v=).*\n/) != null){
  31. onYouTubeIframeAPIReady_random(data.match(/(v=).*\n/)[0].slice(2))
  32. }else{
  33. Lost ++
  34. document.getElementById("random_selector").textContent = "ランダム(ハズレ"+Lost+"回目)"
  35. document.getElementById("player_box").remove()
  36. document.getElementById("random_selector").insertAdjacentHTML('afterend', `<span id=player_box style="position:absolute;visibility:hidden;"></span>`)
  37. document.getElementById("random_selector").style.cursor = "pointer"
  38. document.getElementById("random_selector").addEventListener("click",romdom_generator)
  39. }
  40. },error: function(data) {
  41. Lost ++
  42. document.getElementById("random_selector").textContent = "ランダム(ハズレ"+Lost+"回目)"
  43. document.getElementById("player_box").remove()
  44. document.getElementById("random_selector").insertAdjacentHTML('afterend', `<span id=player_box style="position:absolute;visibility:hidden;"></span>`)
  45. document.getElementById("random_selector").style.cursor = "pointer"
  46. document.getElementById("random_selector").addEventListener("click",romdom_generator) }
  47. });
  48. }
  49. let player_ramdom
  50. function onYouTubeIframeAPIReady_random(preview_videoid) {
  51. console.log(preview_videoid)
  52. player_ramdom = ""
  53. player_ramdom = new YT.Player('player_box', {
  54. height: 100 ,
  55. width: 100 ,
  56. playerVars: {
  57. autoplay: 0,
  58. controls: 0,
  59. disablekb: 1,
  60. modestbranding:1,
  61. origin: location.protocol + '//' + location.hostname + "/",
  62. start: 0
  63. },
  64. videoId: preview_videoid,
  65. events: {
  66. 'onReady': onPlayerReady_check,
  67. 'onError': onPlayerReady_check,
  68.  
  69.  
  70. }
  71. });
  72. }
  73. let Lost = 0
  74. function onPlayerReady_check(){
  75. if(player_ramdom.getDuration() != 0){
  76. window.open('https://typing-tube.net/movie/show/'+ramdom);
  77. }else{
  78. Lost ++
  79. document.getElementById("random_selector").textContent = "ランダム(ハズレ"+Lost+"回目)"
  80. }
  81. document.getElementById("player_box").remove()
  82. document.getElementById("random_selector").insertAdjacentHTML('afterend', `<span id=player_box style="position:absolute;visibility:hidden;"></span>`)
  83. document.getElementById("random_selector").style.cursor = "pointer"
  84. document.getElementById("random_selector").addEventListener("click",romdom_generator)
  85. }
  86. document.getElementById("random_selector").addEventListener("click",romdom_generator)