95 lines
2.8 KiB
JavaScript
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);
|
|
}
|