Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name 2chDoublesScript
- // @description Поиск даблов, триплов, хуиплов и их подсветка
- // @version 1.0.0
- // @match *://2ch.hk/*
- // ==/UserScript==
- "use strict";
- const postBorderColor = "red"; // Цвет обводки поста
- const postBorderWidth = 0.2; // Ширина обводки поста
- const postIdColor = "black"; // Цвет текста номера поста
- const postIdBackgroundColor = "cyan"; // Цвет заднего фона текста номера поста
- function addHighlight(post) {
- try {
- const postId = post.getAttribute("data-num");
- // Поиск количества повторяющихся чисел с конца
- let count = 1;
- for (let i = postId.length - 2; i >= 0; --i) {
- if (postId[postId.length - 1] === postId[i]) {
- ++count;
- } else {
- break;
- }
- }
- // Если номер поста дабл и выше, то выделяем область
- if (count >= 2) {
- post.style = `border: ${postBorderWidth}rem solid ${postBorderColor};`;
- const dom = post.querySelector(".post__details").querySelectorAll(".post__detailpart")[2].querySelectorAll("a")[1];
- dom.innerHTML = postId.slice(0, postId.length - count) + `<span style="color: ${postIdColor}; background-color: ${postIdBackgroundColor};">${postId.slice(postId.length - count, postId.length)}</span>`;
- }
- } catch {}
- }
- // Создаём наблюдателя за новыми постами
- const observer = new MutationObserver((mutations) => {
- for (let i = 0; i < mutations.length; ++i) {
- const addedNodes = mutations[i].addedNodes;
- for (const node of addedNodes) {
- if (node.classList.contains("post")) {
- addHighlight(node);
- } else {
- const posts = node.querySelectorAll(".post");
- for (const post of posts) {
- addHighlight(post);
- }
- }
- }
- }
- });
- // Элемент, за которым наблюдаем
- const target = document.getElementById("js-posts");
- // Запускаем механизм наблюдения
- observer.observe(target, { childList: true });
- // Подсветка существующих постов
- const posts = target.querySelectorAll(".post");
- for (const post of posts) {
- addHighlight(post);
- }
Add Comment
Please, Sign In to add comment