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_Segments__
- ( - - 0 - __MSG_minsLower__ - - __MSG_youHaveSavedTimeEnd__ - ) + + ( + + 0 + __MSG_minsLower__ + + __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 @@
-

+

__MSG_yourWork__

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 @@

-