ОсновноеRadiotalkПользовательское
MPCHAT - CMS хостинг чатов для профессионалов
84   •   Посмотреть все темы

Мощный фильтр рекламы в чат (обсуждение)

 

20090
Dimitry @Dimitry
ну да, бан - решение!
или такой фильтер ставить в форму регистрации!

637
zorro @zorro
crigon пишет:

Это косяк, конечно. Правда у меня ещё не было таких.
Ну, если что, можно просто банить эти ники.

у меня чат относительно большой, было такое дело как-то ) просто когда какой-то чел. понимает что у тебя в фильтрации стоит он просто регит такой ник и заходит в чат, ему типо пишут все: "привет" и тупо весь общак в: "РЕКЛАМА", а модеры бывают тупят и банят ) вообщем ситуация не приятная!
В каком-то чате видел что то что у них фильтруется в чате, то и в никах фильтруется! Или как-то сделать отдельный файл где можно будет прописывать запрещеные слова на регистрацию

2536
удалён @crigon
Дим, а не подскажешь как адекватнее искать ссылку для гостей, мне мой вариант не нравится, но он действенный -)

637
zorro @zorro
demon пишет:

ну да, бан - решение!
или такой фильтер ставить в форму регистрации!

это не очень ) так будут смотреть хтмл код регистрации и сразу все выдаешь что у тебя стоит в фильтре! Другого варианта нет?

2536
удалён @crigon
zorro, тогда, наверное, нужно только msg_text фильтровать. Но, какие-то проблемы, вроде, были с этим. Потестирую.

20090
Dimitry @Dimitry
crigon пишет:

Дим, а не подскажешь как адекватнее искать ссылку для гостей, мне мой вариант не нравится, но он действенный -)

непонял что за ссылка для гостей?

2536
удалён @crigon
Я имел ввиду наличие ссылки в сообщении. В настоящий момент
/[hхx]?[tт]?[tт]?[пpр]?[\/]?[\/]?[^0-9a-zа-я]*[wв]?[wв]?[wв]?[^0-9a-zа-я]*[.]([ruру]{2}|[comком]{3}|[deде]{2}|[orgорг]{3}|[azаз]{2}|[bizбиз]{3}|[infoинфо]{4}|[nameнаме]{4}|[fmфм]{2}|[netнет]{3})/

20090
Dimitry @Dimitry
дак это не обязательный параметр.. рекламят и без http://

7094
--- @Render
Эт конешн всё хорошо, а можно сделать к примеру фильтр на все ссылки кроме:
********** и ********** ???

4875
ValdeZ @ValdeZ
кстати, да, как в него добавлять исключения?

637
zorro @zorro
Render пишет:

Эт конешн всё хорошо, а можно сделать к примеру фильтр на все ссылки кроме:
********** и ********** ???

полный бред ) гугл тоже будет рекламой )

4756
заблокирован @Nikolays
zorro пишет:

Render пишет:

Эт конешн всё хорошо, а можно сделать к примеру фильтр на все ссылки кроме:
********** и ********** ???

полный бред ) гугл тоже будет рекламой )

причем тут гугл? Он имеет ввиду запрет на ВСЕ ссылки, но что бы можно было добавить исключения.

7094
--- @Render
Бред у тебя в штанах.. Если я хочу запретить все ссылки в чате, кроме Галереи и Контакта то значит у меня свой вариант защиты от рекламы.

2536
удалён @crigon
Полностью переписал функцию по образцу демона. Если найдёте ошибки, обязательно пишите. Но, вроде бы, всё работает, полёт нормальный.

demon, вопрос. Почему
var wtf = msg.toLowerCase().replace(' ','');
удаляет ТОЛЬКО ПЕРВЫЙ пробел в строке? <_<

zorro, теперь фильтруем непосредственно сообщение, с никами проблем не будет.

Отдельной строкой, ДЛЯ ТЕХ КТО В ТАНКЕ: скрипт НЕ БУДЕТ фильтровать egargshydj.ru если ВЫ САМИ не пропишите его в фильтре. Более того, если вы хотите, чтобы фильтровалось оно с символами, пробелами и т.д. нужно САМОСТОЯТЕЛЬНО составить фильтр, используя REGEX и добавить его в массив. Всё.

Render, такой вариант вполне реально сделать. Попробуй, расскажешь.
var nospamerf = 'мой-чат.com/?inc=gallery|vkontakte.ru';
nospamerf = nospamerf.split("|");

var guestspamerf = /[hхx]?[tт]?[tт]?[пpр]?[\/]?[\/]?[^0-9a-zа-я]*[wв]?[wв]?[wв]?[^0-9a-zа-я]*[.]([ruру]{2}|[comком]{3}|[deде]{2}|[orgорг]{3}|[azаз]{2}|[bizбиз]{3}|[infoинфо]{4}|[nameнаме]{4}|[fmфм]{2}|[netнет]{3})/;

