EpicNet.Ru - Форум IRC Чата

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Bad Nick - Ban for abusive nicks

Сообщений 1 страница 8 из 8

1

Hello Epic,

Here are the details as discussed yesterday in chat:

1. Normal bad nick ban : the code shall ban an abusive nick upon triggering /bn nick reason

2. Nick storing : the nick shall be stored in a different badnicklist.txt file.

3. Nick monitoring : the code shall monitor all the incoming nicks and match it with the nicks stored in badnicklist.txt file. if found in the list, the code shall trigger an auto nick ban (no ip ban) with appropriate reason given during the first kick before storing the nick in badnicklist.txt file.

4. Wildcards : the code shall monitor, match and cross verify the nick using wildcards. for eg. nick Sluttywife, where *slut* could be a wildcard for any future bad nick ban matching that word in the nick.

5. Custom reasoning : like how we have custom reason system in baduser.txt file, by using the same logic could we also have a custom reasoning for bad nicks? for eg. nick Sluttywife, matches wildcard *slut* with reason : the nick has *slut* in the nick, kindly change it!

6. Dialog control : manual input and deletion of nicks through a small dialogue will be awesome.

7. Database : can we also add a nick with its ip and reason into our central baduser list ie. baduser.txt file upon 3 consecutive bad nicks from the same ip/host? for eg. lets say a nick sluttywife joins the channel and gets banned for having *slut* in the nick. the operator bans the nick with appropriate reasoning. the nick rejoins the channel with a WhoreWife and doesnt have *slut* in the nick but *whore*, the operator bans the nick yet again with appropriate reason (reason : nick matches *whore* in it). the nick rejoins the channel with nick randiwife where *randi* is as good as calling someone a *slut* or *whore*. all these 3 nicks are having same ip/host while joining the channel as the operator has always banned the nick Slutwife!*@*, WhoreWife!*@* & Randiwife!*@* matching *slut*, *whore* & *randi* respectively. so is it possible to add the nick ip/host in our central database ie. baduser.txt file upon 3rd offense? like, after the user takes 'randiwife' nick and gets banned, the code will automatically add the nick ip/host of that offender into baduser.txt file with reason : repeated bad nick offender.

8. Exception : the code should be able to exclude the ops/halfops/voice users and if possible an additional list of exception would be amazing. say if there is a nickname *randomguest* which matches the wildcard *rand* then the operator should be able to add randomguest nick into exception list where the code will not ban that nick.

9. Ban by Ident : this is not really needed but an addition to this existing code will be great.

[indent=0.8,0.5]
Any other suggestions are welcome

Thanks & Regards,

Sleepyhead

2

Hello Epic,

I am forwarding some screenshots of one of the stocked script i have on my HDD. just sending those screenshot for reference.

http://forumupload.ru/uploads/000d/c9/8c/362/t214542.png http://forumupload.ru/uploads/000d/c9/8c/362/t79013.png http://forumupload.ru/uploads/000d/c9/8c/362/t913453.png

The last screenshot is of a blacklist, even this dialogue looks awesome for logging bad nicks.

http://forumupload.ru/uploads/000d/c9/8c/362/t43797.png

Do share your views on this..

Cheers!

Sleepyhead

3

Hello Epic,

I was just thinking of this script and some common points i noticed while checking on the abusers :-

1. The abusive nicks always come with a 15 character long nick

example :

