aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAjay Ramachandran <[email protected]>2019-10-28 16:13:37 -0400
committerAjay Ramachandran <[email protected]>2019-10-28 16:13:37 -0400
commit685147054710dbb81ce2404a24a56d50cdf97d52 (patch)
tree77f04651520beba68c995435eb74423d6aea6926
parent73c1fc17b31e2c0044f2829955948fbaa5b1b576 (diff)
downloadSponsorBlock-685147054710dbb81ce2404a24a56d50cdf97d52.tar.gz
SponsorBlock-685147054710dbb81ce2404a24a56d50cdf97d52.zip
Added the ability to change the keybind.
-rw-r--r--_locales/en/messages.json12
-rw-r--r--content.js20
-rw-r--r--popup.html13
-rw-r--r--popup.js39
4 files changed, 80 insertions, 4 deletions
diff --git a/_locales/en/messages.json b/_locales/en/messages.json
index 488ba60f..ddb91234 100644
--- a/_locales/en/messages.json
+++ b/_locales/en/messages.json
@@ -246,5 +246,17 @@
"noticeUpdate": {
"message": "The notice has been upgraded! If you still don't like it, hit the never show button.",
"description": "The message displayed after the notice was upgraded."
+ },
+ "setStartSponsorShortcut": {
+ "message": "Set key for start sponsor keybind"
+ },
+ "setSubmitKeybind": {
+ "message": "Set key for submission keybind"
+ },
+ "keybindDescription": {
+ "message": "Select a key by typing it"
+ },
+ "keybindDescriptionComplete": {
+ "message": "The keybind has been set to: "
}
}
diff --git a/content.js b/content.js
index 5283354c..7b3fbc09 100644
--- a/content.js
+++ b/content.js
@@ -204,18 +204,32 @@ function messageListener(request, sender, sendResponse) {
}
//check for hotkey pressed
-document.onkeydown = function(e){
+document.onkeydown = async function(e){
e = e || window.event;
var key = e.key;
let video = document.getElementById("movie_player");
+ let startSponsorKey = await new Promise((resolve, reject) => {
+ chrome.storage.sync.get(["startSponsorKeybind"], (result) => resolve(result));
+ });
+ let submitKey = await new Promise((resolve, reject) => {
+ chrome.storage.sync.get(["submitKeybind"], (result) => resolve(result));
+ });
+
+ if (startSponsorKey.startSponsorKeybind === undefined) {
+ startSponsorKey.startSponsorKeybind = ";"
+ }
+ if (submitKey.submitKeybind === undefined) {
+ submitKey.submitKeybind = "'"
+ }
+
//is the video in focus, otherwise they could be typing a comment
if (document.activeElement === video) {
- if(key == ';'){
+ if(key == startSponsorKey.startSponsorKeybind){
//semicolon
startSponsorClicked();
- } else if (key == "'") {
+ } else if (key == submitKey.submitKeybind) {
//single quote
submitSponsorTimes();
}
diff --git a/popup.html b/popup.html
index ac89c9b5..a2923eb0 100644
--- a/popup.html
+++ b/popup.html
@@ -172,6 +172,19 @@
<br/>
<h3>__MSG_Options__</h3>
+
+ <span id="keybindButtons">
+ <button id="setStartSponsorKeybind" class="warningButton popupElement">__MSG_setStartSponsorShortcut__</button>
+ <br/>
+ <br/>
+ <button id="setSubmitKeybind" class="warningButton popupElement">__MSG_setSubmitKeybind__</button>
+ <br/>
+ </span>
+
+ <h2 id="keybindDescription" style="display: none" class="popupElement">__MSG_keybindDescription__</h2>
+
+ <br/>
+ <br/>
<button id="hideVideoPlayerControls" class="warningButton popupElement">__MSG_hideButtons__</button>
<button id="showVideoPlayerControls" style="display: none" class="warningButton popupElement">__MSG_showButtons__</button>
diff --git a/popup.js b/popup.js
index a7b3a41a..feadd2ab 100644
--- a/popup.js
+++ b/popup.js
@@ -70,6 +70,10 @@ function runThePopup() {
"videoFound",
"sponsorMessageTimes",
"downloadedSponsorMessageTimes",
+ // Keybinds
+ "setStartSponsorKeybind",
+ "setSubmitKeybind",
+ "keybindDescription"
].forEach(id => SB[id] = document.getElementById(id));
//setup click listeners
@@ -79,6 +83,8 @@ function runThePopup() {
SB.clearTimes.addEventListener("click", clearTimes);
SB.submitTimes.addEventListener("click", submitTimes);
SB.showNoticeAgain.addEventListener("click", showNoticeAgain);
+ SB.setStartSponsorKeybind.addEventListener("click", () => setKeybind(true));
+ SB.setSubmitKeybind.addEventListener("click", () => setKeybind(false));
SB.hideVideoPlayerControls.addEventListener("click", hideVideoPlayerControls);
SB.showVideoPlayerControls.addEventListener("click", showVideoPlayerControls);
SB.hideInfoButtonPlayerControls.addEventListener("click", hideInfoButtonPlayerControls);
@@ -104,6 +110,9 @@ function runThePopup() {
//is this a YouTube tab?
let isYouTubeTab = false;
+
+ // Is the start sponsor keybind currently being set
+ let setStartSponsorKeybind = false;
//see if discord link can be shown
chrome.storage.sync.get(["hideDiscordLink"], function(result) {
@@ -1236,7 +1245,35 @@ function runThePopup() {
);
});
}
-
+
+ function setKeybind(startSponsorKeybind) {
+ document.getElementById("keybindButtons").style.display = "none";
+
+ document.getElementById("keybindDescription").style.display = "initial";
+ document.getElementById("keybindDescription").innerText = chrome.i18n.getMessage("keybindDescription");
+
+ setStartSponsorKeybind = startSponsorKeybind;
+
+ document.addEventListener("keydown", onKeybindSet)
+ }
+
+ function onKeybindSet(e) {
+ e = e || window.event;
+ var key = e.key;
+
+ if (setStartSponsorKeybind) {
+ chrome.storage.sync.set({"startSponsorKeybind": key});
+ } else {
+ chrome.storage.sync.set({"submitKeybind": key});
+ }
+
+ document.removeEventListener("keydown", onKeybindSet);
+
+ document.getElementById("keybindDescription").innerText = chrome.i18n.getMessage("keybindDescriptionComplete") + " " + key;
+
+ document.getElementById("keybindButtons").style.display = "unset";
+ }
+
//converts time in seconds to minutes
function getTimeInMinutes(seconds) {
let minutes = Math.floor(seconds / 60);