Дает возможность быстро перейти на зеркало Flicksbar, появляется слева сверху кнопка перехода на сайт Flicksbar, работает только на www.kinopoisk.ru
当前为
// ==UserScript==
// @name Button on Kinopoisk AutoRedirection to Flicksbar
// @namespace https://t.me/flicksbar
// @version 1.6.28
// @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';
function CreateButtonFlicksBar() {
var zNode = document.createElement('div');
zNode.innerHTML = '<button id="myButton" type="button">'
+ 'Смотреть онлайн на Flicksbar!</button>';
zNode.setAttribute('id', 'myContainer');
document.body.appendChild(zNode);
// Добавляем стили для контейнера и кнопки
GM_addStyle(`
#myContainer {
cursor: pointer;
position: fixed;
top: 10px;
left: 0;
font-size: 20px;
background: linear-gradient(to right, #4E5FF6, #FC5956);
margin: 5px;
z-index: 222;
padding: 7px 22px;
border-radius: 50px;
opacity: 1.1;
transition: 0.2s ease;
overflow: hidden; /* Добавлено для корректного отображения ::after */
}
#myButton {
cursor: pointer;
border: none;
background: transparent;
color: white;
font-weight: bold;
text-shadow: 1px 1px 2px black, 0 0 1em red;
opacity: 1.1;
position: relative;
z-index: 1;
}
#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 {
background: linear-gradient(to right, #4E5FF6, #FC5956);
transform: scale(1.02);
}
`);
document.getElementById("myButton").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();
});