LINUX.ORG.RU
ФорумTalks

[purple]Замена входящих сообщений по регулярному выражению


0

1

По совету отсюда таки засел за разработку плагина, и что удивительно, написал.

Плагин при запуске читает из заданного файла список «плохих» слов (или обозначающих их регулярных выражений) и обрабатывает каждое входящее сообщение регулярным выражением

s/($str)/chr(9608)x(length $1)/egis;

Где $str - плохое слово, а chr(9608) - прямоугольник.

Скришнот: 56K

Собственно, код: ~/.purple/plugins/incomingfilter.pl

На неюникодных системах, видимо, придётся призводить какие-то модификации.

★★★★★

На неюникодных системах, видимо, придётся призводить какие-то модификации.

посмотри extended ascii table, там есть прямоугольнички, проблема только в сотнях кодировок :)

lazyklimm ★★★★★
()
Ответ на: комментарий от Tweaker

ага, вместо *** - ЛОР, вместо **** - скор, вместо ***** - Шоман

lazyklimm ★★★★★
()
Ответ на: комментарий от Tweaker

не, тогда не будет понятно: собеседник действительно культурный и доброжелательный или это плагин постарался. :)

Orfeo
()

А если чуть его подкрутить, чтоб заменял все входящие на какую-нибудь одну фразу, например «привет кагдила!», а потом прикрутить кому-нибудь незаметно, то... :)

Orfeo
()
Ответ на: комментарий от lazyklimm

Вот-вот. Особенно если учесть, что файл с фильтрами открывается для чтения в режиме utf8 и используется use utf8.
Квадратики - не главное, их вполне можно заменить на «*».

AITap ★★★★★
() автор топика

Спасибо, пригодится. Заменил еще

  $_[2] .= "\n<i>Replaces: $done</i>" if $done gt 0;
на
   $_[2] .= "<br/><i><font size='1'>Replaces: $done</font></i>" if $done gt 0;
т.к. \n в истории переписки не отображается, ну и шрифт поменьше, мне так удобнее.

m_
()

█████ ███ ████ ██ ███!

sid350 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.