From 36f6db27a775bbe1ee6cf7b22d392e4553b10ab6 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sat, 15 Nov 2025 10:11:04 +0000 Subject: [PATCH 01/12] Sync SponsorBlock 6.1.0 (9a526c5..44941acb) and DeArrow 2.1.11 (2.1.8..13ddd1f) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Update to SponsorBlock 6.1.0 with 98 new commits including: - Skip profiles feature - YouTube layout fixes for new design - Advanced skip options improvements - Pride theme support - Better chapter handling - Update to DeArrow 2.1.11 with 35 new commits including: - Title formatting improvements - Thumbnail renderer updates - YouTube layout fixes - Better error handling - Preserve EditTogether branding throughout: - Updated manifest.json to version 6.1.0 - Maintained EditTogether icons and branding in HTML files - Updated help page and options page with EditTogether identity - Kept EditTogether-specific configuration Co-Authored-By: Erkin Alp Güney --- manifest/manifest.json | 9 +- public/content.css | 32 +- public/help/index.html | 228 ++--- public/options/options.css | 177 +++- public/options/options.html | 138 ++- public/popup.css | 160 +++- public/shared.css | 5 + src/background.ts | 35 +- src/components/CategoryPillComponent.tsx | 7 +- src/components/NoticeComponent.tsx | 19 +- src/components/SponsorTimeEditComponent.tsx | 77 +- .../options/AdvancedSkipOptionsComponent.tsx | 211 +---- .../options/CategoryChooserComponent.tsx | 338 ++++++- .../options/CategorySkipOptionsComponent.tsx | 459 ++++----- .../options/NumberInputOptionComponent.tsx | 52 ++ .../options/SelectOptionComponent.tsx | 60 ++ .../options/ToggleOptionComponent.tsx | 87 +- src/config.ts | 146 ++- src/content.ts | 225 +++-- src/dataFetching.ts | 166 ++-- src/js-components/previewBar.ts | 34 +- src/messageTypes.ts | 21 +- src/options.ts | 51 +- src/options/ChannelOverridesComponent.tsx | 1 + src/popup/PopupComponent.tsx | 836 ++++++++++++++--- src/popup/SegmentListComponent.tsx | 480 ++++++---- src/popup/YourWorkComponent.tsx | 246 ++--- src/render/CategoryChooser.tsx | 12 +- src/render/CategoryPill.tsx | 2 +- src/submission/SubmissionComponent.tsx | 95 +- src/submission/autoWarning.ts | 55 +- src/submission/casualVoteButton.tsx | 24 +- src/submission/submitButton.tsx | 132 ++- src/thumbnails/thumbnailRenderer.ts | 22 +- src/titles/titleFormatter.ts | 59 +- src/titles/titleFormatterData.ts | 22 +- src/titles/titleRenderer.ts | 35 +- src/types.ts | 28 +- src/utils/cssInjector.ts | 11 +- src/utils/logger.ts | 14 +- src/utils/pageUtils.ts | 6 +- src/utils/segmentData.ts | 41 +- src/utils/skipProfiles.ts | 97 ++ src/utils/skipRule.ts | 875 ++++++++++++++++-- src/utils/skipRule.type.ts | 71 ++ src/utils/thumbnails.ts | 27 +- src/utils/titleBar.ts | 22 +- src/video.ts | 27 +- src/videoBranding/videoBranding.ts | 129 +-- src/videoBranding/watchPageBrandingHandler.ts | 77 +- tsconfig-production.json | 4 +- webpack/webpack.common.js | 7 +- webpack/webpack.manifest.js | 14 +- webpack/webpack.prod.js | 34 +- 54 files changed, 4382 insertions(+), 1860 deletions(-) create mode 100644 src/components/options/NumberInputOptionComponent.tsx create mode 100644 src/components/options/SelectOptionComponent.tsx create mode 100644 src/utils/skipProfiles.ts create mode 100644 src/utils/skipRule.type.ts diff --git a/manifest/manifest.json b/manifest/manifest.json index b438eae2..1e8f1b47 100644 --- a/manifest/manifest.json +++ b/manifest/manifest.json @@ -1,7 +1,7 @@ { "name": "__MSG_editTogetherFullName__", "short_name": "EditTogether", - "version": "5.14", + "version": "6.1.0", "default_locale": "en", "description": "__MSG_editTogetherDescription__", "homepage_url": "https://github.com/erkinalp/EditTogether", @@ -16,12 +16,11 @@ }, "permissions": [ "storage", - "unlimitedStorage", - "alarms", - "scripting" + "scripting", + "unlimitedStorage" ], "options_ui": { "page": "options/options.html", "open_in_tab": true } -} +} diff --git a/public/content.css b/public/content.css index 49330726..83c97bce 100644 --- a/public/content.css +++ b/public/content.css @@ -25,7 +25,7 @@ pointer-events: none; height: 100%; - transform: scaleY(0.6) translateY(-30%) translateY(1.5px); + transform: scaleY(0.667) translateY(-30%) translateY(1.5px); z-index: 42; transition: transform .1s cubic-bezier(0,0,0.2,1); @@ -691,6 +691,14 @@ input::-webkit-inner-spin-button { color: white; } +.hideSegmentSubmitButton { + cursor: pointer; + margin: auto; + top: 0; + bottom: 0; + position: absolute; +} + /* Start SelectorComponent */ .sbSelector { @@ -966,3 +974,25 @@ input::-webkit-inner-spin-button { .sponsorblock-chapter-visible { display: block !important; } + +/* Pride theme */ + +.playerButton.prideTheme:nth-of-type(1) { + filter: brightness(50%) sepia(100) saturate(100); +} + +.playerButton.prideTheme:nth-of-type(2) { + filter: sepia(100) saturate(100) hue-rotate(0deg); +} + +.playerButton.prideTheme:nth-of-type(3) { + filter: sepia(100) saturate(100) hue-rotate(45deg); +} + +.playerButton.prideTheme:nth-of-type(4) { + filter: sepia(100) saturate(100) invert() hue-rotate(5deg); +} + +.playerButton.prideTheme:nth-of-type(5) { + filter: sepia(100) saturate(100) invert() hue-rotate(35deg); +} \ No newline at end of file diff --git a/public/help/index.html b/public/help/index.html index bd59a795..65b1b0a7 100644 --- a/public/help/index.html +++ b/public/help/index.html @@ -21,128 +21,130 @@

- + Created By Ajay Ramachandran - (Donate)

-

- __MSG_helpPageThanksForInstalling__ By using this extension, you agree to the Privacy Policy and Terms of Use. -

- -

- Come contribute, make some suggestions and help out on Discord or on Matrix. -

- - - -

__MSG_helpPageReviewOptions__

- -

- __MSG_helpPageFeatureDisclaimer__ -

- - - -

__MSG_helpPageHowSkippingWorks__

- -

- - - - - __MSG_helpPageHowSkippingWorks1__ + +

+
+ +
+

__MSG_helpPageReviewOptions__

+ +

+ __MSG_helpPageFeatureDisclaimer__ +

+ + +
+ diff --git a/public/options/options.css b/public/options/options.css index 168b8089..5ebc6bfe 100644 --- a/public/options/options.css +++ b/public/options/options.css @@ -17,6 +17,10 @@ --border-color: #484848; --black: black; --white: white; + + --selector-red: #c00000; + --selector-red-hover: #fc0303; + --tab-selected: #950000; } [data-theme="light"] { @@ -38,6 +42,10 @@ --white: black; } +[data-theme="pride"] { + --menu-background: #181818d0; +} + .medium-description, .switch-container, .optionLabel, .categoryTableElement, .promotion-description { color: var(--white); } @@ -58,6 +66,12 @@ html, body { background-color: var(--background); } +[data-theme="pride"] body { + background: url("../icons/pride.svg"); + background-size: contain; +} + + * { box-sizing: border-box; } @@ -107,23 +121,119 @@ html, body { } .tab-heading.selected { - background-color: #c00000; + background-color: var(--selector-red); color: white; } .tab-heading:active { - background-color: #950000; + background-color: var(--tab-selected); color: white; } -.option-group > div { +[data-theme="pride"] .tab-heading:nth-of-type(1) { + background-color: #2f0000; +} +[data-theme="pride"] .tab-heading:nth-of-type(2) { + background-color: #3a2000; +} +[data-theme="pride"] .tab-heading:nth-of-type(3) { + background-color: #3e3a00; +} +[data-theme="pride"] .tab-heading:nth-of-type(4) { + background-color: #003e13; +} +[data-theme="pride"] .tab-heading:nth-of-type(5) { + background-color: #00164a; +} + +[data-theme="pride"] .tab-heading:hover:nth-of-type(1) { + background-color: #550000; +} +[data-theme="pride"] .tab-heading:hover:nth-of-type(2), +[data-theme="pride"] #category-type tr:nth-of-type(5n) .slider, +[data-theme="pride"] [data-type="toggle"]:nth-of-type(5n) .slider { + background-color: #824700; +} +[data-theme="pride"] .tab-heading:hover:nth-of-type(3), +[data-theme="pride"] #category-type tr:nth-of-type(5n + 1) .slider, +[data-theme="pride"] [data-type="toggle"]:nth-of-type(5n + 1) .slider { + background-color: #867d00; +} +[data-theme="pride"] .tab-heading:hover:nth-of-type(4), +[data-theme="pride"] #category-type tr:nth-of-type(5n + 2) .slider, +[data-theme="pride"] [data-type="toggle"]:nth-of-type(5n + 2) .slider { + background-color: #00691f; +} +[data-theme="pride"] .tab-heading:hover:nth-of-type(5), +[data-theme="pride"] #category-type tr:nth-of-type(5n + 3) .slider, +[data-theme="pride"] [data-type="toggle"]:nth-of-type(5n + 3) .slider { + background-color: #002374; +} +[data-theme="pride"] #category-type tr:nth-of-type(5n + 4) .slider, +[data-theme="pride"] [data-type="toggle"]:nth-of-type(5n + 4) .slider { + background-color: #400449; +} + +[data-theme="pride"] #category-type tr .optionsSelector { + color: var(--white); +} +[data-theme="pride"] .tab-heading:nth-of-type(1).selected { + background-color: #E40303; +} +[data-theme="pride"] .tab-heading:nth-of-type(2).selected, +[data-theme="pride"] #category-type tr:nth-of-type(10n + 2) .optionsSelector, +[data-theme="pride"] #category-type tr:nth-of-type(5n) input:checked + .slider, +[data-theme="pride"] [data-type]:nth-of-type(5n) :is(input:checked + .slider, .option-button, .optionsSelector) { + background-color: #dd7a00; +} +[data-theme="pride"] .tab-heading:nth-of-type(3).selected, +[data-theme="pride"] #category-type tr:nth-of-type(10n + 4) .optionsSelector, +[data-theme="pride"] #category-type tr:nth-of-type(2n + 1) .optionsSelector, +[data-theme="pride"] #category-type tr:nth-of-type(5n + 1) input:checked + .slider, +[data-theme="pride"] [data-type]:nth-of-type(5n + 1) :is(input:checked + .slider, .option-button, .optionsSelector) { + background-color: #FFED00; + color: rgb(23, 23, 23); +} +[data-theme="pride"] .tab-heading:nth-of-type(4).selected, +[data-theme="pride"] #category-type tr:nth-of-type(10n + 6) .optionsSelector, +[data-theme="pride"] #category-type tr:nth-of-type(5n + 2) input:checked + .slider, +[data-theme="pride"] [data-type]:nth-of-type(5n + 2) :is(input:checked + .slider, .option-button, .optionsSelector) { + background-color: #008026; +} +[data-theme="pride"] .tab-heading:nth-of-type(5).selected, +[data-theme="pride"] #category-type tr:nth-of-type(10n + 8) .optionsSelector, +[data-theme="pride"] #category-type tr:nth-of-type(5n + 3) input:checked + .slider, +[data-theme="pride"] [data-type]:nth-of-type(5n + 3) :is(input:checked + .slider, .option-button, .optionsSelector) { + background-color: #004DFF; +} +[data-theme="pride"] .tab-heading:nth-of-type(5).selected, +[data-theme="pride"] #category-type tr:nth-of-type(10n + 10) .optionsSelector, +[data-theme="pride"] #category-type tr:nth-of-type(5n + 4) input:checked + .slider, +[data-theme="pride"] [data-type]:nth-of-type(5n + 4) :is(input:checked + .slider, .option-button, .optionsSelector) { + background-color: #750787; +} + + +.option-group > div, .extraOptionGroup { min-height: 50px; padding: 15px 0; - border-bottom: 1px solid var(--border-color); border-image: linear-gradient(to right, var(--border-color), #00000000 80%) 1; } +.option-group > div { + border-bottom: 1px solid var(--border-color); +} +.extraOptionGroup { + border-top: 1px solid var(--border-color); +} +.extraOptionGroup tr:not(:last-child) { + padding-bottom: 15px; + display: block; +} +#category-type { + padding: 0; +} -.categoryExtraOptions { +#category-type .categoryExtraOptions { padding-bottom: 15px; } @@ -298,7 +408,7 @@ input[type='number'] { .option-button { cursor: pointer; - background-color: #c00000; + background-color: var(--selector-red); padding: 10px; color: white; border-radius: 5px; @@ -308,7 +418,7 @@ input[type='number'] { } .option-button:hover:not(.disabled) { - background-color: #fc0303; + background-color: var(--selector-red-hover); } .option-button.disabled { @@ -364,6 +474,11 @@ input[type='number'] { padding: 4px; } +.sb-number-input { + margin-left: 4px; + margin-right: 4px; +} + .switch-label { width: inherit; } @@ -413,7 +528,7 @@ input[type='number'] { } input:checked + .slider { - background-color: #fc0303; + background-color: var(--selector-red-hover); } input:checked + .slider:before { @@ -594,7 +709,7 @@ svg { } .optionsSelector { - background-color: #c00000; + background-color: var(--selector-red); color: white; border: none; @@ -709,19 +824,19 @@ svg { width: fit-content; } -.edittogether-link { +.dearrow-link { display: flex; align-items: center; justify-content: center; text-decoration: none; } -.edittogether-link > img { +.dearrow-link > img { width: 40px; margin-right: 4px; } -.edittogether-link .close-button { +.dearrow-link .close-button { opacity: 0; width: 15px; filter: invert(0.3); @@ -729,7 +844,7 @@ svg { margin-left: 10px; } -.edittogether-link:hover .close-button { +.dearrow-link:hover .close-button { opacity: 1; } @@ -745,3 +860,39 @@ svg { margin-bottom: 10px; transition: none; } + +.categoryChooserTopRow { + display: flex; + align-items: center; + justify-content: space-between; + + margin-bottom: 10px; +} + +.partiallyHidden { + opacity: 0.5; +} + +.partiallyHidden:hover { + opacity: 1; +} + +.reset-button svg { + margin-left: 5px; + width: 10px; + fill: var(--white); + + cursor: pointer; +} + +.skipProfileMenu { + position: absolute; +} + +.configurationInfo > *:not(:last-child) { + margin-bottom: 10px; +} + +.configurationInfo .option-text-box { + width: 100%; +} \ No newline at end of file diff --git a/public/options/options.html b/public/options/options.html index 052d5a26..3b5b58e6 100644 --- a/public/options/options.html +++ b/public/options/options.html @@ -2,10 +2,10 @@ - __MSG_Options__ - SponsorBlock + __MSG_Options__ - EditTogether - + @@ -19,8 +19,8 @@ +