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

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

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


Вы здесь » EpicNet.Ru - Форум IRC Чата » DEVELOPMENT - Разработка новых mIRC скриптов » Manual kick/ban with F2 button and click address


Manual kick/ban with F2 button and click address

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

1

Hello Epic,

Please go through the code which i have already been using since long.

Код:
on *:join:#: {
  set %chan_exceptions 
  if ($istok(%chan_exceptions,$chan,32) == $true) { return }
  set -u10 %lastJoin. [ $+ [ $chan ] ] $chan $nick
}
alias f2 {
  var %check_value $eval($+(%,lastJoin.,$active),2)
  if (%check_value  == $null) { return }
  var %nick $gettok(%check_value,2,32) 
  var %chan $gettok(%check_value,1,32) 
  var %KICKMSG 1[4Ab/Fld1] Purged!
  mode %chan +bb $address(%nick,2) %nick
  kick %check_value %KICKMSG
}

;Double Click Ban

on $^*:hotlink:/(@[^\s)]+\56[^\s)\56]+)/S:#:{
  if ($me !isop $chan) && ($me !ishop $chan) { halt }
}
on $*:hotlink:/(@[^\s)]+\56[^\s)\56]+)/S:#:{
  !mode $chan $iif(*!* $+ $regml(1) isban $chan,-b,+b) *!* $+ $regml(1)
}
on $^*:hotlink:/([a-zA-Z_\Q\[]{}^`|\E][a-zA-Z0-9_\Q\[]{}^`|\E-]*)/S:#:{
  if ($regml(1) !ison $chan) { halt }
  if ($me !isop $chan) && ($me !ishop $chan) { halt }
}
on $*:hotlink:/([a-zA-Z_\Q\[]{}^`|\E][a-zA-Z0-9_\Q\[]{}^`|\E-]*)/S:#:{
  !ban -k $chan $regml(1) 2 1[4Flood Bot1] You are not welcomed!
}

let me tell you what exactly this code does. i need to press f2 to kick an abuser/flooder. it sets 2 different bans in one f2 button press. 1st. nickname ban 2nd full address ban (ban 2). this function is used for super fast kick/ban of an abuser.

What i am looking for:

1. can we use this code and write all the banned nicks and ips into one blacklisted file (supposedly, the badnicks.txt file from earlier code).
2. this code is not automatic so it may doesnt have to read the badnicks.txt file just to ban abusers.
3. a central repository file (badnicks.txt) could be very helpful in adding all the abusive nicks and ips at one place and use it :d

your suggestions are always welcome

Thanks & Regards,

Sleepyhead

2

1273,362 написал(а):

1. can we use this code and write all the banned nicks and ips into one blacklisted file (supposedly, the badnicks.txt file from earlier code).
2. this code is not automatic so it may doesnt have to read the badnicks.txt file just to ban abusers.
3. a central repository file (badnicks.txt) could be very helpful in adding all the abusive nicks and ips at one place and use it :d

Попробуйте использовать такую модификацию скрипта:

Код:
# Mod v1.0 by Epic (epicnet@mail.ru, http://epicnet.ru)
-----------------------------------------------------
alias xx_set {
  %xx_chan_except = #channel1,#channel2,#channel3
  %xx_var_time = 10
  %xx_msg_kick = 1[4Ab/Fld1] Purged!
  %xx_bd_write = yes
  %xx_bd_path = scripts\BadUser\baduser.txt
}
-----------------------------------------------------
on *:JOIN:#:{
  xx_set | if ($istok(%xx_chan_except,$chan,44)) { halt }
  .hadd $+(-mu,%xx_var_time) lastjoin $chan $chan $nick
}
alias F2 {
  xx_set | if ($hget(lastjoin,$active) == $null) { halt }
  var %xx_last $hget(lastjoin,$active)
  var %nick $gettok(%xx_last,2,32)
  var %host $gettok($address(%nick,5),2,64)
  var %chan $gettok(%xx_last,1,32)
  if (%xx_bd_write == yes) .write -il1 %xx_bd_path $+(%nick,$chr(59),%host,$chr(59),%xx_msg_kick)
  if ($me isop $active) { .mode %chan +bb $+(%nick,!*@*) $+(*!*@,%host) | .kick %chan %nick %xx_msg_kick }
}
-----------------------------------------------------
# Double Click Ban

