Страница 1 из 2

Можно ли в коре фильтровать сообщения чата?

Добавлено: Чт июн 05, 2008 6:06 pm
Tray
если такая фишка есть, подскажите как сделать

если нет, надо бы внедрить, а то просто задрали боты-рекламщики, поэтому хотелось бы иметь возможность поставить фильтр на определенные слова (сайты, фразы)

Добавлено: Пт июн 06, 2008 7:38 am
МихаилБорисович=)
А зачем тебе это?
Не пойму ты хочешь что бы кора не видела чат или кора фильтровала чат для твоего открытого окна клиента?

Добавлено: Пт июн 06, 2008 8:07 am
Tray
допустим, поставил я торгаша через кору 0.
я не хочу видеть в окне чата рекламные сообщения, потому что они тупо бесят, плюс засоряют весь чат, приватные сообшения потом лазай, ищи.

Добавлено: Вс июн 08, 2008 7:42 am
Tray
ну так что? неужели никто не может помочь? это же элементарная задача для тех кто знает кору - сделать фильтр спама.

Блин, надоели рекламные сообщения. Неужели мне одному?
Этих ушлепышей с www.top4game.ru и похожих сайтов надо просто пиздить за эту навязчивую рекламу, подонки просто.

Добавлено: Вс июн 08, 2008 8:10 am
Lims
файл Receive.pm ищи строку
'008D' => ['public_chat'
закомментриуй её и радуйся жизни

Добавлено: Пн июн 09, 2008 3:27 pm
дотошный_нуб
Касты, смайлы как отфильтровать?

Добавлено: Сб июн 14, 2008 1:47 am
дотошный_нуб
UP!!!

Добавлено: Сб июн 14, 2008 1:19 pm
Aib0
RTFM
squelchDomains

Добавлено: Вт июн 17, 2008 5:08 pm
Tray
'008D' => ['public_chat'
если я так сделаю, я себе случаем не весь ли публичный чат отрублю?
мне бы хотелось фильтровать именно конкретные фразы, подскажите хоть на примере, с чего начать то?

есть же светлые головы, которые рубят в перле

Добавлено: Ср июн 18, 2008 10:29 pm
4epT
squelchDomains [<message domains>]
If this option is set, certain messages grouped under the specified comma-separated list of message domains will not be printed in the console. For example, use:

Example:

Код: Выделить всё

squelchDomains skillif
you don't want your vendbot to be spammed by people using skills in town.


Notes:
* For normal messages, the option verboseDomains overrides this option, thus if a message domain is listed in verboseDomains, that message group will always be printed in the console even if it is listed in this option.
* Internally, Kore sets the verbosity level of message domains listed in this option to 5. See the option verbose for more information on verbosity.
* See the references section for a list of known message domains.

Добавлено: Сб июн 21, 2008 4:11 pm
Tray
да это не то, я не хочу отфильтровывать домейны, я хочу видеть разговоры людей в общий чат, я не хочу видеть фразы ботов-рекламщиков именно, т.е. было бы прикольно фильтрануть их типовын фразы или сайты.

Добавлено: Сб июн 21, 2008 4:36 pm
DInvalid
Recive.pm

sub public_chat {

Найти

Код: Выделить всё

	message TF("%s%s\n", $distInfo, $message), "publicchat";
заменить на

Код: Выделить всё

	message TF("%s%s\n", $distInfo, $message), "publicchat" unless ($message =~ /$config{chatFilter}/);

В конфиг добавить chatFilter и в него написать регэксп который будет отбирать фразы.

Попробовать и сказать - работает или нет )

Добавлено: Сб июн 21, 2008 5:37 pm
Tray
что такое регэксп?

и что прописывать в конфиге то?
типа если написать в конфе

chatFilter 'продажа зеней', 'боты'

то тогда в чате не будут высвечиваться предложения, содержащие такие фразы?

===============
если не трудно, объясни смысл того, что должно произойти и что нужно прописывать.
в кавычки брать? если брать, то в двойные или одинарные?
фразу можно или только одно слово?
можно ли слова через запятую?

====================================
я просто не понимаю синтаксис перла
"publicchat" unless ($message =~ /$config{chatFilter}/);
это случаем не означает "показывать предложение из публичного чата, если тока в предложении не встречается фраза/слово, определенное в параметре chatFilter"?
==============================
заменил функцию в ресив.пм
пробовал прописывать в файле config.txt так:
chatFilter www.top4game.ru
chatFilter 'www.top4game.ru'

не работает, проходят в чат предлжения такого типа www.top4game.ru! Лучший сервис! Лучший для игр!

Добавлено: Сб июн 21, 2008 11:28 pm
DInvalid
Регэксп - это регулярное выражение.
Тут на форуме по ним была памятка.

В конфиге прописывать надо один параметр - chatFilter.
потом пробел, потом - регулярное выражение (регэксп) описывающее то, что ты хочешь не слышать.
Пример:

chatFilter продажа зеней|боты|zeny|top4game

Означает что будут отбрасываться все фразы в которых есть или
продажа зеней или top4game или боты или zeny.

Можно усложнить, например top4game можно написать разными способами.

Проверить, работает ли это можно вставив такой код:

Код: Выделить всё

	message TF("%s%s\n", $distInfo, $message), "publicchat" unless ($message =~ /$config{chatFilter}/); 
	message TF("%s%s\n", $distInfo, $message), "spamchat" if ($message =~ /$config{chatFilter}/); 
в результате обычный чат будет зеленым и иметь домен publicchat а спам будет белым и в домене spamchat , который можно внести в squelchDomains для подавления.

Пример

Код: Выделить всё

[publicchat] [dist=0] Aml (0): hello
[publicchat] [dist=0] Aml (0): How are you?
[publicchat] [dist=0] Aml (0): sell zeny
[spamchat] [dist=0] Aml (0): zeny sell
[spamchat] [dist=0] Aml (0): www.top4game.ru! Лучший сервис! Лучший для игр!

Добавлено: Вс июн 22, 2008 10:57 am
Tray
спасибо, кудесник.

теперь еще один вопрос - не отображаются фразы в консоли, зато отображается этот спам в Chat Log'е. Как там отфильтрофировать, ибо для меня он имеет большее значение нежели консоль.