Improve error messages

This commit is contained in:
younesaassila 2024-08-21 18:17:10 +02:00
parent 1bfed7cd62
commit bb8078d12f
5 changed files with 28 additions and 19 deletions

View File

@ -87,21 +87,19 @@ export default async function onResponseStarted(
const stats = streamStatus?.stats ?? { proxied: 0, notProxied: 0 }; const stats = streamStatus?.stats ?? { proxied: 0, notProxied: 0 };
if (!proxy) { if (!proxy) {
let reason = errorMessage ?? streamStatus?.reason ?? "";
if (isChromium) {
try {
const proxySettings = await browser.proxy.settings.get({});
switch (proxySettings.levelOfControl) {
case "controlled_by_other_extensions":
reason = "Proxy settings controlled by other extension";
break;
case "not_controllable":
reason = "Proxy settings not controllable";
break;
}
} catch {}
}
stats.notProxied++; stats.notProxied++;
let reason = errorMessage ?? streamStatus?.reason ?? "";
try {
const proxySettings = await browser.proxy.settings.get({});
switch (proxySettings.levelOfControl) {
case "controlled_by_other_extensions":
reason = "Proxy settings controlled by other extension";
break;
case "not_controllable":
reason = "Proxy settings not controllable";
break;
}
} catch {}
setStreamStatus(channelName, { setStreamStatus(channelName, {
proxied: false, proxied: false,
proxyHost: streamStatus?.proxyHost ? streamStatus.proxyHost : undefined, proxyHost: streamStatus?.proxyHost ? streamStatus.proxyHost : undefined,

View File

@ -3,6 +3,7 @@ import workerScriptURL from "url:../page/worker.ts";
import browser, { Storage } from "webextension-polyfill"; import browser, { Storage } from "webextension-polyfill";
import findChannelFromTwitchTvUrl from "../common/ts/findChannelFromTwitchTvUrl"; import findChannelFromTwitchTvUrl from "../common/ts/findChannelFromTwitchTvUrl";
import isChromium from "../common/ts/isChromium"; import isChromium from "../common/ts/isChromium";
import { getStreamStatus, setStreamStatus } from "../common/ts/streamStatus";
import store from "../store"; import store from "../store";
import type { State } from "../store/types"; import type { State } from "../store/types";
import { MessageType } from "../types"; import { MessageType } from "../types";
@ -145,6 +146,15 @@ function onPageMessage(event: MessageEvent) {
); );
} }
break; break;
case MessageType.MultipleAdBlockersInUse:
const channelName = findChannelFromTwitchTvUrl(location.href);
if (!channelName) break;
const streamStatus = getStreamStatus(channelName);
setStreamStatus(channelName, {
...(streamStatus ?? { proxied: false }),
reason: "Another Twitch ad blocker is in use",
});
break;
case MessageType.ClearStats: case MessageType.ClearStats:
clearStats(message.channelName); clearStats(message.channelName);
break; break;

View File

@ -53,7 +53,10 @@ window.Worker = class Worker extends NATIVE_WORKER {
// Required for VAFT (>=12.0.0) compatibility. // Required for VAFT (>=12.0.0) compatibility.
const isAlreadyHooked = NATIVE_WORKER.toString().includes("twitch"); const isAlreadyHooked = NATIVE_WORKER.toString().includes("twitch");
if (isAlreadyHooked) { if (isAlreadyHooked) {
console.error("[TTV LOL PRO] Twitch worker is already hooked."); console.info("[TTV LOL PRO] Another Twitch ad blocker is in use.");
sendMessageToContentScript({
type: MessageType.MultipleAdBlockersInUse,
});
super(scriptURL, options); super(scriptURL, options);
return; return;
} }

View File

@ -8,7 +8,6 @@ import {
import { alpha2 } from "../common/ts/countryCodes"; import { alpha2 } from "../common/ts/countryCodes";
import findChannelFromTwitchTvUrl from "../common/ts/findChannelFromTwitchTvUrl"; import findChannelFromTwitchTvUrl from "../common/ts/findChannelFromTwitchTvUrl";
import isChannelWhitelisted from "../common/ts/isChannelWhitelisted"; import isChannelWhitelisted from "../common/ts/isChannelWhitelisted";
import isChromium from "../common/ts/isChromium";
import store from "../store"; import store from "../store";
import type { StreamStatus } from "../types"; import type { StreamStatus } from "../types";
@ -243,9 +242,7 @@ copyDebugInfoButtonElement.addEventListener("click", async e => {
`- Country: ${status.proxyCountry ?? "N/A"}\n`, `- Country: ${status.proxyCountry ?? "N/A"}\n`,
].join("") ].join("")
: "", : "",
isChromium `Proxy level of control: ${proxySettings.levelOfControl}\n`,
? `Proxy level of control: ${proxySettings.levelOfControl}\n`
: "",
].join("") ].join("")
: "", : "",
store.state.adLog.length > 0 store.state.adLog.length > 0

View File

@ -82,6 +82,7 @@ export const enum MessageType {
UsherResponse = "TLP_UsherResponse", UsherResponse = "TLP_UsherResponse",
NewPlaybackAccessToken = "TLP_NewPlaybackAccessToken", NewPlaybackAccessToken = "TLP_NewPlaybackAccessToken",
NewPlaybackAccessTokenResponse = "TLP_NewPlaybackAccessTokenResponse", NewPlaybackAccessTokenResponse = "TLP_NewPlaybackAccessTokenResponse",
MultipleAdBlockersInUse = "TLP_MultipleAdBlockersInUse",
ClearStats = "TLP_ClearStats", ClearStats = "TLP_ClearStats",
} }