on $^*:HOTLINK:/(@[^\s)]+\56[^\s)\56]+)/S:#:{
  if ($me !isop $chan) && ($me !ishop $chan) { halt }
}
on $*:HOTLINK:/(@[^\s)]+\56[^\s)\56]+)/S:#:{
  !mode $chan $iif(*!* $+ $regml(1) isban $chan,-b,+b) *!* $+ $regml(1)
}
on $^*:HOTLINK:/([a-zA-Z_\Q\[]{}^`|\E][a-zA-Z0-9_\Q\[]{}^`|\E-]*)/S:#:{
  if ($regml(1) !ison $chan) { halt }
  if ($me !isop $chan) && ($me !ishop $chan) { halt }
}
on $*:HOTLINK:/([a-zA-Z_\Q\[]{}^`|\E][a-zA-Z0-9_\Q\[]{}^`|\E-]*)/S:#:{
  !ban -k $chan $regml(1) 2 1[4Flood Bot1] You are not welcomed!
}

Все настройки производятся в алиасе "xx_set". Думаю, что там всё понятно по названию самих переменных  http://epicnet.ru/smiles/epic-mix/smile_kind.gif

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

[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:#4898CD;}.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="https://forumstatic.ru/files/000d/c9/8c/34681.jpg"></td><td><a href="https://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]

3

Хай, Epic!

Спасибо за обновление. Это работает именно для того, для чего предназначено. Хотя, просто быстрый вопрос: - Вы добавили "hadd" (если я не ошибаюсь, это хеш-указатель) для добавления чего-то в код, но вывод в формате .txt, который обычно хорошо сочетается с "write -l1". Будет ли это работать в долгосрочной перспективе?

В остальном отличная работа!

Большое спасибо,

Sleepyhead (Соня).

4

1276,362 написал(а):

Хотя, просто быстрый вопрос: - Вы добавили "hadd" (если я не ошибаюсь, это хеш-указатель) для добавления чего-то в код, но вывод в формате .txt, который обычно хорошо сочетается с "write -il1". Будет ли это работать в долгосрочной перспективе?

Это было сделано для более удобной записи и хранения временных данных с ником подключившегося к каналу пользователя "#channel nick", которые должны будут автоматически удаляться по истечению заданного времени (в данном случае через 10 секунд). Это равнозначно предыдущей создаваемой переменной, но теперь это делается в более удобной форме хранения и последующего извлечения данных. Это никак не влияет на команду "write -l1", которая выполняет запись в первую строку файла по указанному пути, в общую базу данных всех нарушителей порядка.

Всё будет работать так же как это было задумано раньше. На данном уровне скриптования вам будет удобнее работать с текстовым форматом базы данных.

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

[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:#4898CD;}.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="https://forumstatic.ru/files/000d/c9/8c/34681.jpg"></td><td><a href="https://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]

5

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

Это было сделано для более удобной записи и хранения временных данных с ником подключившегося к каналу пользователя "#channel nick", которые должны будут автоматически удаляться по истечению заданного времени (в данном случае через 10 секунд). Это равнозначно предыдущей создаваемой переменной, но теперь это делается в более удобной форме хранения и последующего извлечения данных. Это никак не влияет на команду "write -l1", которая выполняет запись в первую строку файла по указанному пути, в общую базу данных всех нарушителей порядка.

Всё будет работать так же как это было задумано раньше. На данном уровне скриптования вам будет удобнее работать с текстовым форматом базы данных.

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

Hey Epic,

indeed bro, in fact this helps a lot. just my concern is what if i start storing large data of nicknames;host;reason in .txt format. as far as my understanding goes, when the database file is huge it takes significant time for the code to scan the user and match it with the database entry already stored. although,  i agree that .txt file does help me in altering or modifying the data in plain text which is very easy to do but in a longer run will it slow down?

Thanks & Regards,

Sleepyhead

6

Код:
# Double Click Ban

on $^*:HOTLINK:/(@[^\s)]+\56[^\s)\56]+)/S:#:{
  if ($me !isop $chan) && ($me !ishop $chan) { halt }
}
on $*:HOTLINK:/(@[^\s)]+\56[^\s)\56]+)/S:#:{
  !mode $chan $iif(*!* $+ $regml(1) isban $chan,-b,+b) *!* $+ $regml(1)          (write banned ip into baduser.txt file)
}
on $^*:HOTLINK:/([a-zA-Z_\Q\[]{}^`|\E][a-zA-Z0-9_\Q\[]{}^`|\E-]*)/S:#:{
  if ($regml(1) !ison $chan) { halt }
  if ($me !isop $chan) && ($me !ishop $chan) { halt }
}
on $*:HOTLINK:/([a-zA-Z_\Q\[]{}^`|\E][a-zA-Z0-9_\Q\[]{}^`|\E-]*)/S:#:{
  !ban -k $chan $regml(1) 2 1[4Flood Bot1] You are not welcomed!            (write banned ip into baduser.txt file)
}

