From fc4373160d0a599396de2afb816ce03036c3d24f Mon Sep 17 00:00:00 2001 From: younesaassila <47226184+younesaassila@users.noreply.github.com> Date: Tue, 10 Oct 2023 17:00:26 +0200 Subject: [PATCH 1/4] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20Bump=20version=20numbe?= =?UTF-8?q?r=20to=202.2.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 4 ++-- package.json | 2 +- src/manifest.chromium.json | 2 +- src/manifest.firefox.json | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 82f3d99..c30d300 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ttv-lol-pro", - "version": "2.2.0", + "version": "2.2.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ttv-lol-pro", - "version": "2.2.0", + "version": "2.2.1", "license": "GPL-3.0", "dependencies": { "bowser": "^2.11.0", diff --git a/package.json b/package.json index db0806b..44fda86 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ttv-lol-pro", - "version": "2.2.0", + "version": "2.2.1", "description": "TTV LOL PRO removes most livestream ads from Twitch.", "@parcel/bundler-default": { "minBundles": 10000000, diff --git a/src/manifest.chromium.json b/src/manifest.chromium.json index 7b0d9d7..4be563b 100644 --- a/src/manifest.chromium.json +++ b/src/manifest.chromium.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "TTV LOL PRO", "description": "TTV LOL PRO removes most livestream ads from Twitch.", - "version": "2.2.0", + "version": "2.2.1", "background": { "service_worker": "background/background.ts", "type": "module" diff --git a/src/manifest.firefox.json b/src/manifest.firefox.json index 5ecd3e3..f9833f6 100644 --- a/src/manifest.firefox.json +++ b/src/manifest.firefox.json @@ -2,7 +2,7 @@ "manifest_version": 2, "name": "TTV LOL PRO", "description": "TTV LOL PRO removes most livestream ads from Twitch.", - "version": "2.2.0", + "version": "2.2.1", "background": { "scripts": ["background/background.ts"], "persistent": false From 8d7a10ca323edd3cae4a972b5714f4b09796faa2 Mon Sep 17 00:00:00 2001 From: younesaassila <47226184+younesaassila@users.noreply.github.com> Date: Tue, 10 Oct 2023 17:01:02 +0200 Subject: [PATCH 2/4] =?UTF-8?q?=F0=9F=90=9B=20Fix=20#261?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/getFetch.ts | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/page/getFetch.ts b/src/page/getFetch.ts index f4e67a0..31d384c 100644 --- a/src/page/getFetch.ts +++ b/src/page/getFetch.ts @@ -28,7 +28,7 @@ export function getFetch(options: FetchOptions): typeof fetch { if (options.shouldWaitForStore) { setTimeout(() => { options.shouldWaitForStore = false; - }, 3000); + }, 5000); } return async function fetch( @@ -87,15 +87,33 @@ export function getFetch(options: FetchOptions): typeof fetch { console.debug( "[TTV LOL PRO] 🥅 Caught GraphQL PlaybackAccessToken_Template request. Flagging…" ); + while (options.shouldWaitForStore) await sleep(100); - if (options.state?.anonymousMode) { - console.log("[TTV LOL PRO] ❓ Acting as anonymous user"); + let graphQlBody = null; + try { + graphQlBody = JSON.parse(requestBody); + } catch {} + const channelName = graphQlBody?.variables?.login as string | undefined; + const whitelistedChannelsLower = options.state?.whitelistedChannels.map( + channel => channel.toLowerCase() + ); + const isWhitelisted = + channelName != null && + whitelistedChannelsLower != null && + whitelistedChannelsLower.includes(channelName.toLowerCase()); + + if (options.state?.anonymousMode === true && !isWhitelisted) { + console.log("[TTV LOL PRO] 🕵️ Anonymous mode is enabled."); setHeaderToMap(headersMap, "Authorization", "undefined"); removeHeaderFromMap(headersMap, "Client-Session-Id"); removeHeaderFromMap(headersMap, "Client-Version"); setHeaderToMap(headersMap, "Device-ID", generateRandomString(32)); removeHeaderFromMap(headersMap, "Sec-GPC"); removeHeaderFromMap(headersMap, "X-Device-Id"); + } else if (options.state?.anonymousMode === true) { + console.log( + "[TTV LOL PRO] 🕵️ Anonymous mode is enabled but channel is whitelisted." + ); } flagRequest(headersMap); } else if ( From 9bb4f1ecd3a8a788d1be859acbb61c05cbe24026 Mon Sep 17 00:00:00 2001 From: younesaassila <47226184+younesaassila@users.noreply.github.com> Date: Tue, 10 Oct 2023 17:05:33 +0200 Subject: [PATCH 3/4] =?UTF-8?q?=F0=9F=8E=A8=20Improve=20code=20clarity?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/getFetch.ts | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/page/getFetch.ts b/src/page/getFetch.ts index 31d384c..e41814d 100644 --- a/src/page/getFetch.ts +++ b/src/page/getFetch.ts @@ -102,18 +102,20 @@ export function getFetch(options: FetchOptions): typeof fetch { whitelistedChannelsLower != null && whitelistedChannelsLower.includes(channelName.toLowerCase()); - if (options.state?.anonymousMode === true && !isWhitelisted) { - console.log("[TTV LOL PRO] 🕵️ Anonymous mode is enabled."); - setHeaderToMap(headersMap, "Authorization", "undefined"); - removeHeaderFromMap(headersMap, "Client-Session-Id"); - removeHeaderFromMap(headersMap, "Client-Version"); - setHeaderToMap(headersMap, "Device-ID", generateRandomString(32)); - removeHeaderFromMap(headersMap, "Sec-GPC"); - removeHeaderFromMap(headersMap, "X-Device-Id"); - } else if (options.state?.anonymousMode === true) { - console.log( - "[TTV LOL PRO] 🕵️ Anonymous mode is enabled but channel is whitelisted." - ); + if (options.state?.anonymousMode === true) { + if (!isWhitelisted) { + console.log("[TTV LOL PRO] 🕵️ Anonymous mode is enabled."); + setHeaderToMap(headersMap, "Authorization", "undefined"); + removeHeaderFromMap(headersMap, "Client-Session-Id"); + removeHeaderFromMap(headersMap, "Client-Version"); + setHeaderToMap(headersMap, "Device-ID", generateRandomString(32)); + removeHeaderFromMap(headersMap, "Sec-GPC"); + removeHeaderFromMap(headersMap, "X-Device-Id"); + } else { + console.log( + "[TTV LOL PRO] 🕵️✋ Anonymous mode is enabled but channel is whitelisted." + ); + } } flagRequest(headersMap); } else if ( From 46a3d47cc99de6035d8a1ac3c5f93f33bbbb5e5d Mon Sep 17 00:00:00 2001 From: younesaassila <47226184+younesaassila@users.noreply.github.com> Date: Tue, 10 Oct 2023 17:12:20 +0200 Subject: [PATCH 4/4] =?UTF-8?q?=F0=9F=8F=B7=EF=B8=8F=20Add=20"Recommended"?= =?UTF-8?q?=20tag=20to=20anonymous=20mode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/options/page.html | 1 + 1 file changed, 1 insertion(+) diff --git a/src/options/page.html b/src/options/page.html index 02e6183..a435ed4 100644 --- a/src/options/page.html +++ b/src/options/page.html @@ -92,6 +92,7 @@ + Recommended
Watch streams as if you were logged out. This option removes