From f953f08b023c66baf649306eb5399f26ab5870d5 Mon Sep 17 00:00:00 2001 From: Jie Li Date: Wed, 13 Nov 2024 19:12:17 +0000 Subject: [PATCH 01/16] added buttons to show original title and thumbnail --- .../components/ft-list-video/ft-list-video.js | 28 +++++++++++++- .../ft-list-video/ft-list-video.vue | 38 ++++++++++++++----- src/renderer/scss-partials/_ft-list-item.scss | 6 +++ static/locales/en-US.yaml | 2 + 4 files changed, 63 insertions(+), 11 deletions(-) diff --git a/src/renderer/components/ft-list-video/ft-list-video.js b/src/renderer/components/ft-list-video/ft-list-video.js index 67acb17bb96a1..2255d78922341 100644 --- a/src/renderer/components/ft-list-video/ft-list-video.js +++ b/src/renderer/components/ft-list-video/ft-list-video.js @@ -112,6 +112,12 @@ export default defineComponent({ hideViews: false, addToPlaylistPromptCloseCallback: null, debounceGetDeArrowThumbnail: null, + deArrowToggleTitle: this.$t('Video.Sponsor Block category.Show Original Details'), + showDeArrowToggle: false, + deArrowToggleAlwaysVisible: false, + useDeArrowTitles: null, + useDeArrowThumbnails: null, + isHovered: false, } }, computed: { @@ -493,11 +499,11 @@ export default defineComponent({ return query }, - useDeArrowTitles: function () { + globalUseDeArrowTitles: function () { return this.$store.getters.getUseDeArrowTitles }, - useDeArrowThumbnails: function () { + globalUseDeArrowThumbnails: function () { return this.$store.getters.getUseDeArrowThumbnails }, @@ -517,6 +523,12 @@ export default defineComponent({ created: function () { this.parseVideoData() + this.useDeArrowTitles = this.globalUseDeArrowTitles + this.useDeArrowThumbnails = this.globalUseDeArrowThumbnails + if (this.useDeArrowTitles || this.useDeArrowThumbnails) { + this.showDeArrowToggle = true + } + if ((this.useDeArrowTitles || this.useDeArrowThumbnails) && !this.deArrowCache) { this.fetchDeArrowData() } @@ -567,6 +579,18 @@ export default defineComponent({ this.debounceGetDeArrowThumbnail() } }, + toggleDeArrow() { + this.deArrowToggleAlwaysVisible = !this.deArrowToggleAlwaysVisible + this.deArrowToggleTitle = this.showDeArrowToggle + ? this.$t('Video.Sponsor Block category.Show Original Details') + : this.$t('Video.Sponsor Block category.Show Modified Details') + if (this.globalUseDeArrowTitles) { + this.useDeArrowTitles = !this.useDeArrowTitles + } + if (this.globalUseDeArrowThumbnails) { + this.useDeArrowThumbnails = !this.useDeArrowThumbnails + } + }, handleExternalPlayer: function () { this.$emit('pause-player') diff --git a/src/renderer/components/ft-list-video/ft-list-video.vue b/src/renderer/components/ft-list-video/ft-list-video.vue index 7d63dcf983228..49e1d6e0f9c54 100644 --- a/src/renderer/components/ft-list-video/ft-list-video.vue +++ b/src/renderer/components/ft-list-video/ft-list-video.vue @@ -109,15 +109,35 @@ :style="{inlineSize: progressPercentage + '%'}" /> -
- -

- {{ displayTitle }} -

-
+
+
+ +

+ {{ displayTitle }} +

+
+ +
Date: Wed, 13 Nov 2024 20:58:29 +0000 Subject: [PATCH 02/16] refactored logic --- src/renderer/components/ft-list-video/ft-list-video.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/renderer/components/ft-list-video/ft-list-video.js b/src/renderer/components/ft-list-video/ft-list-video.js index 2255d78922341..6fc30c629ab2b 100644 --- a/src/renderer/components/ft-list-video/ft-list-video.js +++ b/src/renderer/components/ft-list-video/ft-list-video.js @@ -112,7 +112,7 @@ export default defineComponent({ hideViews: false, addToPlaylistPromptCloseCallback: null, debounceGetDeArrowThumbnail: null, - deArrowToggleTitle: this.$t('Video.Sponsor Block category.Show Original Details'), + deArrowToggleTitle: '', showDeArrowToggle: false, deArrowToggleAlwaysVisible: false, useDeArrowTitles: null, @@ -527,6 +527,7 @@ export default defineComponent({ this.useDeArrowThumbnails = this.globalUseDeArrowThumbnails if (this.useDeArrowTitles || this.useDeArrowThumbnails) { this.showDeArrowToggle = true + this.deArrowToggleTitle = this.$t('Video.Sponsor Block category.Show Original Details') } if ((this.useDeArrowTitles || this.useDeArrowThumbnails) && !this.deArrowCache) { @@ -581,9 +582,10 @@ export default defineComponent({ }, toggleDeArrow() { this.deArrowToggleAlwaysVisible = !this.deArrowToggleAlwaysVisible - this.deArrowToggleTitle = this.showDeArrowToggle - ? this.$t('Video.Sponsor Block category.Show Original Details') - : this.$t('Video.Sponsor Block category.Show Modified Details') + this.deArrowToggleTitle = this.deArrowToggleAlwaysVisible + ? this.$t('Video.Sponsor Block category.Show Modified Details') + : this.$t('Video.Sponsor Block category.Show Original Details') + if (this.globalUseDeArrowTitles) { this.useDeArrowTitles = !this.useDeArrowTitles } From 37abd5c609accf4011894d296efaf02fc7e652ae Mon Sep 17 00:00:00 2001 From: Jie Li Date: Wed, 13 Nov 2024 23:31:32 +0000 Subject: [PATCH 03/16] added small button for non changed titles --- .../components/ft-list-video/ft-list-video.js | 12 +++++++++++- .../components/ft-list-video/ft-list-video.vue | 4 +++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/renderer/components/ft-list-video/ft-list-video.js b/src/renderer/components/ft-list-video/ft-list-video.js index 6fc30c629ab2b..7d0971a3300f9 100644 --- a/src/renderer/components/ft-list-video/ft-list-video.js +++ b/src/renderer/components/ft-list-video/ft-list-video.js @@ -502,11 +502,21 @@ export default defineComponent({ globalUseDeArrowTitles: function () { return this.$store.getters.getUseDeArrowTitles }, - globalUseDeArrowThumbnails: function () { return this.$store.getters.getUseDeArrowThumbnails }, + deArrowToggleStyle() { + let defaultStyle = { size: 12, padding: 4 } + + if (this.globalUseDeArrowTitles && this.deArrowCache?.title && + this.data.title.localeCompare(this.deArrowCache.title, undefined, { sensitivity: 'accent' }) !== 0) { + defaultStyle = { size: 16, padding: 2 } + } + + return defaultStyle + }, + deArrowCache: function () { return this.$store.getters.getDeArrowCache[this.id] }, diff --git a/src/renderer/components/ft-list-video/ft-list-video.vue b/src/renderer/components/ft-list-video/ft-list-video.vue index 49e1d6e0f9c54..b971659b11332 100644 --- a/src/renderer/components/ft-list-video/ft-list-video.vue +++ b/src/renderer/components/ft-list-video/ft-list-video.vue @@ -132,7 +132,8 @@ :icon="['fas', 'times-circle']" :title="deArrowToggleTitle" theme="base-no-default" - :size="16" + :size="deArrowToggleStyle.size" + :padding="deArrowToggleStyle.padding" :use-shadow="false" role="button" @click="toggleDeArrow" @@ -232,6 +233,7 @@ :title="$t('Video.More Options')" theme="base-no-default" :size="16" + :padding="2" :use-shadow="false" dropdown-position-x="left" :dropdown-options="dropdownOptions" From e9a7342c8d900854d0cced2ce69ed30959946b7e Mon Sep 17 00:00:00 2001 From: Jie Li Date: Thu, 14 Nov 2024 00:09:20 +0000 Subject: [PATCH 04/16] dont allow button to be permanent if dearrow doesnt change anything --- src/renderer/components/ft-list-video/ft-list-video.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/renderer/components/ft-list-video/ft-list-video.js b/src/renderer/components/ft-list-video/ft-list-video.js index 7d0971a3300f9..080a2c8e517d0 100644 --- a/src/renderer/components/ft-list-video/ft-list-video.js +++ b/src/renderer/components/ft-list-video/ft-list-video.js @@ -506,9 +506,8 @@ export default defineComponent({ return this.$store.getters.getUseDeArrowThumbnails }, - deArrowToggleStyle() { + deArrowToggleStyle: function () { let defaultStyle = { size: 12, padding: 4 } - if (this.globalUseDeArrowTitles && this.deArrowCache?.title && this.data.title.localeCompare(this.deArrowCache.title, undefined, { sensitivity: 'accent' }) !== 0) { defaultStyle = { size: 16, padding: 2 } @@ -591,6 +590,10 @@ export default defineComponent({ } }, toggleDeArrow() { + if (this.deArrowCache?.thumbnail === null && this.deArrowCache?.title == null) { + return + } + this.deArrowToggleAlwaysVisible = !this.deArrowToggleAlwaysVisible this.deArrowToggleTitle = this.deArrowToggleAlwaysVisible ? this.$t('Video.Sponsor Block category.Show Modified Details') From 12b3d73c6fd2ae095f7cfc220f5c638450a088ce Mon Sep 17 00:00:00 2001 From: Jie Li Date: Fri, 15 Nov 2024 11:22:08 +0000 Subject: [PATCH 05/16] changed button padding to before --- src/renderer/components/ft-list-video/ft-list-video.js | 8 ++++---- src/renderer/components/ft-list-video/ft-list-video.vue | 4 +--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/renderer/components/ft-list-video/ft-list-video.js b/src/renderer/components/ft-list-video/ft-list-video.js index 080a2c8e517d0..c091352cb5f9d 100644 --- a/src/renderer/components/ft-list-video/ft-list-video.js +++ b/src/renderer/components/ft-list-video/ft-list-video.js @@ -506,14 +506,14 @@ export default defineComponent({ return this.$store.getters.getUseDeArrowThumbnails }, - deArrowToggleStyle: function () { - let defaultStyle = { size: 12, padding: 4 } + deArrowToggleSize: function () { + let defaultSize = 12 if (this.globalUseDeArrowTitles && this.deArrowCache?.title && this.data.title.localeCompare(this.deArrowCache.title, undefined, { sensitivity: 'accent' }) !== 0) { - defaultStyle = { size: 16, padding: 2 } + defaultSize = 16 } - return defaultStyle + return defaultSize }, deArrowCache: function () { diff --git a/src/renderer/components/ft-list-video/ft-list-video.vue b/src/renderer/components/ft-list-video/ft-list-video.vue index b971659b11332..bebac8ad0bc5d 100644 --- a/src/renderer/components/ft-list-video/ft-list-video.vue +++ b/src/renderer/components/ft-list-video/ft-list-video.vue @@ -132,8 +132,7 @@ :icon="['fas', 'times-circle']" :title="deArrowToggleTitle" theme="base-no-default" - :size="deArrowToggleStyle.size" - :padding="deArrowToggleStyle.padding" + :size="deArrowToggleSize" :use-shadow="false" role="button" @click="toggleDeArrow" @@ -233,7 +232,6 @@ :title="$t('Video.More Options')" theme="base-no-default" :size="16" - :padding="2" :use-shadow="false" dropdown-position-x="left" :dropdown-options="dropdownOptions" From a7e09182cca5ead961d5e737f8e0021a137b989c Mon Sep 17 00:00:00 2001 From: Jie Li Date: Fri, 22 Nov 2024 16:35:15 +0000 Subject: [PATCH 06/16] added new setting and changed colour --- .../ft-icon-button/ft-icon-button.js | 5 ++ .../ft-icon-button/ft-icon-button.vue | 3 +- .../components/ft-list-video/ft-list-video.js | 26 +++++----- .../ft-list-video/ft-list-video.vue | 27 +++++----- .../sponsor-block-settings.js | 8 +++ .../sponsor-block-settings.vue | 52 ++++++++++++------- src/renderer/main.js | 2 + src/renderer/scss-partials/_ft-list-item.scss | 7 +++ src/renderer/store/modules/settings.js | 1 + static/locales/en-US.yaml | 2 + 10 files changed, 87 insertions(+), 46 deletions(-) diff --git a/src/renderer/components/ft-icon-button/ft-icon-button.js b/src/renderer/components/ft-icon-button/ft-icon-button.js index 6c12092874425..996f928f86f21 100644 --- a/src/renderer/components/ft-icon-button/ft-icon-button.js +++ b/src/renderer/components/ft-icon-button/ft-icon-button.js @@ -24,6 +24,11 @@ export default defineComponent({ type: String, default: 'base' }, + color: { + type: String, + required: false, + default: '' + }, useShadow: { type: Boolean, default: true diff --git a/src/renderer/components/ft-icon-button/ft-icon-button.vue b/src/renderer/components/ft-icon-button/ft-icon-button.vue index 4c6af4f0e3d4d..11e3b40ef791d 100644 --- a/src/renderer/components/ft-icon-button/ft-icon-button.vue +++ b/src/renderer/components/ft-icon-button/ft-icon-button.vue @@ -12,7 +12,8 @@ }" :style="{ padding: padding + 'px', - fontSize: size + 'px' + fontSize: size + 'px', + ...(color ? { color: color } : {}) }" tabindex="0" role="button" diff --git a/src/renderer/components/ft-list-video/ft-list-video.js b/src/renderer/components/ft-list-video/ft-list-video.js index c091352cb5f9d..4d03693816794 100644 --- a/src/renderer/components/ft-list-video/ft-list-video.js +++ b/src/renderer/components/ft-list-video/ft-list-video.js @@ -114,7 +114,7 @@ export default defineComponent({ debounceGetDeArrowThumbnail: null, deArrowToggleTitle: '', showDeArrowToggle: false, - deArrowToggleAlwaysVisible: false, + deArrowTogglePinned: false, useDeArrowTitles: null, useDeArrowThumbnails: null, isHovered: false, @@ -499,21 +499,19 @@ export default defineComponent({ return query }, + deArrowChangedContent: function () { + return (this.globalUseDeArrowThumbnails && this.deArrowCache?.thumbnail) || + (this.globalUseDeArrowTitles && this.deArrowCache?.title && + this.data.title.localeCompare(this.deArrowCache.title, undefined, { sensitivity: 'accent' }) !== 0) + }, globalUseDeArrowTitles: function () { return this.$store.getters.getUseDeArrowTitles }, globalUseDeArrowThumbnails: function () { return this.$store.getters.getUseDeArrowThumbnails }, - - deArrowToggleSize: function () { - let defaultSize = 12 - if (this.globalUseDeArrowTitles && this.deArrowCache?.title && - this.data.title.localeCompare(this.deArrowCache.title, undefined, { sensitivity: 'accent' }) !== 0) { - defaultSize = 16 - } - - return defaultSize + deArrowShowOriginal: function () { + return this.$store.getters.getDeArrowShowOriginal }, deArrowCache: function () { @@ -534,7 +532,7 @@ export default defineComponent({ this.useDeArrowTitles = this.globalUseDeArrowTitles this.useDeArrowThumbnails = this.globalUseDeArrowThumbnails - if (this.useDeArrowTitles || this.useDeArrowThumbnails) { + if (this.deArrowShowOriginal && (this.useDeArrowTitles || this.useDeArrowThumbnails)) { this.showDeArrowToggle = true this.deArrowToggleTitle = this.$t('Video.Sponsor Block category.Show Original Details') } @@ -590,12 +588,12 @@ export default defineComponent({ } }, toggleDeArrow() { - if (this.deArrowCache?.thumbnail === null && this.deArrowCache?.title == null) { + if (!this.deArrowChangedContent) { return } - this.deArrowToggleAlwaysVisible = !this.deArrowToggleAlwaysVisible - this.deArrowToggleTitle = this.deArrowToggleAlwaysVisible + this.deArrowTogglePinned = !this.deArrowTogglePinned + this.deArrowToggleTitle = this.deArrowTogglePinned ? this.$t('Video.Sponsor Block category.Show Modified Details') : this.$t('Video.Sponsor Block category.Show Original Details') diff --git a/src/renderer/components/ft-list-video/ft-list-video.vue b/src/renderer/components/ft-list-video/ft-list-video.vue index bebac8ad0bc5d..23f884e9705fc 100644 --- a/src/renderer/components/ft-list-video/ft-list-video.vue +++ b/src/renderer/components/ft-list-video/ft-list-video.vue @@ -125,18 +125,6 @@ {{ displayTitle }} -
+ + - - - - - +
+
+ + +
+
+ + +
+