diff options
m--------- | maze-utils | 0 | ||||
-rw-r--r-- | src/utils/thumbnails.ts | 12 |
2 files changed, 11 insertions, 1 deletions
diff --git a/maze-utils b/maze-utils -Subproject f12ac4f5f8c0dd073426a413568bcdd58ccbf8e +Subproject b7cc06c9d5f95db346984c38c346eba7e83e5d5 diff --git a/src/utils/thumbnails.ts b/src/utils/thumbnails.ts index 0fb2579e..68ad8169 100644 --- a/src/utils/thumbnails.ts +++ b/src/utils/thumbnails.ts @@ -64,8 +64,18 @@ function thumbnailHoverListener(e: MouseEvent) { } } +function getLink(thumbnail: HTMLImageElement): HTMLAnchorElement | null { + if (isOnInvidious()) { + return thumbnail.parentElement as HTMLAnchorElement | null; + } else if (thumbnail.nodeName.toLowerCase() === "yt-thumbnail-view-model") { + return thumbnail.closest("yt-lockup-view-model")?.querySelector("a.yt-lockup-metadata-view-model-wiz__title"); + } else { + return thumbnail.querySelector("#thumbnail"); + } +} + function extractVideoID(thumbnail: HTMLImageElement): VideoID | null { - const link = (isOnInvidious() ? thumbnail.parentElement : thumbnail.querySelector("#thumbnail")) as HTMLAnchorElement + const link = getLink(thumbnail); if (!link || link.nodeName !== "A" || !link.href) return null; // no link found return parseYouTubeVideoIDFromURL(link.href)?.videoID; |