|
| |
|
|
| |
для: SnooPI
(13.04.2007 в 18:36)
| | | Для функционирования нужно:
В бан листе каждый ник на новой строчке
В списке мата аналогично
В temp.txt список НОМЕР СУДИМОСТЬ
где судимость это текущее количество выражении пользователя
<?php
// основные данные
$ban = 'banlist.txt';
$mat = 'fuck.txt';
$tmp = 'temp.txt';
$uin = $msg['from'];
// проверяем сообщение
$mat = file ($mat);
$find = false;
foreach ($mat as $m)
{
if (strpos($msg['text'], trim($m)) !== false)
{ $find = true; break; }
}
// если найден мат то проверяем судимость
// или выходим
if (!$find) die();
$tmp = file ($tmp);
$qty = array();
foreach ($tmp as $t)
{
list ($u, $n) = explode (' ', $t);
$qty[$u] = intval ($n);
}
// если такого нет то заводим счетчик
if (!isset($qty[$uin])) $qty[$uin] = 1;
// если судимость меньше 3 то +1
elseif ($qty[$uin] < 3) $qty[$uin]++;
// если судимость 3 то...
else
{
// удаляем из временного списка
unset ($qty[$uin]);
// записываем в бан лист
$fp = fopen ($ban, 'a');
fwrite ($fp, "$uin\n");
fclose ($fp);
}
// и обновляем файл со счетчиком
$fp = fopen ($tmp, 'w');
foreach ($qty as $u=>$n)
fwrite ($fp, "$u $n\n");
fclose ($fp);
?>
|
| |
| |
|
|
| |
|
|
| | Здравсйтвуйте....
Мне нужно сделать такую функцию как фильтрация мата....
Тоже в боте :)
Вообще если человек пишет матное слово 3 раза, то его номер($msg['from']) заносится в файл banlist.txt
Вообщем бот смотрит что написал человек и если это слово имеется в файле с матами fuck.txt , и если оно напсиано им 3 раза, то его нмоер заносится в файл банлиста....
Вообщем примерно так..
Может лучше посоветуете | |
| |
|
|
|