Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Антидедовский скрипт.
- // Его можно добавить в браузер с помощью любого расширения, которое умеет инъектить код в открытые странички.
- // Пример такого расширения для хрома: https://chrome.google.com/webstore/detail/custom-javascript-for-web/ddbjnfjiigjmcpcpkmhogomapikjbjdk
- // Что делает скрипт: заменяет картинки от "новых юзеров" на картинку http://2fan.ru/ch/img/2018/07/1531092365830_big.jpg.
- // Новые юзеры на текущий момент — это люди с ID > 1317324 или около того.
- // По крайней мере, на сегодняшний день этот ID работает.
- const settings = {
- enabled: true,
- messageCheckingInterval: 300, // ms
- maxImagesPerMessage: 2,
- maxTrustedUserId: 1317324,
- placeholderUrl: "http://2fan.ru/ch/img/2018/07/1531092365830_big.jpg",
- };
- const data = {
- messages: [],
- maxDetectedUserId: null
- };
- const consts = {
- messageBlockClass: "message-block",
- messageIdAttribute: "tooltip",
- messageChatUserTag: "chat-user",
- regexUserIdPattern: /\d+/g,
- imageSmileClass: "smile"
- }
- function checkMessages() {
- const messagesAll = document.getElementsByClassName(consts.messageBlockClass);
- for (let messageKey in messagesAll) {
- const msg = messagesAll[messageKey];
- const userId = parseInt(getMessageUserId(msg));
- if (!userId) continue;
- if (!data.maxDetectedUserId || userId > data.maxDetectedUserId) data.maxDetectedUserId = userId;
- if (userId <= settings.maxTrustedUserId) continue;
- let imgCounter = 0;
- const images = msg.getElementsByTagName("img");
- const messagesScope = [];
- for (let imageKey in images) {
- const img = images[imageKey];
- if (!(img && img.tagName)) continue;
- else if (img.classList && img.classList.contains(consts.imageSmileClass)) continue;
- const msgId = userId + "_" + msg.getAttribute(consts.messageIdAttribute) + "_" + (imgCounter++);
- if (data.messages[msgId]) continue;
- data.messages[msgId] = { userId: userId, imgElement: img };
- img.setAttribute("src", settings.placeholderUrl);
- messagesScope.push(data.messages[msgId]);
- }
- if (messagesScope.length <= settings.maxImagesPerMessage) continue;
- for (let messageScopeKey in messagesScope) {
- const ms = messagesScope[messageScopeKey];
- ms.imgElement.setAttribute("src", settings.placeholderUrl);
- }
- }
- }
- function getMessageUserId(msg) {
- if (!(msg && msg.getElementsByTagName)) return null;
- const chatUserElement = msg.getElementsByTagName(consts.messageChatUserTag)[0];
- if (!chatUserElement) return null;
- const userLinkAttribute = chatUserElement.getElementsByTagName("a")[0].getAttribute("href");
- return userLinkAttribute.match(consts.regexUserIdPattern)[0];
- }
- window.getMaxUserId = function() { return data.maxDetectedUserId; };
- if (settings.enabled) {
- setInterval(checkMessages, settings.messageCheckingInterval);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement