Advertisement
Guest User

Untitled

a guest
Jul 15th, 2021
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.89 KB | None | 0 0
  1.  
  2. // ==UserScript==
  3. // @name килл по пробелу Better YouTube
  4. // @namespace feifeihang.info
  5. // @homepage greasyfork.org/en/scripts/12250-better-youtube
  6. // @description Перевязайте клавишу пробела для воспроизведения/паузы. Rebind space key for play/pause (no more accidentally scroll down).
  7. // @include https://youtu.be/*
  8. // @include http://youtu.be/*
  9. // @include https://www.youtube.com/*
  10. // @include http://www.youtube.com/*
  11. // @version 5.2.5
  12. // @grant none
  13. // ==/UserScript==
  14. (function (window, document, undefined) {
  15. // найти и сохранить ссылку на видеоплеер./ find and keep a reference of the video player.
  16. var player;
  17. var stylePlayer = '';
  18. var video;
  19. var videoSize = {
  20. };
  21. var controls;
  22. var controlsWidth;
  23. // флаг, указывающий на то, что мини-плеер включен /a flag to indicate is the mini player is toggled.
  24. var isToggled = false;
  25. var isTogglable = true;
  26. var originalHeight;
  27. var s2sBtn;
  28. var hasAddedMini = false;
  29. var shouldToggle = false;
  30. var urlBuffer = '';
  31. var playBtn;
  32. window.setInterval(function () {
  33. if (isToggled &&
  34. !/^http[sS]*\:\/\/www\.youtube\.com\/watch[?]*/.test(window.location.href) &&
  35. shouldToggle) {
  36. turnOff();
  37. shouldToggle = false;
  38. window.removeEventListener('keydown', bindSpaceKey, true);
  39. }
  40. if (!shouldToggle &&
  41. /^http[sS]*\:\/\/www\.youtube\.com\/watch[?]*/.test(window.location.href)) {
  42. if (window.location.href !== urlBuffer) {
  43. isToggled = false;
  44. urlBuffer = urlBuffer;
  45. // bind whitespace key.
  46. playBtn = document.querySelector('.ytp-play-button');
  47. if (playBtn) {
  48. window.addEventListener('keydown', bindSpaceKey, true);
  49. }
  50. }
  51. shouldToggle = true;
  52. }
  53. }, 500);
  54. var intervalId = window.setInterval(function () {
  55. if (!hasAddedMini &&
  56. /^http[sS]*\:\/\/www\.youtube\.com\/watch[?]*/.test(window.location.href)) {
  57. shouldToggle = true;
  58. player = document.querySelector('#movie_player');
  59. video = document.querySelector('#movie_player video.video-stream');
  60. controls = document.querySelector('#movie_player .ytp-chrome-bottom');
  61. window.addEventListener('scroll', function () {
  62. if (!isTogglable) {
  63. return false;
  64. }
  65. }, false);
  66. //добавить переключатель мини-плеера./ add a mini player toggle button.
  67. var btn = document.createElement('div');
  68. btn.className += ' yt-uix-button yt-uix-button-size-default yt-uix-button-primary';
  69. btn.innerHTML = 'Mini: on';
  70. btn.style = 'line-height: 26px; height: 26px; margin-left: 5px;';
  71. btn.onclick = function () {
  72. if (this.innerHTML === 'Mini: on') {
  73. this.innerHTML = 'Mini: off';
  74. isTogglable = false;
  75. if (isToggled) {
  76. turnOff();
  77. }
  78. }
  79. else {
  80. this.innerHTML = 'Mini: on';
  81. gotoMini();
  82. isTogglable = true;
  83. }
  84. }
  85. var dom = document.querySelector('#yt-masthead-signin') ||
  86. document.querySelector('#yt-masthead-user');
  87. dom.appendChild(btn);
  88. hasAddedMini = true;
  89. window.clearInterval(intervalId);
  90. }
  91. }, 500);
  92. function bindSpaceKey(evt) {
  93. var inputs = document.querySelectorAll('input[type=text], textarea, div.yt-simplebox-text');
  94. inputs = Array.prototype.slice.apply(inputs);
  95. if (inputs.indexOf(document.activeElement) === - 1 && evt.keyCode === 32) {
  96. evt.preventDefault();
  97. playBtn.click();
  98. }
  99. }
  100. function turnOff() {
  101. if (document.querySelector('.ytp-size-button')) {
  102. document.querySelector('.ytp-size-button').style.display = 'inline-block';
  103. }
  104. }
  105. }) (window, document);
  106.  
  107.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement