// ==UserScript==
// @name Useful Links for Kinopoisk
// @namespace http://tampermonkey.net/
// @version 1.27
// @description Кнопка с ссылкой на HDRezka, Shikimori и Tragtorr для фильмов и аниме на Кинопоиске
// @match *://www.kinopoisk.ru/*
// @icon https://www.kinopoisk.ru/favicon.ico
// @license MIT
// @grant none
// @downloadURL none
// ==/UserScript==
(function() {
'use strict';
function addHDRezkaButton() {
const titleElement = document.querySelector('h1');
const genresElement = document.querySelector('[data-test-id="encyclopedic-table"]');
if (titleElement && genresElement && !document.querySelector('.hdrezka-button')) {
const movieTitle = titleElement.innerText.trim();
const genresText = genresElement.innerText.toLowerCase();
const isAnime = genresText.includes('аниме');
if (movieTitle) {
const hdrezkaLink = `https://hdrezka.co/search/?do=search&subaction=search&q=${encodeURIComponent(movieTitle)}`;
// Формируем правильную ссылку для поиска на Tragtorr
const tragtorrLink = `http://tragtorr.in/search/${encodeURIComponent(movieTitle)}`;
const buttonContainer = createButtonContainer();
// Кнопка HDRezka с общей иконкой
const hdrezkaButton = createButton('HDRezka', hdrezkaLink);
buttonContainer.appendChild(hdrezkaButton);
if (isAnime) {
// Удаляем информацию в скобках из названия
const cleanTitle = movieTitle.replace(/\s*\(.*?\)\s*/g, '').trim();
// Формируем правильную ссылку для поиска на Shikimori
const shikimoriLink = `https://shikimori.one/animes?search=${encodeURIComponent(cleanTitle)}`;
const shikimoriButton = createButton('Shikimori', shikimoriLink);
buttonContainer.appendChild(shikimoriButton);
}
// Кнопка Tragtorr
const tragtorrButton = createButton('Tragtorr', tragtorrLink);
buttonContainer.appendChild(tragtorrButton);
titleElement.appendChild(buttonContainer);
}
}
}
function createButtonContainer() {
const container = document.createElement('div');
container.style.display = 'flex';
container.style.marginTop = '10px';
return container;
}
function createButton(text, link) {
const buttonElement = document.createElement('button');
buttonElement.innerHTML = `
${createCommonIcon()}
${text}
`;
buttonElement.className = 'hdrezka-button';
buttonElement.style.cssText = `
height: 50px; color: black; background-color: #f2f2f2; border: none;
border-radius: 25px; font-family: 'Roboto Condensed', sans-serif;
font-size: 16px; font-weight: 600; cursor: pointer;
display: flex; align-items: center; justify-content: center;
padding: 0 25px; margin-right: 10px;
`;
buttonElement.onclick = () => window.open(link, '_blank');
return buttonElement;
}
function createCommonIcon() {
return `
`;
}
const linkRoboto = document.createElement('link');
linkRoboto.href = 'https://fonts.googleapis.com/css2?family=Roboto+Condensed:wght@600&display=swap';
linkRoboto.rel = 'stylesheet';
document.head.appendChild(linkRoboto);
const observer = new MutationObserver(addHDRezkaButton);
observer.observe(document.body, { childList: true, subtree: true });
window.addEventListener('load', addHDRezkaButton);
})();