diff options
author | zrose584 <57181548+zrose584@users.noreply.github.com> | 2020-09-11 21:21:56 +0200 |
---|---|---|
committer | zrose584 <57181548+zrose584@users.noreply.github.com> | 2020-09-11 21:27:49 +0200 |
commit | 94ece08a1e04d9ba1f62000b04c7b7ca707c6ab6 (patch) | |
tree | 47afdb07ad9a4f07460fc8f28975251cf84cee00 /youtube | |
parent | 786d3eb445dfa601bcaca8ce7b5688d86a922377 (diff) | |
download | yt-local-94ece08a1e04d9ba1f62000b04c7b7ca707c6ab6.tar.lz yt-local-94ece08a1e04d9ba1f62000b04c7b7ca707c6ab6.tar.xz yt-local-94ece08a1e04d9ba1f62000b04c7b7ca707c6ab6.zip |
hotkeys.js: add 'c' for transcript
Diffstat (limited to 'youtube')
-rw-r--r-- | youtube/static/js/common.js | 23 | ||||
-rw-r--r-- | youtube/static/js/hotkeys.js | 16 | ||||
-rw-r--r-- | youtube/templates/watch.html | 2 |
3 files changed, 38 insertions, 3 deletions
diff --git a/youtube/static/js/common.js b/youtube/static/js/common.js new file mode 100644 index 0000000..f2e62fe --- /dev/null +++ b/youtube/static/js/common.js @@ -0,0 +1,23 @@ +Q = document.querySelector.bind(document); +function text(msg) { return document.createTextNode(msg); } +function clearNode(node) { while (node.firstChild) node.removeChild(node.firstChild); } +function toMS(s) { + var s = Math.floor(s); + var m = Math.floor(s/60); var s = s % 60; + return `0${m}:`.slice(-3) + `0${s}`.slice(-2); +} + + +var cur_tt_idx = 0; +function getActiveTranscriptTrackIdx() { + let tts = Q("video").textTracks; + if (!tts.length) return; + for (let i=0; i < tts.length; i++) { + if (tts[i].mode == "showing") { + cur_tt_idx = i; + return cur_tt_idx; + } + } + return cur_tt_idx; +} +function getActiveTranscriptTrack() { return Q("video").textTracks[getActiveTranscriptTrackIdx()]; }
\ No newline at end of file diff --git a/youtube/static/js/hotkeys.js b/youtube/static/js/hotkeys.js index c696ac0..8b28f28 100644 --- a/youtube/static/js/hotkeys.js +++ b/youtube/static/js/hotkeys.js @@ -1,9 +1,7 @@ -Q = document.querySelector.bind(document); - function onKeyDown(e) { if (['INPUT', 'TEXTAREA'].includes(document.activeElement.tagName)) return false; - console.log(e); + // console.log(e); let v = Q("video"); let c = e.key.toLowerCase(); if (c == "k") { @@ -25,6 +23,18 @@ function onKeyDown(e) { e.preventDefault(); v.currentTime = v.currentTime + 10; } + else if (c == "f") { + e.preventDefault(); + if (document.fullscreen) document.exitFullscreen(); + else v.requestFullscreen(); + } + else if (c == "c") { + e.preventDefault(); + let tt = getActiveTranscriptTrack(); + if (tt == null) return; + if (tt.mode == "showing") tt.mode = "disabled"; + else tt.mode = "showing"; + } } window.addEventListener('DOMContentLoaded', function() { diff --git a/youtube/templates/watch.html b/youtube/templates/watch.html index 74b9887..b3847d5 100644 --- a/youtube/templates/watch.html +++ b/youtube/templates/watch.html @@ -608,6 +608,8 @@ Reload without invidious (for usage of new identity button).</a> </details> {% endif %} {% endif %} + + <script src="/youtube.com/static/js/common.js"></script> {% if settings.use_video_hotkeys %} <script src="/youtube.com/static/js/hotkeys.js"></script> {% endif %} |