diff --git a/goodtube.js b/goodtube.js index c0e703a..8c8ec3a 100644 --- a/goodtube.js +++ b/goodtube.js @@ -3683,14 +3683,14 @@ } } - // Prev video (shift+p) - else if (keyPressed === 'p' && event.shiftKey) { + // Prev video ("shift+p" or "media track previous") + else if ((keyPressed === 'p' && event.shiftKey) || keyPressed === 'mediatrackprevious') { // Tell the top window to go to the previous video window.top.postMessage('goodTube_prevVideo', '*'); } - // Next video (shift+n) - else if (keyPressed === 'n' && event.shiftKey) { + // Next video ("shift+n" or "media track next") + else if ((keyPressed === 'n' && event.shiftKey) || keyPressed === 'mediatracknext') { // Tell the top window to go to the next video window.top.postMessage('goodTube_nextVideo', '*'); } diff --git a/goodtube.min.js b/goodtube.min.js index 06154da..2f105be 100644 --- a/goodtube.min.js +++ b/goodtube.min.js @@ -823,7 +823,7 @@ } `),e.textContent=t,document.head.appendChild(e)}function ti(){let e=document.querySelector(".ytp-prev-button");e&&!e.classList.contains("goodTube_visible")&&e.classList.add("goodTube_visible")}function Pa(){let e=document.querySelector(".ytp-prev-button");e&&e.classList.contains("goodTube_visible")&&e.classList.remove("goodTube_visible")}let oi=setTimeout(()=>{},0);function ii(){if(!document.querySelector(".ytp-play-button")){clearTimeout(oi),oi=setTimeout(ii,100);return}let t=document.querySelector(".ytp-prev-button");t&&t.addEventListener("click",function(){window.top.postMessage("goodTube_prevVideo","*")});let i=document.querySelector(".ytp-next-button");i&&i.addEventListener("click",function(){window.top.postMessage("goodTube_nextVideo","*")});let a=document.querySelector(".ytp-size-button");a&&(a.setAttribute("data-tooltip-target-id","ytp-size-button"),a.setAttribute("data-title-no-tooltip","Theater mode (t)"),a.setAttribute("aria-label","Theater mode (t)"),a.setAttribute("title","Theater mode (t)"),a.setAttribute("data-tooltip-title","Theater mode (t)"),We(a,` - `),a.addEventListener("click",function(){window.top.postMessage("goodTube_theater","*")}));let l=document.querySelector(".ytp-subtitles-button");if(l){ca(l,"beforebegin",'');let u=document.querySelector("#goodTube_autoplayButton");u&&u.addEventListener("click",function(){let m=u.querySelector(".ytp-autonav-toggle-button");m.getAttribute("aria-checked")==="true"?(m.setAttribute("aria-checked","false"),window.top.postMessage("goodTube_autoplay_false","*")):(m.setAttribute("aria-checked","true"),window.top.postMessage("goodTube_autoplay_true","*"))})}}let ai=setTimeout(()=>{},0);function ni(){let e=document.querySelector("#movie_player video");if(!e){clearTimeout(ai),ai=setTimeout(ni,100);return}e.addEventListener("ended",function(){bi(!0),window.top.postMessage("goodTube_videoEnded","*")})}function za(){document.addEventListener("keydown",function(e){if(e.ctrlKey||e.altKey||e.metaKey||y)return;let t=e.key.toLowerCase();if(t==="t"&&window.top.postMessage("goodTube_theater","*"),t==="i"){let i=document.querySelector(".ytp-pip-button");i&&q(i)}else t==="p"&&e.shiftKey?window.top.postMessage("goodTube_prevVideo","*"):t==="n"&&e.shiftKey&&window.top.postMessage("goodTube_nextVideo","*")})}let ee=setTimeout(()=>{},0),Z=!1,de=-1,le=!1,se=!1,ue=!1,g=document.querySelector("video"),S=document.querySelector(".goodTube_doubleSpeed");function Yt(e){let t=e.key.toLowerCase();if(t===" "||t==="k"){if(y)return;if(se){e.preventDefault(),e.stopImmediatePropagation();return}if(e.ctrlKey||e.altKey||e.metaKey||(e.preventDefault(),e.stopImmediatePropagation(),Z)||le)return;le=!0,de=s.getPlaybackRate(),clearTimeout(ee),ee=setTimeout(()=>{s.setPlaybackRate(2),s.playVideo(),S.style.display="block",Z=!0},1e3)}}function Gt(e){let t=e.key.toLowerCase();if(t===" "||t==="k"){if(y)return;if(se){e.preventDefault(),e.stopImmediatePropagation();return}if(e.ctrlKey||e.altKey||e.metaKey)return;e.preventDefault(),e.stopImmediatePropagation()}}function Qt(e){let t=e.key.toLowerCase();if(t===" "||t==="k"){if(y)return;if(se){e.preventDefault(),e.stopImmediatePropagation();return}if(e.ctrlKey||e.altKey||e.metaKey)return;clearTimeout(ee),Z?(s.setPlaybackRate(de),S.style.display="none",Z=!1):(g=document.querySelector("video"),ue=!0,q(g),ue=!1),le=!1,e.preventDefault(),e.stopImmediatePropagation()}}function _e(e){if(e.button===0&&!ue&&!y){if(le){e.preventDefault(),e.stopImmediatePropagation();return}se=!0,e.preventDefault(),e.stopImmediatePropagation(),de=s.getPlaybackRate(),clearTimeout(ee),ee=setTimeout(()=>{s.setPlaybackRate(2),s.playVideo(),S.style.display="block",Z=!0},1e3)}}function jt(e){ue||y||(e.preventDefault(),e.stopImmediatePropagation())}function he(e){if(e.button===0&&!ue&&!y){if(le){e.preventDefault(),e.stopImmediatePropagation();return}clearTimeout(ee),Z?(s.setPlaybackRate(de),S.style.display="none",Z=!1):(g=document.querySelector("video"),ue=!0,q(g),ue=!1,setTimeout(g.focus())),se=!1,e.preventDefault(),e.stopImmediatePropagation()}}function Te(e){if(!y){if(le){e.preventDefault(),e.stopImmediatePropagation();return}e.preventDefault(),e.stopImmediatePropagation(),clearTimeout(ee),Z&&(s.setPlaybackRate(de),S.style.display="none",Z=!1),se=!1}}let dt=setTimeout(()=>{},0);function xe(){if(clearTimeout(ee),Z=!1,le=!1,se=!1,g=document.querySelector("video"),S=document.querySelector(".goodTube_doubleSpeed"),y){document.removeEventListener("keydown",Yt,!0),document.removeEventListener("keypress",Gt,!0),document.removeEventListener("keyup",Qt,!0),g&&(g.removeEventListener("mousedown",_e,!0),g.removeEventListener("touchstart",_e,!0),g.removeEventListener("click",jt,!0),g.removeEventListener("mouseup",he,!0),g.removeEventListener("touchend",he,!0),g.removeEventListener("mouseout",Te,!0),g.removeEventListener("touchcancel",Te,!0)),S&&(S.style.display="none");return}if(!g){clearTimeout(dt),dt=setTimeout(xe,100);return}if(s=document.getElementById("movie_player"),!s||typeof s.getPlaybackRate!="function"||typeof s.setPlaybackRate!="function"||typeof s.playVideo!="function"){clearTimeout(dt),dt=setTimeout(xe,100);return}if(de=s.getPlaybackRate(),s.setPlaybackRate(de),S)S.style.display="none";else{S=document.createElement("div"),S.classList.add("goodTube_doubleSpeed"),S.style.position="relative",S.style.zIndex="999",S.style.display="none",We(S,` + `),a.addEventListener("click",function(){window.top.postMessage("goodTube_theater","*")}));let l=document.querySelector(".ytp-subtitles-button");if(l){ca(l,"beforebegin",'');let u=document.querySelector("#goodTube_autoplayButton");u&&u.addEventListener("click",function(){let m=u.querySelector(".ytp-autonav-toggle-button");m.getAttribute("aria-checked")==="true"?(m.setAttribute("aria-checked","false"),window.top.postMessage("goodTube_autoplay_false","*")):(m.setAttribute("aria-checked","true"),window.top.postMessage("goodTube_autoplay_true","*"))})}}let ai=setTimeout(()=>{},0);function ni(){let e=document.querySelector("#movie_player video");if(!e){clearTimeout(ai),ai=setTimeout(ni,100);return}e.addEventListener("ended",function(){bi(!0),window.top.postMessage("goodTube_videoEnded","*")})}function za(){document.addEventListener("keydown",function(e){if(e.ctrlKey||e.altKey||e.metaKey||y)return;let t=e.key.toLowerCase();if(t==="t"&&window.top.postMessage("goodTube_theater","*"),t==="i"){let i=document.querySelector(".ytp-pip-button");i&&q(i)}else t==="p"&&e.shiftKey||t==="mediatrackprevious"?window.top.postMessage("goodTube_prevVideo","*"):(t==="n"&&e.shiftKey||t==="mediatracknext")&&window.top.postMessage("goodTube_nextVideo","*")})}let ee=setTimeout(()=>{},0),Z=!1,de=-1,le=!1,se=!1,ue=!1,g=document.querySelector("video"),S=document.querySelector(".goodTube_doubleSpeed");function Yt(e){let t=e.key.toLowerCase();if(t===" "||t==="k"){if(y)return;if(se){e.preventDefault(),e.stopImmediatePropagation();return}if(e.ctrlKey||e.altKey||e.metaKey||(e.preventDefault(),e.stopImmediatePropagation(),Z)||le)return;le=!0,de=s.getPlaybackRate(),clearTimeout(ee),ee=setTimeout(()=>{s.setPlaybackRate(2),s.playVideo(),S.style.display="block",Z=!0},1e3)}}function Gt(e){let t=e.key.toLowerCase();if(t===" "||t==="k"){if(y)return;if(se){e.preventDefault(),e.stopImmediatePropagation();return}if(e.ctrlKey||e.altKey||e.metaKey)return;e.preventDefault(),e.stopImmediatePropagation()}}function Qt(e){let t=e.key.toLowerCase();if(t===" "||t==="k"){if(y)return;if(se){e.preventDefault(),e.stopImmediatePropagation();return}if(e.ctrlKey||e.altKey||e.metaKey)return;clearTimeout(ee),Z?(s.setPlaybackRate(de),S.style.display="none",Z=!1):(g=document.querySelector("video"),ue=!0,q(g),ue=!1),le=!1,e.preventDefault(),e.stopImmediatePropagation()}}function _e(e){if(e.button===0&&!ue&&!y){if(le){e.preventDefault(),e.stopImmediatePropagation();return}se=!0,e.preventDefault(),e.stopImmediatePropagation(),de=s.getPlaybackRate(),clearTimeout(ee),ee=setTimeout(()=>{s.setPlaybackRate(2),s.playVideo(),S.style.display="block",Z=!0},1e3)}}function jt(e){ue||y||(e.preventDefault(),e.stopImmediatePropagation())}function he(e){if(e.button===0&&!ue&&!y){if(le){e.preventDefault(),e.stopImmediatePropagation();return}clearTimeout(ee),Z?(s.setPlaybackRate(de),S.style.display="none",Z=!1):(g=document.querySelector("video"),ue=!0,q(g),ue=!1,setTimeout(g.focus())),se=!1,e.preventDefault(),e.stopImmediatePropagation()}}function Te(e){if(!y){if(le){e.preventDefault(),e.stopImmediatePropagation();return}e.preventDefault(),e.stopImmediatePropagation(),clearTimeout(ee),Z&&(s.setPlaybackRate(de),S.style.display="none",Z=!1),se=!1}}let dt=setTimeout(()=>{},0);function xe(){if(clearTimeout(ee),Z=!1,le=!1,se=!1,g=document.querySelector("video"),S=document.querySelector(".goodTube_doubleSpeed"),y){document.removeEventListener("keydown",Yt,!0),document.removeEventListener("keypress",Gt,!0),document.removeEventListener("keyup",Qt,!0),g&&(g.removeEventListener("mousedown",_e,!0),g.removeEventListener("touchstart",_e,!0),g.removeEventListener("click",jt,!0),g.removeEventListener("mouseup",he,!0),g.removeEventListener("touchend",he,!0),g.removeEventListener("mouseout",Te,!0),g.removeEventListener("touchcancel",Te,!0)),S&&(S.style.display="none");return}if(!g){clearTimeout(dt),dt=setTimeout(xe,100);return}if(s=document.getElementById("movie_player"),!s||typeof s.getPlaybackRate!="function"||typeof s.setPlaybackRate!="function"||typeof s.playVideo!="function"){clearTimeout(dt),dt=setTimeout(xe,100);return}if(de=s.getPlaybackRate(),s.setPlaybackRate(de),S)S.style.display="none";else{S=document.createElement("div"),S.classList.add("goodTube_doubleSpeed"),S.style.position="relative",S.style.zIndex="999",S.style.display="none",We(S,`