Make skip notice work on channel trailer

This commit is contained in:
Ajay 2021-12-28 11:58:05 -05:00 committed by Michael C
parent 6930980a4d
commit aca52abefc
No known key found for this signature in database
GPG key ID: FFB04FB3B878B7B4
2 changed files with 25 additions and 5 deletions

View file

@ -2,6 +2,7 @@ import Config from "./config";
import { CategorySelection, SponsorTime, FetchResponse, BackgroundScriptContainer, Registration } from "./types";
import * as CompileConfig from "../config.json";
import { findValidElement } from "./utils/pageUtils";
export default class Utils {
@ -436,11 +437,15 @@ export default class Utils {
}
findReferenceNode(): HTMLElement {
let referenceNode = document.getElementById("player-container-id")
?? document.getElementById("movie_player")
?? document.querySelector("#main-panel.ytmusic-player-page") // YouTube music
?? document.querySelector("#player-container .video-js") // Invidious
?? document.querySelector(".main-video-section > .video-container"); // Cloudtube
const selectors = [
"#player-container-id",
"#movie_player",
"#c4-player", // Channel Trailer
"#main-panel.ytmusic-player-page", // YouTube music
"#player-container .video-js", // Invidious
".main-video-section > .video-container" // Cloudtube
]
let referenceNode = findValidElement(selectors)
if (referenceNode == null) {
//for embeds
const player = document.getElementById("player");

View file

@ -17,4 +17,19 @@ export function getControls(): HTMLElement | false {
}
return false;
}
export function isVisible(element: HTMLElement): boolean {
return element.offsetWidth > 0 && element.offsetHeight > 0;
}
export function findValidElement(selectors: string[]): HTMLElement {
for (const selector of selectors) {
const element = document.querySelector(selector) as HTMLElement;
if (element && isVisible(element)) {
return element;
}
}
return null;
}