hello Epic,

just an addition to the existing code.. is there a way by which we could write the banned user into the already existing baduser.txt file upon double clicking on the nick?

Thanks & Regards,

Sleepyhead

7

1293,362 написал(а):

is there a way by which we could write the banned user into the already existing baduser.txt file upon double clicking on the nick?

Удалите целиком предыдущую версию скрипта и попробуйте переустановить на свой клиент эту модификацию скрипта:

Код:
# Mod v1.1 by Epic (epicnet@mail.ru, http://epicnet.ru)
-----------------------------------------------------
alias xx_set {
  %xx_chan_except = #channel1,#channel2,#channel3
  %xx_temp_time = 10
  %xx_msg_kick = 1[4Ab/Fld1] Purged!
  %xx_bd_write = yes
  %xx_bd_path = scripts\BadUser\baduser.txt
}
-----------------------------------------------------
on ^*:HOTLINK:*:#: if ($hotlink(event) == dclick && $1 ison $chan && $1 != $me && $1 !isop $chan) { F2 | return } | halt
on !*:JOIN:#:{
  xx_set | if ($istok(%xx_chan_except,$chan,44)) { halt }
  .hadd $+(-mu,%xx_temp_time) lastjoin $chan $chan $nick
}
alias F2 {
  xx_set | if ($hget(lastjoin,$active) == $null) { halt }
  var %xx_last $hget(lastjoin,$active)
  var %nick $gettok(%xx_last,2,32)
  var %host $gettok($address(%nick,5),2,64)
  var %chan $gettok(%xx_last,1,32)
  if (%xx_bd_write == yes) {
    if ((!$read(%xx_bd_path,-w,$+(%nick,;*))) || (!$read(%xx_bd_path,-w,$+(*;,%host,;*)))) {
      .write -il1 %xx_bd_path $+(%nick,$chr(59),%host,$chr(59),%xx_msg_kick)
    }
  }
  if ($me isop $active) { .mode %chan +bb $+(%nick,!*@*) $+(*!*@,%host) | .kick %chan %nick %xx_msg_kick } | return
}
Подпись автора

[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:#4898CD;}.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="https://forumstatic.ru/files/000d/c9/8c/34681.jpg"></td><td><a href="https://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

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

Удалите целиком предыдущую версию скрипта и попробуйте переустановить на свой клиент эту модификацию скрипта: # Mod v1.1

Hey Epic,

The code works wonderfully.. although, it doesnt ban the host once it quits or parts the #channel. These abusers are a lot faster and doesnt give enough time to type /bu nick reason and they just part. The earlier code posted in the first post could ban the user even if it parts or quits. Just wanted an addition to it where it could save the address in baduser.txt file in the format of nick;host;reason.

Код:
on $^*:HOTLINK:/(@[^\s)]+\56[^\s)\56]+)/S:#:{
  if ($me !isop $chan) && ($me !ishop $chan) { halt }
}
on $*:HOTLINK:/(@[^\s)]+\56[^\s)\56]+)/S:#:{
  !mode $chan $iif(*!* $+ $regml(1) isban $chan,-b,+b) *!* $+ $regml(1)          (write banned ip into baduser.txt file)
}

Everything else works absolutely fantastic.

Thanks & Regards,

Sleepyhead

9

1295,362 написал(а):

The code works wonderfully.. although, it doesnt ban the host once it quits or parts the #channel. These abusers are a lot faster and doesnt give enough time to type /bu nick reason and they just part. The earlier code posted in the first post could ban the user even if it parts or quits. Just wanted an addition to it where it could save the address in baduser.txt file in the format of nick;host;reason

Ок. Думаю, что я уже достаточно много внёс новых изменений в этот код, чтобы теперь его по праву можно было называть моей собственной версией скрипта.

