271 lines
7.8 KiB
JavaScript
271 lines
7.8 KiB
JavaScript
// ==UserScript==
|
||
// @name AnimeJoy.ru скрипт
|
||
// @name:en AnimeJoy.ru script
|
||
// @namespace nyakonya_ajrup
|
||
// @match https://animejoy.ru/*
|
||
// @match https://animejoy.su/*
|
||
// @match https://animejoy.site/*
|
||
// @match https://anime-joy.ru/*
|
||
// @match https://anime-joy.online/*
|
||
// @match https://animejoy-2.ru/*
|
||
// @match https://animejoya.ru/*
|
||
// @match https://joyanime.ru/*
|
||
// @match https://ajsubs.ru/*
|
||
// @match https://jsub.online/*
|
||
// @match https://ajsub.ru/*
|
||
// @match https://ajsub.online/*
|
||
// @match https://animejoy.su/*
|
||
// @match https://animejoy.xyz/*
|
||
// @version 0.5.1b
|
||
// @author https://t.me/Nyako_TW
|
||
// @description 15.07.2023, 19:46:44
|
||
// @license Apache License 2.0
|
||
// @downloadURL https://git.nekono.su/Nyako/script-dev-ru/raw/branch/main/nyakonya_ajrup/script.user.js
|
||
// @updateURL https://git.nekono.su/Nyako/script-dev-ru/raw/branch/main/nyakonya_ajrup/script.user.js
|
||
// @grant GM_registerMenuCommand
|
||
// @grant GM_getValue
|
||
// @grant GM_setValue
|
||
// @compatible tampermonkey
|
||
// @compatible violentmonkey
|
||
// @incompatible greasemonkey
|
||
// ==/UserScript==
|
||
|
||
|
||
// Фунция безопасного запуска функций
|
||
function safeRun(fn, name) {
|
||
try {
|
||
fn();
|
||
} catch (e) {
|
||
console.error(`Ошибка в ${name}:`, e);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
// Фунции генерации конфигураций
|
||
function registerToggle(key, defaultValue, title, enabledText, disabledText) {
|
||
const isEnabled = GM_getValue(key, defaultValue);
|
||
|
||
const menuText = `${isEnabled ? '✅' : '🔲'} ${title}`;
|
||
|
||
GM_registerMenuCommand(menuText, () => {
|
||
const newState = !isEnabled;
|
||
|
||
GM_setValue(key, newState);
|
||
|
||
alert(
|
||
`Настройка изменена! ${title} ${
|
||
newState ? enabledText : disabledText
|
||
}. Обновите страницу для применения настроек.`
|
||
);
|
||
|
||
location.reload();
|
||
});
|
||
}
|
||
|
||
// Генерация конфигураций
|
||
function config_runner() {
|
||
registerToggle(
|
||
'nyakonya_ajrup_comments',
|
||
false,
|
||
'Комментарии',
|
||
'включены',
|
||
'выключены'
|
||
);
|
||
|
||
registerToggle(
|
||
'nyakonya_ajrup_footer',
|
||
true,
|
||
'Подвал сайта',
|
||
'включен',
|
||
'выключен'
|
||
);
|
||
|
||
registerToggle(
|
||
'nyakonya_ajrup_screenshoot',
|
||
true,
|
||
'Скриншоты',
|
||
'включен',
|
||
'выключен'
|
||
);
|
||
|
||
registerToggle(
|
||
'nyakonya_ajrup_socnews',
|
||
true,
|
||
'Соц. сети в новостях',
|
||
'включен',
|
||
'выключен'
|
||
);
|
||
}
|
||
|
||
|
||
|
||
// Переменные, параметры и пр.
|
||
pathname = window.location.pathname;
|
||
pathnamefirst = pathname.split('/')[1];
|
||
var info_anime_raw;
|
||
paths_lists = [
|
||
"tv-serialy",
|
||
"ongoing",
|
||
"ova",
|
||
"anime-films",
|
||
"full_tv",
|
||
"anons",
|
||
"dorams",
|
||
"news",
|
||
"zhanry-anime.html",
|
||
"favorites",
|
||
"tags"
|
||
];
|
||
|
||
|
||
|
||
// Вспомогательные функции
|
||
function num_include_test(text_input) {
|
||
if (/[0-9]/.test(text_input)) {return true;} else {return false;}
|
||
}
|
||
|
||
|
||
|
||
// Фунции обработки страниц
|
||
function remove_socnews() {
|
||
SocnewsisEnabled = GM_getValue('nyakonya_ajrup_socnews', false);
|
||
if (!SocnewsisEnabled){
|
||
news_list = document.getElementsByTagName("article");
|
||
for (let one_new of news_list) {
|
||
if (one_new.innerText.includes("Телеграмм") || one_new.innerText.includes("Группа VK")) {
|
||
one_new.remove();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
function remove_screenshoot() {
|
||
ScreenshootisEnabled = GM_getValue('nyakonya_ajrup_screenshoot', false);
|
||
if (!ScreenshootisEnabled){
|
||
document.getElementsByClassName("mobfields")[0].remove();
|
||
}
|
||
}
|
||
|
||
function remove_comments() {
|
||
СommentsisEnabled = GM_getValue('nyakonya_ajrup_comments', false);
|
||
if (!СommentsisEnabled){
|
||
document.getElementById("dle-comments-form").remove();
|
||
document.getElementsByClassName("comments ignore-select")[0].remove();
|
||
}
|
||
}
|
||
|
||
function remove_footer() {
|
||
footersisEnabled = GM_getValue('nyakonya_ajrup_footer', false);
|
||
if (!footersisEnabled){
|
||
document.getElementById("footer").remove();
|
||
}
|
||
}
|
||
|
||
function color_sets() {
|
||
const element = document.body;
|
||
const bgColor = getComputedStyle(element).backgroundColor;
|
||
if (bgColor === "rgb(255, 255, 255)") {
|
||
bg_page_set = "background: #f5f5f5;";
|
||
} else if (bgColor === "rgb(0, 0, 0)") {
|
||
bg_page_set = "background: #121212;";
|
||
} else {
|
||
bg_page_set = "background: #f5f5f5;";
|
||
}
|
||
document.body.setAttribute("style", bg_page_set);
|
||
tmp_data_01 = document.getElementsByClassName("body");
|
||
tmp_data_01[0].setAttribute("style", bg_page_set);
|
||
}
|
||
|
||
function right_side_remove() {
|
||
if (num_include_test(window.location.pathname)) {
|
||
info_anime_raw = document.getElementsByClassName("abasel")[0];
|
||
}
|
||
tmp_data_02 = document.getElementsByClassName("str_left")[0];
|
||
tmp_data_02.setAttribute("style", "float: left; width: 100%;");
|
||
document.getElementsByClassName("rightside_bg")[0].remove();
|
||
document.getElementById("rightside").remove();
|
||
}
|
||
|
||
function move_search(move_to) {
|
||
clonedNode = document.getElementById("rightside").getElementsByTagName("form")[0].cloneNode(true);
|
||
clonedNode.setAttribute("action", "https://"+window.location.hostname+"/index.php?do=search");
|
||
move_to.appendChild(clonedNode);
|
||
}
|
||
|
||
function story_tools_remove() {
|
||
let tmp_data_04 = document.querySelectorAll('.story_tools');
|
||
for( let i = 0; i < tmp_data_04.length; i++ ){
|
||
tmp_data_04[i].outerHTML = "";
|
||
}
|
||
}
|
||
|
||
function replace_data() {
|
||
info_anime = document.getElementsByClassName("blkdesc")[0];
|
||
info_data = document.createElement("p");
|
||
info_data.setAttribute("class", "zerop");
|
||
info_set = "<span class=\"timpact\">Друг. сайты:</span>";
|
||
info_list = info_anime_raw.getElementsByTagName("a");
|
||
all_data = "";
|
||
for (let one_data of info_list) {
|
||
all_data = all_data + " <a href=\""+one_data.href+"\" target=\"_blank\">"+one_data.innerText+"</a>";
|
||
}
|
||
info_set = info_set + all_data;
|
||
info_data.innerHTML = info_set;
|
||
info_anime.appendChild(info_data);
|
||
}
|
||
|
||
|
||
|
||
// Основной код
|
||
if (window.location.search.includes("search")) {
|
||
right_side_remove();
|
||
story_tools_remove();
|
||
}
|
||
|
||
if (paths_lists.some(p => pathnamefirst.includes(p))) {
|
||
move_search(document.getElementById("breadcrumbs"));
|
||
right_side_remove();
|
||
story_tools_remove();
|
||
document.getElementById("dle-speedbar").remove();
|
||
if (pathnamefirst == "tv-serialy") {
|
||
safeRun(remove_screenshoot, "remove_screenshoot");
|
||
remove_comments();
|
||
replace_data();
|
||
}
|
||
if (pathnamefirst == "zhanry-anime.html") {
|
||
container = document.getElementById("dle-content");
|
||
links = container.querySelectorAll("a[href]");
|
||
links.forEach(link => {
|
||
const url = new URL(link.getAttribute("href"), window.location.href);
|
||
url.hostname = window.location.hostname;
|
||
url.protocol = window.location.protocol;
|
||
link.href = url.toString();
|
||
});
|
||
}
|
||
if (pathnamefirst == "user") {
|
||
move_search(document.getElementById("breadcrumbs"));
|
||
right_side_remove();
|
||
}
|
||
}
|
||
|
||
if (window.location.pathname.includes("/user/")) {
|
||
move_search(document.getElementById("breadcrumbs"));
|
||
right_side_remove();
|
||
}
|
||
|
||
if (window.location.pathname == "/" || window.location.pathname.includes("/page/")) {
|
||
tmp_data_01 = document.getElementsByClassName("shapka");
|
||
tmp_data_01[0].innerHTML = '';
|
||
move_search(document.getElementsByClassName("shapka")[0]);
|
||
right_side_remove();
|
||
story_tools_remove();
|
||
}
|
||
|
||
|
||
|
||
// Запуск основных функций
|
||
safeRun(config_runner, "config_runner");
|
||
safeRun(color_sets, "color_sets");
|
||
safeRun(remove_footer, "remove_footer");
|
||
safeRun(remove_socnews, "remove_socnews"); |