From b92132bf4711afad64345ca3cce84548e97e20eb Mon Sep 17 00:00:00 2001 From: Michael C Date: Fri, 24 Jun 2022 01:21:19 -0400 Subject: [PATCH] implement #1364 show connectionError string if status is not 404 --- src/content.ts | 16 ++++++++++++---- src/messageTypes.ts | 3 ++- src/popup.ts | 4 +++- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/content.ts b/src/content.ts index bb4bdf9a..9a11dc3b 100644 --- a/src/content.ts +++ b/src/content.ts @@ -65,8 +65,8 @@ const videosWithEventListeners: HTMLVideoElement[] = []; const controlsWithEventListeners: HTMLElement[] = [] // This misleading variable name will be fixed soon -let onInvidious; -let onMobileYouTube; +let onInvidious: boolean; +let onMobileYouTube: boolean; //the video id of the last preview bar update let lastPreviewBarUpdate; @@ -117,6 +117,9 @@ let submissionNotice: SubmissionNotice = null; // If there is an advert playing (or about to be played), this is true let isAdPlaying = false; +// last response status +let lastResponseStatus: number; + // Contains all of the functions and variables needed by the skip notice const skipNoticeContentContainer: ContentContainer = () => ({ vote, @@ -163,6 +166,7 @@ function messageListener(request: Message, sender: unknown, sendResponse: (respo //send the sponsor times along with if it's found sendResponse({ found: sponsorDataFound, + status: lastResponseStatus, sponsorTimes: sponsorTimes, onMobileYouTube }); @@ -204,6 +208,7 @@ function messageListener(request: Message, sender: unknown, sendResponse: (respo case "refreshSegments": sponsorsLookup(false).then(() => sendResponse({ found: sponsorDataFound, + status: lastResponseStatus, sponsorTimes: sponsorTimes, onMobileYouTube })); @@ -904,8 +909,11 @@ async function sponsorsLookup(keepOldSubmissions = true) { //otherwise the listener can handle it updatePreviewBar(); } - } else if (response?.status === 404) { - retryFetch(); + } else { + lastResponseStatus = response?.status; + if (lastResponseStatus === 404) { + retryFetch(); + } } if (Config.config.isVip) { diff --git a/src/messageTypes.ts b/src/messageTypes.ts index 65e5c612..764d2dc4 100644 --- a/src/messageTypes.ts +++ b/src/messageTypes.ts @@ -63,6 +63,7 @@ export type Message = BaseMessage & (DefaultMessage | BoolValueMessage | IsInfoF export interface IsInfoFoundMessageResponse { found: boolean; + status: number; sponsorTimes: SponsorTime[]; onMobileYouTube: boolean; } @@ -89,7 +90,7 @@ export type MessageResponse = | GetChannelIDResponse | SponsorStartResponse | IsChannelWhitelistedResponse - | Record + | Record // empty object response {} | VoteResponse; export interface VoteResponse { diff --git a/src/popup.ts b/src/popup.ts index 0a5d7c16..f91efede 100644 --- a/src/popup.ts +++ b/src/popup.ts @@ -367,8 +367,10 @@ async function runThePopup(messageListener?: MessageListener): Promise { PageElements.videoFound.innerHTML = chrome.i18n.getMessage("sponsorFound"); displayDownloadedSponsorTimes(request); - } else { + } else if (request.status == 404) { PageElements.videoFound.innerHTML = chrome.i18n.getMessage("sponsor404"); + } else { + PageElements.videoFound.innerHTML = chrome.i18n.getMessage("connectionError") + request.status; } }