-
Notifications
You must be signed in to change notification settings - Fork 0
/
interactive.js
42 lines (33 loc) · 1.39 KB
/
interactive.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
const {titleHTMLElement, title, animeId} = getAnimeInfo()
// Hama scanner for Plex searches titles in this format
const clipboardText = title + " [anidb-" + animeId + "]";
setupTooltipElements(titleHTMLElement, clipboardText);
function getAnimeInfo() {
// Main title currently located as a child to a 'romaji' class. Might change in the future
const titleHTMLElement = document.querySelector('.romaji [itemprop="name"]');
const title = titleHTMLElement.textContent
const url = window.location.pathname;
const animeId = url.substring(url.lastIndexOf('/') + 1);
return {
titleHTMLElement,
title,
animeId,
}
}
function setupTooltipElements(parentElement, copiedText) {
// Create tooltip text element to add to existing title element
const tooltipTextSpan = document.createElement("span");
tooltipTextSpan.textContent = "Copy to Clipboard";
tooltipTextSpan.setAttribute('id', 'title-tooltip__text')
tooltipTextSpan.classList.add("tooltip__text")
parentElement.appendChild(tooltipTextSpan);
parentElement.classList.add("main-title", "tooltip")
// Setup tooltip events
parentElement.onclick = function () {
navigator.clipboard.writeText(copiedText);
tooltipTextSpan.innerHTML = "Copied:\n" + copiedText;
};
parentElement.onmouseout = function () {
tooltipTextSpan.innerHTML = "Copy to clipboard";
}
}