HDRezcord/content.js
2025-03-21 08:24:02 +03:00

95 lines
2.8 KiB
JavaScript

function get_episode() {
const active = document.querySelector('li.b-simple_episode__item.active');
if (active) {
const textContent = active.textContent.trim();
const episodeNumberString = textContent.replace("Серия ", "");
const episodeNumber = parseInt(episodeNumberString, 10);
if (!isNaN(episodeNumber)) {
return episodeNumber;
} else {
return 0;
}
} else {
return 0;
}
}
function get_season() {
const active = document.querySelector('li.b-simple_season__item.active');
if (active) {
const textContent = active.textContent.trim();
const episodeNumberString = textContent.replace("Сезон ", "");
const episodeNumber = parseInt(episodeNumberString, 10);
if (!isNaN(episodeNumber)) {
return episodeNumber;
} else {
return 0;
}
} else {
return 0;
}
}
function timeToMilliseconds(timeString) {
const [hours, minutes, seconds] = timeString.split(':').map(Number);
return (hours * 3600 + minutes * 60 + seconds) * 1000;
}
function get_timestamps() {
const timeElements = document.querySelectorAll('pjsdiv[style*="pointer-events: none;"] noindex');
const times = [];
timeElements.forEach(element => {
times.push(element.textContent);
});
const currentTime = times[0];
const totalTime = times[1].replace("/ ", "");
if (currentTime == NaN || totalTime == NaN) {
console.warn("timestamps not found");
return [0, 0];
}
return [timeToMilliseconds(currentTime), timeToMilliseconds(totalTime)];
}
function get_name() {
let element = document.querySelector('.b-post__title h1[itemprop="name"]');
return element.textContent;
}
function get_image_url() {
const element = document.querySelector('.b-post__infotable_left .b-sidecover a img');
return element.src;
}
if (window.location.href.includes("flymaterez.net")) {
setInterval(async () => {
try {
chrome.storage.local.get(['pluginEnabled'], function(result) {
if (result.pluginEnabled === true) {
chrome.runtime.sendMessage({
type: "send_rpc_request",
title: document.title,
url: window.location.href,
episode: get_episode(),
season: get_season(),
timestamps: get_timestamps(),
name: get_name(),
image_url: get_image_url(),
});
}
console.log(result.pluginEnabled);
});
} catch (error) {
console.warn(error);
}
}, 1000);
}