// ==UserScript==
// @name Miped forum spam blocker
// @namespace http://tampermonkey.net/
// @version 0.2
// @description Удаляет плохие сообщения
// @author Andronio
// @match https://mipped.com/f/threads/*
// @grant none
// @run-at document-body
// ==/UserScript==
let maxPics = 2; // Если больше 2 картинок в сообщении, то прятать
let newUserMessages = 15; // Если меньше сообщений, то прятать сообщение
let completeHide = 0; // Прятать новичка всегда - 1 или только если в сообщении есть картинка - 0
let oldUser = 200;
let messagesBuffer = [];
(function repeat() {
'use strict';
if (!document.querySelectorAll(".messageContent").length) return setTimeout(repeat, 100);
let badMessageCounter = 0;
let messages = document.querySelectorAll(".messageContent");
messages.forEach(message => {
let messagesCount = +message.closest(".uix_message").querySelector(".concealed").innerText.replace(/[^\d]+/, ''); // Количество сообщений у пользователя
if (completeHide && messagesCount < newUserMessages)
message.closest(".sectionMain.message").style.display = "none";
else {
let messagesPics = message.querySelectorAll("img");
let imgCount = 0;
messagesPics.forEach(img => {
if (!img.src.startsWith("https://mipped.com/f/styles/"))
imgCount++;
});
if (imgCount > maxPics && messagesCount < oldUser || imgCount && messagesCount < newUserMessages) {
let picsBuffer = [];
messagesPics.forEach(img => {
picsBuffer.push(img.outerHTML);
img.outerHTML = `<span name="old-pic">Здесь была картинка</span>`;
});
messagesBuffer.push(picsBuffer);
message.style.display = "none";
let messageNew = document.createElement("div");
messageNew.className = "messageContent";
messageNew.innerHTML = `<button name="show-bad-message" data-show="${badMessageCounter}">Показать</button><br>Обнаружено ${imgCount} картинок<br>${message.innerText.slice(0,80)}`;
message.after(messageNew);
badMessageCounter++;
}
}
});
let buttonShow = document.querySelectorAll('[name="show-bad-message"]');
buttonShow.forEach(btn => btn.addEventListener("click", btnClickHandler));
})();
function btnClickHandler(event) {
elem = event.target;
let messageContents = elem.closest(".messageInfo.primaryContent").querySelectorAll(".messageContent");
messageContents[0].style.display = "block";
elem.removeEventListener("click", btnClickHandler);
messageContents[1].remove();
let pics = messageContents[0].querySelectorAll('[name="old-pic"]');
for (let i = 0; i < pics.length; i++) {
pics[i].outerHTML = messagesBuffer[elem.dataset.show][i];
}
}