// ==UserScript==
// @name miped hide spam messages + a.aliexpress.ru
// @version 1.4
// @grant none
// @include *mipped.com*
// @grant none
// @run-at document-end
// ==/UserScript==
(function() {
'use strict';
var max_messages_count = 10; // кол-во сообщений пользователя свыше которых сообщения с ссылками не скрываются
var new__a_aliexpress_ru = 'a.aliexpress.com'; // новый адрес вместо a.aliexpress.ru
var new__aliexpress_ru = 'ru.aliexpress.com'; // новый адрес вместо aliexpress.ru
// 1 - включено
// 0 - выключено
var hide_all_newbee_messages = 1; // скрывать все сообщения (не только с ссылками), если у пользователя 0 репы и кол-во сообщений меньше, чем указано в max_messages_count
var short_links = 1; // удаляет все после знака ?
var hide_by_spam_list = 1; // скрывать сообщение, если оно содержит слово из spam_list
// список спам-слов, все слова или предложения должны быть разделены знаком "|". все сообщения которые будут содержать данное слово\предложение будут скрываться
var spam_list = "Создам тему для решения проблемы с говноедом, а то надоели ныть в теме купонов|следующее спам слово или предложение".trim().split("|");
/* все что ниже не менять */
var spam_messages_count = 0; // счетчик кол-ва спам сообщений
addLoadEvent(function() {
var externalLink = qsa('.externalLink');
for (var i = externalLink.length - 1; i >= 0; i--) {
var message = parents(externalLink[i], 'message');
var messages_count = parseInt(message.querySelector('.concealed').innerText.replace(/[^\d]+/, ''));
if (messages_count < max_messages_count) {
message.classList.add('this_is_spam_message');
spam_messages_count++;
} else {
var href = externalLink[i].getAttribute('href');
if (href.indexOf('a.aliexpress.ru') > 0 && new__a_aliexpress_ru != '') {
var new_href = href.replace('a.aliexpress.ru', new__a_aliexpress_ru);
externalLink[i].innerHTML = new_href
externalLink[i].setAttribute('href', new_href);
} else if (href.indexOf('aliexpress.ru') > 0 && new__aliexpress_ru != '') {
var new_href = href.replace('aliexpress.ru', new__aliexpress_ru);
externalLink[i].innerHTML = new_href
externalLink[i].setAttribute('href', new_href);
} else if (short_links && href.indexOf('aliexpress') && href.indexOf('?') > 0) {
var new_href = href.split('?')[0];
if (externalLink[i].innerHTML == href) {
externalLink[i].innerHTML = new_href;
}
externalLink[i].setAttribute('href', new_href);
}
}
}
if (hide_all_newbee_messages && location.href.indexOf('mipped.com/f/threads/obsuzhdenie-kuponov') > -1) {
var messages = qsa('.messageContent');
for (var i = messages.length - 1; i >= 0; i--) {
var message = parents(messages[i], 'message');
var messages_count = parseInt(message.querySelector('.concealed').innerText.replace(/[^\d]+/, ''));
var kolvorep = parseInt(message.querySelector('.kolvorep').innerText.replace(/[^\d]+/, ''));
if (messages_count < max_messages_count && kolvorep == 0) {
message.classList.add('this_is_spam_message');
spam_messages_count++;
}
}
}
if (hide_by_spam_list && location.href.indexOf('mipped.com/f/threads') > -1) {
var messages = qsa('blockquote');
for (var i = messages.length - 1; i >= 0; i--) {
if (isConainSpamWord(messages[i].innerText)) {
var message = parents(messages[i], 'message');
message.classList.add('this_is_spam_message');
spam_messages_count++;
}
}
}
if (spam_messages_count > 0) {
setTimeout(function() {
var spam_messages = qsa('.this_is_spam_message');
for (var i = spam_messages.length - 1; i >= 0; i--) {
spam_messages[i].onclick = function() {
this.classList.remove('this_is_spam_message');
}
}
}, 1e3);
}
});
document.body.innerHTML +="<style>\
.this_is_spam_message{\
height: 20px;\
overflow: hidden;\
position: relative;\
cursor: pointer;\
}\
.this_is_spam_message::before{\
content: 'This is spam message';\
width: 100%;\
height: 100%;\
position: absolute;\
left: 0;\
top: 0;\
text-align: center;\
color: red;\
background: #fff;\
z-index: 1;\
line-height: 2.5;\
-webkit-transition: ease 200ms;\
-o-transition: ease 200ms;\
transition: ease 200ms;\
}\
.this_is_spam_message:hover::before{\
background: rgb(250, 250, 250);\
color: rgb(73, 147, 197);\
}\
</style>";
function isConainSpamWord(text) {
for (var i = spam_list.length - 1; i >= 0; i--) {
if (text.indexOf(spam_list[i]) > -1) {
return true;
}
}
return false;
}
/**
* Сокращенный вариант функции querySelectorAll
*
* @param e
* @returns {Element}
*/
function qsa(e) {
try {
return document.querySelectorAll(e);
} catch (t) {
console.log(t);
return null;
}
}
function parents(e, sel) {
var a = e.parentNode;
if (a.classList.contains(sel)) {
return a;
} else {
return parents(a, sel);
}
}
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
})();