function spamer(msg) {
var wtf = msg.toLowerCase().replace(' ','');
var spam = 0;
if(wtf.search(guestspamerf) != -1) spam = 1;
for(var i = 0; i < nospamerf.length; i++) if(wtf.search(nospamerf[i]) != -1) { spam = 0; break; }
if(spam) msg = "((spamer))";
return msg; }

20090
Dimitry @Dimitry
да, с пробелом засада..
нужно так
while(msg.search(' ')!=-1) msg=msg.replace(' ','');

7094
--- @Render
crigon поставил)) и в чате выдаёт
ниже то что у меня сделано. Ошибся гдет?
фильтр: ((spamer))^<font color=red>[[[--РЕКЛАМА--]]]</font>^
символы: ar maxabc=5;
обработка строки ввода: msg_text=abc_flood(msg_text); msg_text=spamer(msg_text); msg_text=translit(msg_text); msg=msg_cmd+msg_nick+msg_text;
ну и сам спам-скрипт:
/* Транслирует текст на русский по звучанию */
document.write("<"+"script src=http://mpchat.com/blank/translit.js></"+"script>");

var nospamerf = 'freedom-love.com/index.php?inc=gallery|vkontakte.ru';
nospamerf = nospamerf.split("|");

var guestspamerf = /[hхx]?[tт]?[tт]?[пpр]?[\/]?[\/]?[^0-9a-zа-я]*[wв]?[wв]?[wв]?[^0-9a-zа-я]*[.]([ruру]{2}|[comком]{3}|[deде]{2}|[orgорг]{3}|[azаз]{2}|[bizбиз]{3}|[infoинфо]{4}|[nameнаме]{4}|[fmфм]{2}|[netнет]{3})/;

function spamer(msg) {
var wtf = msg.toLowerCase().replace(' ','');
var spam = 0;
if(wtf.search(guestspamerf) != -1) spam = 1;
for(var i = 0; i < nospamerf.length; i++) if(wtf.search(nospamerf[i]) != -1) { spam = 0; break; }
if(spam) msg = "((spamer))";
return msg; }

function translit(msg){
if (parent.chat.document.fmsg.trans.value == 1 && msg) {
for (i=0; i<engRegSmall.length; i++) {msg = msg.replace(engRegSmall[i], rusSmall[i])}
for (i=0; i<engRegBig.length; i++) {msg = msg.replace(engRegBig[i], rusBig[i])}
}
return msg;

637
zorro @zorro
crigon, поставил новую версию) а почему da.zp.ua не фильтруется ? не пишет что: "РЕКЛАМА" ??

P.S. И через пробелы и подчеркивания можно обойти фильтр

Отредактировано zorro - 28.01.2009
1258
Сергей @seg
zorro пишет:

crigon, поставил новую версию) а почему da.zp.ua не фильтруется ? не пишет что: "РЕКЛАМА" ??

P.S. И через пробелы и подчеркивания можно обойти фильтр

var guestspamerf = /[hхx]?[tт]?[tт]?[пpр]?[\/]?[\/]?[^0-9a-zа-я]*[wв]?[wв]?[wв]?[^0-9a-zа-я]*[.]([ruру]{2}|[comком]{3}

Смотри, как у него сделано http:// ru www и т.д. добавь своё ))

637
zorro @zorro
seg пишет:

Смотри, как у него сделано http:// ru www и т.д. добавь своё ))

ну смотри идет код:
var simplespamerf = 'antichat|townchat.ru|boom4u.eu|chillout.nnov.ru|kchat.ru|chatki.ru|myfland.ru|da.zp.ua|multi-chat.ru|kiss-chat.ru|chat.slize.ru|livechat.su|wilect.ru|mega-chat.ru|proekt28053.ru|chat.biz.ua|chatic|ksyuadmin.at.ua|lovechat.ru|sexychat.ru';
simplespamerf = simplespamerf.split("|");

в этом фильтре есть сайт: da.zp.ua он не фильтруется, все остальные чаты фильтруются! Или ты мне говоришь на счет пробелов?

2536
удалён @crigon
Вспомнил, почему msg_text не хотел фильтровать...

msg_text=msg.substr(msg.indexOf(":")+1);
т.е. он считает текстом всё, что идёт после http: в случае когда ссылка самой первой стоит..
demon, снова к тебе вопрос, что можно с этим сделать... А если поставить фильтр полностью на msg, фильтрует ники...
А с пробелом сейчас поправлю, спс.

zorro, 1) только что попробовал, фильтруется; 2) ты видишь, что он в ПРОСТОМ фильтре?
если вы хотите, чтобы фильтровалось оно с символами, пробелами и т.д. нужно САМОСТОЯТЕЛЬНО составить фильтр, используя REGEX и добавить его в массив

Насчёт пробелов только что исправили, а подчёркивание не будет пропускать только в сложных фильтрах.

Первый пост обновлён.