// ==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); })();