Удалите полностью предыдущий код и попробуйте использовать эту новую версию скрипта:

Код:
#####################################################################
#   Название: Last Join User v1.0
#   Автор: Epic (epicnet@mail.ru, http://epicnet.ru)
#   Описание: При входе на канал нового пользователя скрипт запоминает его Ник+Хост, чтобы вы могли в течении установленного времени принять решение о выполнении Кик+Бан.
#   Управление: Через клавишу "F2" или при клике по Нику/Хосту пользователя в активном окне канала.
#####################################################################

alias -l xx_set {
  %xx_chan_except = #channel1,#channel2,#channel3
  %xx_pref_except = [!~&@%+]
  %xx_temp_time = 15
  %xx_msg_kick = You are not welcome here!
  %xx_bd_write = yes
  %xx_bd_path = scripts\BadUser\baduser.txt
}
---------------------------------------------------------------------
on !*:JOIN:#:{
  xx_set | if ($istok(%xx_chan_except,$chan,44)) { halt }
  var %h $ial($nick,1).host | if (!$hget(joindata,%h)) .hadd -m joindata %h $nick
  .hadd $+(-mu,%xx_temp_time) lastjoin $chan $chan $nick
}
alias F2 {
  xx_set | if ($hget(lastjoin,$active) == $null) { halt }
  var %xx_last $hget(lastjoin,$active) | var %nick $gettok(%xx_last,2,32)
  var %host $gettok($address(%nick,5),2,64) | var %chan $gettok(%xx_last,1,32)
  if (%xx_bd_write == yes) {
    if ((!$read(%xx_bd_path,-w,$+(*;,%host,;*))) || (!$read(%xx_bd_path,-w,$+(%nick,;*)))) {
      .write -il1 %xx_bd_path $+(%nick,$chr(59),%host,$chr(59),%xx_msg_kick)
    }
  }
  if ($me isop $active) { .mode %chan +bb $+(%nick,!*@*) $+(*!*@,%host) | .kick %chan %nick %xx_msg_kick } | return
}
---------------------------------------------------------------------
on ^*:HOTLINK:*:#:{
  var %word $remove($1,<,>) | var %pattern1 /(@[^\s)]+\56[^\s)\56]+)/S
  var %pattern2 /([a-zA-Z_\Q\[]{}^`|\E][a-zA-Z0-9_\Q\[]{}^`|\E-]*)/S
  if ($regex(%word,%pattern2) && %word ison $chan) { if ($hotlink(event) == dclick) { hotkickban %word } | return }
  if ($regex($1,%pattern1)) { if ($hotlink(event) == dclick) { hotkickban $regml(1) } | return } | halt
}
alias -l hotkickban {
  if (@ isin $1) { var %host $remove($1,@) | var %nick $hget(joindata,%host) }
  else { var %nick $1 | var %host $gettok($address(%nick,5),2,64) } | xx_set
  if ($hget(lastjoin,$active) == $null) || ($nick($active,%nick,%xx_pref_except,*)) || (%nick == $me) { halt }
  if (%xx_bd_write == yes) {
    if ($read(%xx_bd_path,-w,$+(*;,%host,;*))) { echo -a $+("04,%host,") such data is already in the database. }
    else .write -il1 %xx_bd_path $+(%nick,$chr(59),%host,$chr(59),%xx_msg_kick)
  }
  if ($me isop $active) {
    .mode $active +bb $+(%nick,!*@*) $+(*!*@,%host) | if (%nick ison $active) .kick $active %nick %xx_msg_kick
  }
}
---------------------------------------------------------------------
Подпись автора

[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:#4898CD;}.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="https://forumstatic.ru/files/000d/c9/8c/34681.jpg"></td><td><a href="https://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]

10

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

Ок. Думаю, что я уже достаточно много внёс новых изменений в этот код, чтобы теперь его по праву можно было называть моей собственной версией скрипта.
Удалите полностью предыдущий код и попробуйте использовать эту новую версию скрипта

Hey Epic,

This is perfect! works awesomely fast and accurate without any error whatsoever. Thanks for the code bro..

Cheers!

Sleepyhead


Вы здесь » EpicNet.Ru - Форум IRC Чата » DEVELOPMENT - Разработка новых mIRC скриптов » Manual kick/ban with F2 button and click address