Button on Kinopoisk AutoRedirection to Flicksbar

Дает возможность быстро перейти на зеркало Flicksbar, появляется слева сверху кнопка перехода на сайт Flicksbar, работает только на www.kinopoisk.ru

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         Button on Kinopoisk AutoRedirection to Flicksbar
// @namespace    https://t.me/flicksbar
// @version      1.6.30
// @description  Дает возможность быстро перейти на зеркало Flicksbar, появляется слева сверху кнопка перехода на сайт Flicksbar, работает только на www.kinopoisk.ru
// @author       Vladimir0202, Devitp001
// @match        https://www.kinopoisk.ru/series/*
// @match        https://www.kinopoisk.ru/film/*
// @icon         https://www.kinopoisk.ru/favicon.ico
// @icon64       https://www.kinopoisk.ru/favicon.ico
// @grant        GM_addStyle
// @license MIT
// ==/UserScript==


// Функция для проверки URL и скрытия кнопки при несоответствии условиям
function checkUrlAndToggleButton() {
    const currentUrl = window.location.href;

    // Проверяем, содержится ли в текущем URL подстрока '/name/'
    if (currentUrl.includes('/name/') || currentUrl.includes('/cast/')) {
        console.log('Скрипт не выполняется на этой странице:', currentUrl);
        // Если на странице /name/ или /cast/, то скрываем кнопку
        document.getElementById('myContainer').style.display = 'none';
    } else {
        // Если условия выполняются (страница film или series), показываем кнопку
        document.getElementById('myContainer').style.display = 'block';
    }
}

// Дожидаемся полной загрузки страницы
window.addEventListener('load', function() {
    //const redirectURLaddress = 'https://flicksbar.mom';
    const redirectURLaddress = 'https://flcksbr.top';

    function CreateButtonFlicksBar() {
        const container = document.createElement('div');
        container.id = 'myContainer';

        const button = document.createElement('button');
        button.id = 'myButton';
        button.type = 'button';
        button.textContent = 'Смотреть онлайн на Flicksbar!';

        container.appendChild(button);
        document.body.appendChild(container);

        GM_addStyle(`
        #myContainer {
            position: fixed;
            top: 10px;
            left: 0;
            z-index: 222;
            margin: 5px;
            padding: 7px 22px;
            border-radius: 50px;
            font-size: 20px;
            background: linear-gradient(to right, #4E5FF6, #FC5956);
            cursor: pointer;
            transition: transform 0.2s ease;
            overflow: hidden;
        }
        #myButton {
            border: none;
            background: transparent;
            color: white;
            font-weight: bold;
            text-shadow: 0 0 0 black, 0 0 0 red;
            cursor: pointer;
            position: relative;
            z-index: 1;
            outline: none;
            transition: box-shadow 0.2s ease;
        }
        #myButton::after {
            content: '';
            position: absolute;
            top: 50%;
            left: -10px;
            transform: translateY(-50%);
            width: 0;
            height: 0;
            border-top: 7px solid transparent;
            border-bottom: 7px solid transparent;
            border-left: 12px solid white;
            z-index: 0;
        }
        #myContainer:hover {
            transform: scale(1.02);
        }
    `);

        button.addEventListener("click", ButtonClickAction, false);
    }


    function ButtonClickAction(zEvent) {
        const title = document.title.replace(/ — Кинопоиск/g, '').replace(/ — смотреть онлайн/g, '');
        const flicksbarParseURL = `${redirectURLaddress}${document.location.pathname}?t=${title}`;
        window.open(flicksbarParseURL, '_blank');
    }

    // Проверяем URL и создаём кнопку
    if (window.location.href.includes('https://www.kinopoisk.ru/series/') || window.location.href.includes('https://www.kinopoisk.ru/film/')) {
        console.log('Текущий URL соответствует film или series:', window.location.href);
        CreateButtonFlicksBar();
    } else {
        console.log('Неверный формат ссылки или URL:', window.location.href);
    }

    // Создаём MutationObserver для отслеживания изменений в DOM
    const observer = new MutationObserver(function(mutationsList, observer) {
        for(let mutation of mutationsList) {
            if (mutation.type === 'childList' || mutation.type === 'subtree') {
                console.log('Произошло изменение в DOM:', mutation);
                // Проверяем URL после каждого изменения в DOM
                checkUrlAndToggleButton();
            }
        }
    });

    // Настраиваем MutationObserver на отслеживание изменений в основном контейнере страницы (body)
    observer.observe(document.body, { childList: true, subtree: true });

    // Вызываем проверку URL сразу после загрузки страницы
    checkUrlAndToggleButton();
});