Abusive nick : ADI-BVsexNIDETI - bad nick with 15 characters (meaning - aditya's wife denies s*x)
Victim nick : aditya_m

Abusive nick : ADI-BODY-SHAMER - bad nick with 15 characters (meaning - aditya needs to be body shamed)
Victim nick : aditya_m

Abusive nick : LilyMaCHEUTFati - bad nick with 15 characters (meaning - Lily's mother torn pu**y)
Victim nick : Whitelily

Abusive nick : EvaLikesInAnal - bad nick with 14 characters (meaning - you can just translate it)
Victim nick : Eva

Abusive nick : ROEGANDUWALA - bad nick with 12 characters (meaning - ROE is an ass)
Victim nick : Residentofearth

Abusive nick : MIST-BHOSDIKE - bad nick with 13 characters (meaning - MIST is with a pu**y)
Victim nick : M|st

Abusive nick : CUCKU-KUTTI - bad nick with 11 characters (meaning - CUCKU is a bitch)
Victim nick : Thecuckoo_girl

My observations are :-

1. Normally the abusive nick is more than 8 characters long
2. The abusive nick always has a variation in it including few characters of the victim's nick just so it will be noticed by others as well as the victim him/herself.
3. There are few bad words which are always repetitive ofcourse with variations in it.
example : pussy = p-ussy, pu-ssy, pus-sy, puss-y, pussy
4. The abuser also uses numbers while highlighting victim's nick through the abusive nick.
example : ROEGANDUWALA (mentioned above) can also be written as R0EGANDUWALA where character 'O' is replaced with '0' zero just to evade the nick ban put by an operator on an earlier abusive nick. (wildcard ban : *ROE*)
5. The abuser always abuses those nicks which has an auto voice in the channel.

My point is :-

1. is there a way by which the code would read the nick and detect the length of the nick?
2. Is there a way where the code will analyze the nick by its character size (15 characters being the most where as the minimum allowed characters would be 8)
3. the code should be able to exempt few regular chatter nicks stored in a separate exemption.txt file. (voicechatters.txt and opchatters.txt)
4. is there a way by which the code would be able to detect the original chatter nick with voice in the channel and include that nick into a file say voicechatters.txt and any variations in that specific nick would be auto banned?

for example : Thecuckoo_girl joins the channel, the channel will auto voice the nick. the code will detect this nick and store it in a file named "voicechatters.txt". so any other nick joining with the first 5 characters of the nick shall be auto banned. in this case, CUCK, CUCKO, CUCKOO or C-UCK, CU-CKO, CUC-KO, CUCK-O or by swappning '0' (zero) at the place of character 'O'

Example 2: nick Tanya joins the channel, the channel will auto op the nick. the code will detect this nick and store it in a file named "opchatters.txt". so any other nick joining with the first 3 characters of the nick shall be auto banned. in this case, TNYA, TONYA, T0NYA (zero at place of O), T-ANYA, TA-NYA, TAN-YA, TANY-A etc..

5. The list voicechatters.txt and opchatters.txt file shall be auto updated by the code after a fixed interval . say every 10 mins.

This will be an absolute test of the scripting skills you have and i am more than sure you will be successful in it.

Looking at this code as a humble challenge :D

Thanks & Regards,

Sleepyhead

4

hey Epic,

also in addition what if we include the length of a nick into a file say nicklength.txt file and each time anyone joins the channel the code will automatically check this nicklength.txt file for potential abuse? this nicklength.txt file will also be an exempted list of nicks which will not be banned.. mostly ops and voice users.

the nicklength.txt file will have data similar to this..

tanya;5;exempted
tanyaishere;11;exempted
Mastertanya5;12;exempted
Cutesmiletanya1;15;exempted

similar to this .. nick;nicklength;exempted

badnicks.txt shall include something like this..

*tonya*, T-anya, TA-nya, TAN-ya, TANY-a     -  all these nicks exceed the set limit of 5 in the nicklength.txt file hence will be banned

by this process, we can lock the nick used by the ops and voice users and any other nick matching the nick and exceeding the length of a nick set in nicklength.txt file shall be banned immediately.

all other common bad nicks like *fuck* *slut* etc.. will already be there in the badnick.txt file by default so any nick with such words in it will be banned too

Do let me know your views on this.

Thanks & Regards,

Sleepyhead

5

Sleepyhead, Я постарался сделать скрипт с учётом ваших запросов. Вероятно он не будет делать сразу всё то, что вы хотели, но для начального тестирования этого будет достаточно.

Попробуйте использовать этот скрипт:

Код:
#####################################################################
#   Название: Bad Nick v1.0
#   Автор: Epic (epicnet@mail.ru, http://epicnet.ru, irc.epicnet.ru:6667 #Code)
#   Описание: Проверяет все входящие на канал ники пользователей на наличие в них плохих слов и выполняет Кик+Бан.
#   Команды: /bnw <*badword*> [length] [reason] , /bne <*masknick*> [length] [reason]
#####################################################################

alias -l bn_set {
  %bn_excepts = scripts\BadNick\exceptions.txt
  %bn_badwords = scripts\BadNick\badwords.txt
  %bn_database = scripts\BadUser\baduser.txt
  %bn_bad_reason = Your nick is abusive!
  %bn_exc_reason = Fake nick!
  %bn_length = 5
  %bn_newnickchan = #channel
}
---------------------------------------------------------------------
on !*:JOIN:#: bn_set | checknick $nick $chan
on !*:NICK: bn_set | checknick $newnick %bn_newnickchan
---------------------------------------------------------------------
alias -l checknick {
  var %nick $1 | var %chan $2 | var %host $gettok($address(%nick,5),2,64)
  var %res_w $badword(%nick) | if (%res_w) {
    tokenize 59 %res_w | if ($1 iswm %nick && $2 < $len(%nick)) {
      if (!$window(@BadNick)) .window -nk0 @BadNick $mircexe 21
      .aline -hnp @BadNick $+(10[,$time,]) 05[BADWORD]14 %chan 15->07 %nick $+(12*!*@,%host)
      if (!$read(%bn_database,nw,$+(*,;,%host,;,*))) .write -il1 %bn_database $+(%nick,;,%host,;,$3-)
      if ($me isop %chan) { .mode %chan +bb $+($1,!*@*) $address(%nick,2) | .kick %chan %nick $3- } | halt
    }
  }
  var %res_e $except(%nick) | if (%res_e) {
    tokenize 59 %res_e | if ($1 iswm %nick && $2 < $len(%nick)) {
      if (!$window(@BadNick)) .window -nk0 @BadNick $mircexe 21
      .aline -hnp @BadNick $+(10[,$time,]) 05[LENGTH]14 %chan 15->07 %nick $+(12*!*@,%host)
      if (!$read(%bn_database,nw,$+(*,;,%host,;,*))) .write -il1 %bn_database $+(%nick,;,%host,;,$3-)
      if ($me isop %chan) { .mode %chan +b $address(%nick,2) | .kick %chan %nick $3- }
    }
  }
}
alias -l badword {
  var %i 1 | while (%i <= $lines(%bn_badwords)) {
    var %str $read(%bn_badwords,n,%i) | var %mask $gettok(%str,1,59)
    if (%mask iswm $1) return %str | inc %i
  }
}
alias -l except {
  var %i 1 | while (%i <= $lines(%bn_excepts)) {
    var %str $read(%bn_excepts,n,%i) | var %mask $gettok(%str,1,59)
    if (%mask iswm $1) return %str | inc %i
  }
}
---------------------------------------------------------------------
alias bnw {
  bn_set | if (!$1) { echo -a 05Correct syntax:12 /bnw <*badword*> [length] [reason] | halt }
  if (!$read(%bn_badwords,nw,$+($1,;*))) {
    if ($2) var %bn_l $2 | else var %bn_l %bn_length | if ($3) var %bn_r $3- | else var %bn_r %bn_bad_reason
    var %bn_wstr $+($1,;,%bn_l,;,%bn_r) | .write -il1 %bn_badwords %bn_wstr | echo -a 04BADWORD added:12 %bn_wstr
  } | else echo -a 04BADWORD $+(,$1,) - is already on the list.
}
alias bne {
  bn_set | if (!$1) { echo -a 05Correct syntax:12 /bne <*masknick*> [length] [reason] | halt }
  if (!$read(%bn_excepts,nw,$+($1,;*))) {
    if ($2) var %bn_l $2 | else var %bn_l %bn_length | if ($3) var %bn_r $3- | else var %bn_r %bn_exc_reason
    var %bn_wstr $+($1,;,%bn_l,;,%bn_r) | .write -il1 %bn_excepts %bn_wstr | echo -a 03EXCEPT added:12 %bn_wstr
  } | else echo -a 03EXCEPT $+(,$1,) - is already on the list.
}
---------------------------------------------------------------------

Все настройки по умолчанию находятся в алиасе "bn_set". Вы можете изменить их в соответствии с вашими предпочтениями.

Если у вас появятся вопросы по работе с этим скриптом или вы обнаружите ошибки в его работе, то вы всегда можете связаться со мной в IRC чате или оставить новый пост в этой теме.

Подпись автора

[html]<style>img {vertical-align:middle;}.hnet{color:#FFFFFF;}.hstar{color:#DE0000;}.htext{font-family:Verdana;font-size:13px;color:#6E1E00;}.heading{font-family:Verdana;font-size:13px;font-weight:bold;background-color:#4897E7;}.stitle{font-family:Verdana;font-size:12px;}.dot{color:#808000;}.desc{color:#ADADAD;}a .curl{font-family:Verdana;font-size:13px;color:#3A92CD;}</style><table><tr><td width="20px" height="20px"><img src="http://forumstatic.ru/files/000d/c9/8c/34681.jpg"></td><td><a href="http://forum.epicnet.ru/viewtopic.php?id=234"><span class="heading"> <span class="hstar">★</span> <span class="hnet">EpicNet.Ru</span> <span class="hstar">★</span> </span><span class="htext"> - IRC Чат © 2008</span></a></td></tr><tr><td></td><td><div class="stitle"><span class="dot">•</span> <span class="desc">Вход через вебгейт:</span> <a href="http://irc.epicnet.ru"><span class="curl">http://irc.epicnet.ru</span></a><br><span class="dot">•</span> <span class="desc">Сервер:</span> irc.epicnet.ru <span class="desc">Порты:</span> 6667, 6668 (ssl)<br><div></td></tr></table>[/html]

6

Sleepyhead, я произвёл коррекцию и оптимизацию скрипта, с учётом ваших замечаний и пожеланий при общении в IRC чате, после вашего тестирования предыдущей версии.

Попробуйте использовать этот скрипт:

Код:
#####################################################################
#   Название: Bad Nick v1.1
#   Автор: Epic (epicnet@mail.ru, http://epicnet.ru, irc.epicnet.ru:6667 #Code)
#   Описание: Проверяет все входящие на канал ники пользователей на наличие в них плохих слов и выполняет Кик+Бан.
#   Команды: /bnw <*badword*> [length] [reason] , /bne <*masknick*> [length] [reason]
#####################################################################

alias -l bn_set {
  %bn_excepts = scripts\BadNick\exceptions.txt
  %bn_badwords = scripts\BadNick\badwords.txt
  %bn_database = scripts\BadUser\baduser.txt
  %bn_bad_reason = Your nick is abusive!
  %bn_exc_reason = Fake nick!
  %bn_length = 5
}
---------------------------------------------------------------------
on !*:JOIN:#: bn_set | checknick $nick $chan
on !*:NICK: bn_set | var %nick $newnick | var %n 1 | while (%n <= $comchan(%nick,0)) { checknick %nick $comchan(%nick,%n) | inc %n }
---------------------------------------------------------------------
alias -l checknick {
  var %nick $1 | var %chan $2 | var %host $gettok($address(%nick,5),2,64)
  var %res_e $except(%nick) | if (%res_e) {
    tokenize 59 %res_e | if ($len(%nick) > $2) {
      repact %nick %host $3- | if ($me isop %chan) { .mode %chan +b $address(%nick,2) | .kick %chan %nick $3- }
      .aline -hnp @BadNick $+(10[,$time,]) 05[LENGTH]14 %chan 15-> $+(14,$chr(40),04,$2,+14,$chr(41),07) %nick $+(12*!*@,%host)
    } | halt
  }
  var %res_w $badword(%nick) | if (%res_w) {
    tokenize 59 %res_w | if ($len(%nick) > $2) {
      repact %nick %host $3- | if ($me isop %chan) { .mode %chan +bb $+($1,!*@*) $address(%nick,2) | .kick %chan %nick $3- }
      .aline -hnp @BadNick $+(10[,$time,]) 05[BADWORD]14 %chan 15-> $+(14,$chr(40),04,$1,14,$chr(41),07) %nick $+(12*!*@,%host)
    }
  }
}
alias -l repact { if (!$read(%bn_database,nw,$+(*;,$2,;*))) .write -il1 %bn_database $+($1,;,$2,;,$3-) | if (!$window(@BadNick)) .window -nk0 @BadNick $mircexe 21 }
alias -l except { var %i 1 | while (%i <= $lines(%bn_excepts)) { var %str $read(%bn_excepts,n,%i) | var %mask $gettok(%str,1,59) | if (%mask iswm $1) return %str | inc %i } }
alias -l badword { var %i 1 | while (%i <= $lines(%bn_badwords)) { var %str $read(%bn_badwords,n,%i) | var %mask $gettok(%str,1,59) | if (%mask iswm $1) return %str | inc %i } }
---------------------------------------------------------------------
alias bnw {
  bn_set | if (!$1) { echo -a 05Correct syntax:12 /bnw <*badword*> [length] [reason] | halt }
  if (!$read(%bn_badwords,nw,$+($1,;*))) {
    if ($2) var %bn_l $2 | else var %bn_l %bn_length | if ($3) var %bn_r $3- | else var %bn_r %bn_bad_reason
    var %bn_wstr $+($1,;,%bn_l,;,%bn_r) | .write -il1 %bn_badwords %bn_wstr | echo -a 04BADWORD added:12 %bn_wstr
  } | else echo -a 04BADWORD $+(,$1,) - is already on the list.
}
alias bne {
  bn_set | if (!$1) { echo -a 05Correct syntax:12 /bne <*masknick*> [length] [reason] | halt }
  if (!$read(%bn_excepts,nw,$+($1,;*))) {
    if ($2) var %bn_l $2 | else var %bn_l %bn_length | if ($3) var %bn_r $3- | else var %bn_r %bn_exc_reason
    var %bn_wstr $+($1,;,%bn_l,;,%bn_r) | .write -il1 %bn_excepts %bn_wstr | echo -a 03EXCEPT added:12 %bn_wstr
  } | else echo -a 03EXCEPT $+(,$1,) - is already on the list.
}
---------------------------------------------------------------------
Подпись автора

[html]<style>img {vertical-align:middle;}.hnet{color:#FFFFFF;}.hstar{color:#DE0000;}.htext{font-family:Verdana;font-size:13px;color:#6E1E00;}.heading{font-family:Verdana;font-size:13px;font-weight:bold;background-color:#4897E7;}.stitle{font-family:Verdana;font-size:12px;}.dot{color:#808000;}.desc{color:#ADADAD;}a .curl{font-family:Verdana;font-size:13px;color:#3A92CD;}</style><table><tr><td width="20px" height="20px"><img src="http://forumstatic.ru/files/000d/c9/8c/34681.jpg"></td><td><a href="http://forum.epicnet.ru/viewtopic.php?id=234"><span class="heading"> <span class="hstar">★</span> <span class="hnet">EpicNet.Ru</span> <span class="hstar">★</span> </span><span class="htext"> - IRC Чат © 2008</span></a></td></tr><tr><td></td><td><div class="stitle"><span class="dot">•</span> <span class="desc">Вход через вебгейт:</span> <a href="http://irc.epicnet.ru"><span class="curl">http://irc.epicnet.ru</span></a><br><span class="dot">•</span> <span class="desc">Сервер:</span> irc.epicnet.ru <span class="desc">Порты:</span> 6667, 6668 (ssl)<br><div></td></tr></table>[/html]

7

Sleepyhead, я произвёл дополнительную коррекцию и некоторые изменения в скрипте, с учётом ваших новых замечаний при общении в IRC чате.

Теперь в скрипте можно создавать белые списки "Ников/Адресов" пользователей, на которые не будет выполняться "Кик+Бан", даже если в их никах будут присутствовать плохие слова.

Попробуйте использовать этот скрипт:

Код:
#####################################################################
#   Название: Bad Nick v1.2
#   Автор: Epic (epicnet@mail.ru, http://epicnet.ru, irc.epicnet.ru:6667 #Code)
#   Описание: Проверяет все входящие на канал ники пользователей на наличие в них плохих слов и выполняет Кик+Бан.
#####################################################################

alias -l bn_set {
  %bn_badwords = scripts\BadNick\badwords.txt     | ;# Синтаксис команды: /bnb <*badword*> [length] [reason]
  %bn_excepts = scripts\BadNick\exceptions.txt    | ;# Синтаксис команды: /bne <*masknick*> [length] [reason]
  %bn_whitelist = scripts\BadNick\whitelist.txt   | ;# Синтаксис команды: /bnw <nick/host> [reason]
  %bn_database = scripts\BadUser\baduser.txt      | ;# База данных для сохранения записей пользовательских данных с причиной бана.
  %bn_bad_reason = Your nick is abusive!          | ;# Причина кика по умолчанию за плохое слово в нике.
  %bn_exc_reason = Fake nick!                     | ;# Причина кика по умолчанию за использование поддельного ника.
  %bn_whi_reason = Always a good nick user!       | ;# Заметка по умолчанию для хорошего ника.
  %bn_length = 5                                  | ;# Лимит по умолчанию для допустимого числа символов в нике.
}
---------------------------------------------------------------------
on !*:JOIN:#: bn_set | checknick $nick $chan
on !*:NICK: bn_set | var %nick $newnick | var %n 1 | while (%n <= $comchan(%nick,0)) { checknick %nick $comchan(%nick,%n) | inc %n }
---------------------------------------------------------------------
alias -l checknick {
  var %nick $1 | var %chan $2 | var %host $gettok($address(%nick,5),2,64)
  if ($read(%bn_whitelist,nw,$+(%nick,;*))) || ($read(%bn_whitelist,nw,$+(%host,;*))) {
    if (!$window(@BadNick)) .window -nk0 @BadNick $mircexe 21
    .aline -hnp @BadNick $+(10[,$time,]) 05[WHITE]14 %chan 15->07 %nick $+(12*!*@,%host) | halt
  }
  var %res_e $except(%nick) | if (%res_e) {
    tokenize 59 %res_e | if ($len(%nick) > $2) {
      if (!$window(@BadNick)) .window -nk0 @BadNick $mircexe 21
      .aline -hnp @BadNick $+(10[,$time,]) 05[LENGTH]14 %chan 15-> $+(14,$chr(40),04,$2,+14,$chr(41),07) %nick $+(12*!*@,%host)
      if (!$read(%bn_database,nw,$+(*;,%host,;*))) .write -il1 %bn_database $+(%nick,;,%host,;,$3-)
      if ($me isop %chan) { .mode %chan +b $address(%nick,2) | .kick %chan %nick $3- }
    } | halt
  }
  var %res_w $badword(%nick) | if (%res_w) {
    tokenize 59 %res_w | if ($len(%nick) > $2) {
      if (!$window(@BadNick)) .window -nk0 @BadNick $mircexe 21
      .aline -hnp @BadNick $+(10[,$time,]) 05[BADWORD]14 %chan 15-> $+(14,$chr(40),04,$1,14,$chr(41),07) %nick $+(12*!*@,%host)
      if (!$read(%bn_database,nw,$+(*;,%host,;*))) .write -il1 %bn_database $+(%nick,;,%host,;,$3-)
      if ($me isop %chan) { .mode %chan +bb $+(%nick,!*@*) $address(%nick,2) | .kick %chan %nick $3- }
    }
  }
}
alias -l except { var %i 1 | while (%i <= $lines(%bn_excepts)) { var %str $read(%bn_excepts,n,%i) | var %mask $gettok(%str,1,59) | if (%mask iswm $1) return %str | inc %i } }
alias -l badword { var %i 1 | while (%i <= $lines(%bn_badwords)) { var %str $read(%bn_badwords,n,%i) | var %mask $gettok(%str,1,59) | if (%mask iswm $1) return %str | inc %i } }
---------------------------------------------------------------------
alias bnb {
  bn_set | if (!$1) { echo -a 05Correct syntax:12 /bnb <*badword*> [length] [reason] | halt }
  if (!$read(%bn_badwords,nw,$+($1,;*))) {
    if ($2) var %bn_l $2 | else var %bn_l %bn_length | if ($3) var %bn_r $3- | else var %bn_r %bn_bad_reason
    var %bn_wstr $+($1,;,%bn_l,;,%bn_r) | .write -il1 %bn_badwords %bn_wstr | echo -a 04BADWORD added:12 %bn_wstr
  } | else echo -a 04BADWORD $+(,$1,) - is already on the list.
}
alias bne {
  bn_set | if (!$1) { echo -a 05Correct syntax:12 /bne <*masknick*> [length] [reason] | halt }
  if (!$read(%bn_excepts,nw,$+($1,;*))) {
    if ($2) var %bn_l $2 | else var %bn_l %bn_length | if ($3) var %bn_r $3- | else var %bn_r %bn_exc_reason
    var %bn_wstr $+($1,;,%bn_l,;,%bn_r) | .write -il1 %bn_excepts %bn_wstr | echo -a 03EXCEPT added:12 %bn_wstr
  } | else echo -a 03EXCEPT $+(,$1,) - is already on the list.
}
alias bnw {
  bn_set | if (!$1) { echo -a 05Correct syntax:12 /bnw <nick/host> [reason] | halt }
  if (!$read(%bn_whitelist,nw,$+($1,;*))) {
    if ($2) var %bn_r $2- | else var %bn_r %bn_whi_reason
    var %bn_wstr $+($1,;,%bn_r) | .write -il1 %bn_whitelist %bn_wstr | echo -a 15WHITE added:12 %bn_wstr
  } | else echo -a 15WHITE $+(,$1,) - is already on the list.
}
---------------------------------------------------------------------
Подпись автора

[html]<style>img {vertical-align:middle;}.hnet{color:#FFFFFF;}.hstar{color:#DE0000;}.htext{font-family:Verdana;font-size:13px;color:#6E1E00;}.heading{font-family:Verdana;font-size:13px;font-weight:bold;background-color:#4897E7;}.stitle{font-family:Verdana;font-size:12px;}.dot{color:#808000;}.desc{color:#ADADAD;}a .curl{font-family:Verdana;font-size:13px;color:#3A92CD;}</style><table><tr><td width="20px" height="20px"><img src="http://forumstatic.ru/files/000d/c9/8c/34681.jpg"></td><td><a href="http://forum.epicnet.ru/viewtopic.php?id=234"><span class="heading"> <span class="hstar">★</span> <span class="hnet">EpicNet.Ru</span> <span class="hstar">★</span> </span><span class="htext"> - IRC Чат © 2008</span></a></td></tr><tr><td></td><td><div class="stitle"><span class="dot">•</span> <span class="desc">Вход через вебгейт:</span> <a href="http://irc.epicnet.ru"><span class="curl">http://irc.epicnet.ru</span></a><br><span class="dot">•</span> <span class="desc">Сервер:</span> irc.epicnet.ru <span class="desc">Порты:</span> 6667, 6668 (ssl)<br><div></td></tr></table>[/html]

8

1314,2 написал(а):

Sleepyhead, я произвёл дополнительную коррекцию и некоторые изменения в скрипте, с учётом ваших новых замечаний при общении в IRC чате.
Теперь в скрипте можно создавать белые списки "Ников/Адресов" пользователей, на которые не будет выполняться "Кик+Бан", даже если в их никах будут присутствовать плохие слова.

Hello Epic,

Man oh Man..

You really did this crazy looking code. I really appreciate the efforts you have taken for this and i just cannot thank you enough. Although this code is person specific but it will also help others in identifying and keeping a tab on all the abusers/flooders in a channel. This 1 code does all the things which i really wanted just to secure my channel and i am glad that you were able to understand my need and help me with it.

You were the only person who actually went a step ahead in helping someone like me who was very much an unknown personality to you. yet, you took so much of efforts in helping.. that shows how dedicated and sincere you are in doing what you enjoy doing :) i would surely recommend your network for anyone who is in desperate need of help like me.

Thanks a lot for your kindness and great work,

Thanks & Regards,

Sleepyhead