From 995001bd910a2d2875fb849ecbc5f2dc6571d8e9 Mon Sep 17 00:00:00 2001
From: Ajay Ramachandran
Date: Sun, 5 Jun 2022 00:09:14 -0400
Subject: [PATCH 01/25] New Crowdin updates (#1342)
---
public/_locales/es/messages.json | 20 ++++++++++-
public/_locales/fi/messages.json | 2 +-
public/_locales/sv/messages.json | 60 ++++++++++++++++++++++++++++++++
3 files changed, 80 insertions(+), 2 deletions(-)
diff --git a/public/_locales/es/messages.json b/public/_locales/es/messages.json
index dfd51f44..cfcfc93c 100644
--- a/public/_locales/es/messages.json
+++ b/public/_locales/es/messages.json
@@ -239,6 +239,9 @@
"showSkipNotice": {
"message": "Mostrar aviso después de que se omita un segmento"
},
+ "showCategoryGuidelines": {
+ "message": "Mostrar Ayuda de la Categoría"
+ },
"noticeVisibilityMode0": {
"message": "Avisos de Omisión de Tamaño Completo"
},
@@ -542,11 +545,20 @@
"message": "a",
"description": "Used between segments. Example: 1:20 to 1:30"
},
+ "generic_guideline2": {
+ "message": "Se reproduce como si no se hubiera omitido nada"
+ },
"category_sponsor": {
"message": "Sponsor"
},
"category_sponsor_description": {
- "message": "Promoción pagada, recomendaciones pagadas y anuncios directos. No para promoción propia o anuncios gratuitos a causas/creadores/sitios web/productos que les gusten."
+ "message": "Promoción pagada, recomendaciones pagadas y anuncios directos. No para promoción propia o agradecimientos gratuitos a causas/creadores/sitios web/productos que les gusten."
+ },
+ "category_sponsor_guideline1": {
+ "message": "Promociones pagadas"
+ },
+ "category_sponsor_guideline2": {
+ "message": "No para donaciones o mercancía personalizada"
},
"category_selfpromo": {
"message": "Promoción Propia/No Remunerada"
@@ -554,6 +566,12 @@
"category_selfpromo_description": {
"message": "Similar a \"sponsor\", excepto que para la promoción propia o no remunerada. Esto incluye secciones sobre mercancía, donaciones o información sobre con quiénes colaboraron."
},
+ "category_selfpromo_guideline1": {
+ "message": "Donaciones, membresías y mercancía personalizada"
+ },
+ "category_selfpromo_guideline2": {
+ "message": "Agradecimientos gratuitos que no añaden al video"
+ },
"category_exclusive_access": {
"message": "Acceso Exclusivo"
},
diff --git a/public/_locales/fi/messages.json b/public/_locales/fi/messages.json
index a8ee85c3..5754afe2 100644
--- a/public/_locales/fi/messages.json
+++ b/public/_locales/fi/messages.json
@@ -589,7 +589,7 @@
"description": "Short description for this category"
},
"category_exclusive_access_guideline1": {
- "message": "Koko video keskittyy johonkin, jonka käyttöoikeus on saatu veloituksetta tai tuetusti"
+ "message": "Koko video esittelee jotakin, jonka käyttöoikeus on saatu veloituksetta tai tuetusti"
},
"category_interaction": {
"message": "Vuorovaikutusmuistutus (tilaaminen)"
diff --git a/public/_locales/sv/messages.json b/public/_locales/sv/messages.json
index 385b3c01..32fd00c1 100644
--- a/public/_locales/sv/messages.json
+++ b/public/_locales/sv/messages.json
@@ -545,6 +545,9 @@
"message": "till",
"description": "Used between segments. Example: 1:20 to 1:30"
},
+ "generic_guideline1": {
+ "message": "Inkludera segmentövergångar"
+ },
"generic_guideline2": {
"message": "Spelar som om ingenting hoppades över"
},
@@ -557,6 +560,9 @@
"category_sponsor_guideline1": {
"message": "Betalda kampanjer"
},
+ "category_sponsor_guideline2": {
+ "message": "Inte för donationer eller anpassade varor"
+ },
"category_selfpromo": {
"message": "Obetald/självbefodran"
},
@@ -566,6 +572,12 @@
"category_selfpromo_guideline1": {
"message": "Donationer, medlemskap och anpassade varor"
},
+ "category_selfpromo_guideline2": {
+ "message": "Gratis shoutouts som inte läggs till i videon"
+ },
+ "category_selfpromo_guideline3": {
+ "message": "Inte för företagsdesignade produkter och varor"
+ },
"category_exclusive_access": {
"message": "Exklusiv tillgång"
},
@@ -576,6 +588,9 @@
"message": "Denna video visar en produkt, tjänst eller plats som de har fått gratis eller subventionerad tillgång till",
"description": "Short description for this category"
},
+ "category_exclusive_access_guideline1": {
+ "message": "Hela videon visar något med gratis eller subventionerad tillgång"
+ },
"category_interaction": {
"message": "Interaktionspåminnelse (Prenumerera)"
},
@@ -585,6 +600,12 @@
"category_interaction_guideline1": {
"message": "Korta påminnelser om att gilla, prenumerera eller följa"
},
+ "category_interaction_guideline2": {
+ "message": "Inkluderar indirekta påminnelser att kommentera"
+ },
+ "category_interaction_guideline3": {
+ "message": "Inte för allmän marknadsföring, endast för uppmaningar"
+ },
"category_interaction_short": {
"message": "Interaktionspåminnelse"
},
@@ -597,21 +618,36 @@
"category_intro_short": {
"message": "Uppehåll"
},
+ "category_intro_guideline1": {
+ "message": "Intervall utan egentligt innehåll"
+ },
+ "category_intro_guideline2": {
+ "message": "Inte för övergångar med information"
+ },
"category_outro": {
"message": "Slutkort/Credits"
},
"category_outro_description": {
"message": "Credits eller när YouTube-slutkort visas. Inte för slut med information."
},
+ "category_outro_guideline1": {
+ "message": "Inkludera inte innehåll, även om slutkort visas på skärmen"
+ },
"category_preview": {
"message": "Förhandsgranska/sammanfatta"
},
"category_preview_description": {
"message": "Snabb sammanfattning av tidigare avsnitt eller en förhandsvisning av vad som kommer upp senare i den aktuella videon. Avsett för redigerade klipp, inte för sammanfattningar."
},
+ "category_preview_guideline1": {
+ "message": "Klipp som visas senare, eller i en framtida video"
+ },
"category_preview_guideline2": {
"message": "Sammanfattning av en tidigare video"
},
+ "category_preview_guideline3": {
+ "message": "Inte för sektioner som lägger till ytterligare innehåll"
+ },
"category_filler": {
"message": "Ämnesavvikelse/Skämt"
},
@@ -621,6 +657,15 @@
"category_filler_short": {
"message": "Utfyllnad"
},
+ "category_filler_guideline1": {
+ "message": "Tangentiella scener endast för utfyllnad eller humor"
+ },
+ "category_filler_guideline2": {
+ "message": "Distraktioner, bloopers, repriser"
+ },
+ "category_filler_guideline3": {
+ "message": "Inte för scener som krävs för att förstå ämnet"
+ },
"category_music_offtopic": {
"message": "Musik: Icke-musikavsnitt"
},
@@ -630,12 +675,27 @@
"category_music_offtopic_short": {
"message": "Icke-musik"
},
+ "category_music_offtopic_guideline1": {
+ "message": "Avsnitt som inte finns i officiella utgåvor"
+ },
+ "category_music_offtopic_guideline2": {
+ "message": "Icke-musik i ett liveframträdande"
+ },
"category_poi_highlight": {
"message": "Höjdpunkt"
},
"category_poi_highlight_description": {
"message": "Den del av videon som de flesta letar efter. Liknande kommentarer \"Video börjar på x\"."
},
+ "category_poi_highlight_guideline1": {
+ "message": "Avsnitt som de flesta personer letar efter"
+ },
+ "category_poi_highlight_guideline2": {
+ "message": "Kan hoppa över sammanhang"
+ },
+ "category_poi_highlight_guideline3": {
+ "message": "Kan hoppa över till titeln eller miniatyrbilden"
+ },
"category_livestream_messages": {
"message": "Liveström: Donations-/meddelandeavläsningar"
},
From e480e032f2acefc674a11f152cb6d7c37fca80e5 Mon Sep 17 00:00:00 2001
From: Ajay Ramachandran
Date: Sun, 5 Jun 2022 00:09:21 -0400
Subject: [PATCH 02/25] bump version
---
manifest/manifest.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/manifest/manifest.json b/manifest/manifest.json
index fd714eb9..502c8320 100644
--- a/manifest/manifest.json
+++ b/manifest/manifest.json
@@ -1,7 +1,7 @@
{
"name": "__MSG_fullName__",
"short_name": "SponsorBlock",
- "version": "4.5",
+ "version": "4.5.1",
"default_locale": "en",
"description": "__MSG_Description__",
"homepage_url": "https://sponsor.ajay.app",
From 6514b414180e55a03087c8254f3217c33b826373 Mon Sep 17 00:00:00 2001
From: Ajay
Date: Mon, 6 Jun 2022 13:18:20 -0400
Subject: [PATCH 03/25] Fix only bracket wrapping
---
public/popup.css | 4 ++++
public/popup.html | 30 +++++++++++++++++-------------
2 files changed, 21 insertions(+), 13 deletions(-)
diff --git a/public/popup.css b/public/popup.css
index 5389b183..54b69e1b 100644
--- a/public/popup.css
+++ b/public/popup.css
@@ -424,6 +424,10 @@
padding-bottom: 5px;
}
+.sbStatsSentence .sbExtraInfo {
+ display: inline-block;
+}
+
/*
* Increase font size of username input and display
*/
diff --git a/public/popup.html b/public/popup.html
index 164a9de1..3e5ad52f 100644
--- a/public/popup.html
+++ b/public/popup.html
@@ -125,13 +125,15 @@
- (
-
-
-
-
- __MSG_youHaveSavedTimeEnd__
- )
+
From 32a3cb2cfeefa9e4f9d06e56e1e3cc3e5669b892 Mon Sep 17 00:00:00 2001
From: Ajay
Date: Mon, 6 Jun 2022 17:09:34 -0400
Subject: [PATCH 04/25] Forward key presses from popup
---
src/background.ts | 10 ++++++----
src/content.ts | 15 ++++++++++++++-
src/messageTypes.ts | 14 +++++++++++++-
src/popup.ts | 30 ++++++++++++++++++++++++++++++
4 files changed, 63 insertions(+), 6 deletions(-)
diff --git a/src/background.ts b/src/background.ts
index aa94df5e..1af6038d 100644
--- a/src/background.ts
+++ b/src/background.ts
@@ -84,7 +84,7 @@ chrome.runtime.onMessage.addListener(function (request, _, callback) {
case "unregisterContentScript":
unregisterFirefoxContentScript(request.id)
return false;
- case "tabs":
+ case "tabs": {
chrome.tabs.query({
active: true,
currentWindow: true
@@ -92,11 +92,13 @@ chrome.runtime.onMessage.addListener(function (request, _, callback) {
chrome.tabs.sendMessage(
tabs[0].id,
request.data,
- (response) => callback(response)
+ (response) => {
+ callback(response);
+ }
);
- }
- );
+ });
return true;
+ }
}
});
diff --git a/src/content.ts b/src/content.ts
index 46dbd913..92f80f60 100644
--- a/src/content.ts
+++ b/src/content.ts
@@ -223,8 +223,21 @@ function messageListener(request: Message, sender: unknown, sendResponse: (respo
case "copyToClipboard":
navigator.clipboard.writeText(request.text);
break;
-
+ case "keydown":
+ document.dispatchEvent(new KeyboardEvent('keydown', {
+ key: request.key,
+ keyCode: request.keyCode,
+ code: request.code,
+ which: request.which,
+ shiftKey: request.shiftKey,
+ ctrlKey: request.ctrlKey,
+ altKey: request.altKey,
+ metaKey: request.metaKey
+ }));
+ break;
}
+
+ sendResponse({});
}
/**
diff --git a/src/messageTypes.ts b/src/messageTypes.ts
index 470c95a6..65e5c612 100644
--- a/src/messageTypes.ts
+++ b/src/messageTypes.ts
@@ -47,7 +47,19 @@ interface CopyToClipboardMessage {
text: string;
}
-export type Message = BaseMessage & (DefaultMessage | BoolValueMessage | IsInfoFoundMessage | SubmitVoteMessage | HideSegmentMessage | CopyToClipboardMessage);
+interface KeyDownMessage {
+ message: "keydown";
+ key: string;
+ keyCode: number;
+ code: string;
+ which: number;
+ shiftKey: boolean;
+ ctrlKey: boolean;
+ altKey: boolean;
+ metaKey: boolean;
+}
+
+export type Message = BaseMessage & (DefaultMessage | BoolValueMessage | IsInfoFoundMessage | SubmitVoteMessage | HideSegmentMessage | CopyToClipboardMessage | KeyDownMessage);
export interface IsInfoFoundMessageResponse {
found: boolean;
diff --git a/src/popup.ts b/src/popup.ts
index 927454d6..0dc88176 100644
--- a/src/popup.ts
+++ b/src/popup.ts
@@ -180,6 +180,36 @@ async function runThePopup(messageListener?: MessageListener): Promise {
PageElements.refreshSegmentsButton.addEventListener("click", refreshSegments);
PageElements.sbPopupIconCopyUserID.addEventListener("click", async () => copyToClipboard(await utils.getHash(Config.config.userID)));
+ // Forward click events
+ if (window !== window.top) {
+ document.addEventListener("keydown", (e) => {
+ const target = e.target as HTMLElement;
+ if (target.tagName === "INPUT"
+ || target.tagName === "TEXTAREA"
+ || e.key === "ArrowUp"
+ || e.key === "ArrowDown") {
+ return;
+ }
+
+ if (e.key === " ") {
+ // No scrolling
+ e.preventDefault();
+ }
+
+ sendTabMessage({
+ message: "keydown",
+ key: e.key,
+ keyCode: e.keyCode,
+ code: e.code,
+ which: e.which,
+ shiftKey: e.shiftKey,
+ ctrlKey: e.ctrlKey,
+ altKey: e.altKey,
+ metaKey: e.metaKey
+ });
+ });
+ }
+
//show proper disable skipping button
const disableSkipping = Config.config.disableSkipping;
if (disableSkipping != undefined && disableSkipping) {
From efe6b0483c29e88b3914a99b8d121d2882a3bdf8 Mon Sep 17 00:00:00 2001
From: Ajay Ramachandran
Date: Tue, 7 Jun 2022 22:47:59 -0400
Subject: [PATCH 05/25] remove pointer cursor from your work
---
public/popup.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/public/popup.html b/public/popup.html
index 3e5ad52f..faf35ef8 100644
--- a/public/popup.html
+++ b/public/popup.html
@@ -85,7 +85,7 @@
-
From 25c04a49c131a4b4c9b2d229d4aa84d7ec36cbca Mon Sep 17 00:00:00 2001
From: Ajay
Date: Thu, 9 Jun 2022 14:02:23 -0400
Subject: [PATCH 06/25] Fix help page not closing from keybind
---
src/components/SubmissionNoticeComponent.tsx | 2 +-
src/content.ts | 4 ++--
src/render/SubmissionNotice.tsx | 5 +++--
src/types.ts | 2 +-
4 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/src/components/SubmissionNoticeComponent.tsx b/src/components/SubmissionNoticeComponent.tsx
index 65d50025..fea0c762 100644
--- a/src/components/SubmissionNoticeComponent.tsx
+++ b/src/components/SubmissionNoticeComponent.tsx
@@ -163,7 +163,7 @@ class SubmissionNoticeComponent extends React.Component this.close()} />,
+ closeListener={() => this.close(false)} />,
this.noticeElement
);
}
@@ -44,7 +44,8 @@ class SubmissionNotice {
this.noticeRef.current.forceUpdate();
}
- close(): void {
+ close(callRef = true): void {
+ if (callRef) this.noticeRef.current.cancel();
ReactDOM.unmountComponentAtNode(this.noticeElement);
this.noticeElement.remove();
diff --git a/src/types.ts b/src/types.ts
index 1f3e6d76..48dfb7a8 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -16,7 +16,7 @@ export interface ContentContainer {
updatePreviewBar: () => void,
onMobileYouTube: boolean,
sponsorSubmissionNotice: SubmissionNotice,
- resetSponsorSubmissionNotice: () => void,
+ resetSponsorSubmissionNotice: (callRef?: boolean) => void,
updateEditButtonsOnPlayer: () => void,
previewTime: (time: number, unpause?: boolean) => void,
videoInfo: VideoInfo,
From 05eed6ee206e784345efa0335f30336210a709ce Mon Sep 17 00:00:00 2001
From: Argn0
Date: Fri, 10 Jun 2022 06:13:57 +0200
Subject: [PATCH 07/25] display "Voted!" message only momentarily
---
src/popup.ts | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/popup.ts b/src/popup.ts
index 0dc88176..bb6bcc29 100644
--- a/src/popup.ts
+++ b/src/popup.ts
@@ -714,6 +714,17 @@ async function runThePopup(messageListener?: MessageListener): Promise {
thanksForVotingText.innerText = message;
}
+ function removeVoteMessage(UUID) {
+ const voteButtonsContainer = document.getElementById("sponsorTimesVoteButtonsContainer" + UUID);
+ voteButtonsContainer.style.display = "block";
+
+ const voteStatusContainer = document.getElementById("sponsorTimesVoteStatusContainer" + UUID);
+ voteStatusContainer.style.display = "none";
+
+ const thanksForVotingText = document.getElementById("sponsorTimesThanksForVotingText" + UUID);
+ thanksForVotingText.removeAttribute("innerText");
+ }
+
function vote(type, UUID) {
//add loading info
addVoteMessage(chrome.i18n.getMessage("Loading"), UUID);
@@ -737,6 +748,7 @@ async function runThePopup(messageListener?: MessageListener): Promise {
} else if (response.successType == -1) {
addVoteMessage(GenericUtils.getErrorMessage(response.statusCode, response.responseText), UUID);
}
+ setTimeout(() => removeVoteMessage(UUID), 1500);
}
}
);
From 47220e0abc2cdb35324b5a6fedbc277efdcf50e2 Mon Sep 17 00:00:00 2001
From: Ajay
Date: Mon, 13 Jun 2022 13:16:47 -0400
Subject: [PATCH 08/25] Fix some popup buttons
---
public/popup.css | 5 +++++
public/popup.html | 16 ++++++++--------
2 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/public/popup.css b/public/popup.css
index 54b69e1b..01142d6e 100644
--- a/public/popup.css
+++ b/public/popup.css
@@ -539,6 +539,11 @@
background: #444;
}
+#sponsorTimesDonateContainer a {
+ color: var(--sb-main-fg-color);
+ text-decoration: none;
+}
+
/*
* "Show Notice Again" button
*/
diff --git a/public/popup.html b/public/popup.html
index faf35ef8..48cdeea1 100644
--- a/public/popup.html
+++ b/public/popup.html
@@ -152,15 +152,15 @@
-