|
|
Leggi la traduzione italiana:
It is FORBIDDEN to copy these written contents (and screenshots/images) to other websites, without my permission and without crediting me and putting a link to this page (WITHOUT nofollow). I add or update my scripts as it become needed.
So, an antispam script is one among the first I did, since, no matter what
channels you lurk in, there's always a lamer sending ads of websites, channels,
whatever.
An antispam script does nothing else that
recognising some specified patterns in a query window, and ignoring it if
it has the appearance of spam.
Briefly, you can download this
addon to load from mIRC instead of adding the lines yourself. Instructions
of use, along with possible changes you may need to make, are included in
the TXT file itself. If you want to edit the lines yourself, or just want
to know how the script works, continue reading.
The event in mIRC which triggers the opening
of a query window is on OPEN, and the following lines will show how
to use it:
on 1:OPEN:?:*:{....
The "?" specifies that the event
will trigger only query windows, and the "*" specifies no particular
text matches for now (we are going to include all the matches in the body
of the script).
My script does 4 things: check if the messaging
nick is an operator in one of the channels I am in, and in this case does
not filter the message, otherwise it will be processed. If the user who sent
you the message is in none of your channels, the message is ignored by default.
If it is all ok, another procedure checks if I am away, and in that case tells
the nick that I may not be at the computer, or, if it's late, that I also
may be sleeping. If the message is recognised as spam, the window is closed,
and a minimized log window is open (if it doesn't already exist), where you
can check the supposed spam messages you received, so to correct te script
if some of them weren't spam.
Here's the full text script (note: this
script works under mIRC v5.9, don't know about older versions):
on 1:OPEN:?:*:{
var %Ghost
set %Ghost 1
var %Cnt
set %Cnt 1
:Loop
//if ($nick isop $chan(%Cnt)) goto allok
//if ($ialchan($nick,$chan(%Cnt),1) != $null) set %Ghost 0
inc %Cnt
//if (%Cnt <= $chan(0)) goto Loop
//if (%Ghost == 1) goto absent
if ($strip($1-) == hello,) goto lamer
if ($strip($1-) == hello) goto lamer
if ($strip($1-) === hi) goto lamer
if ($strip($1-) == hallo) goto lamer
if ($strip($1-) == holla) goto lamer
if ($pos($strip($1-),#,1) != $null) goto lamer
if ($pos($strip($1-),j o i n,1) != $null) goto lamer
if ($pos($strip($1-),how are you,1) != $null) goto lamer
if ($pos($strip($1-),how are u,1) != $null) goto lamer
if ($pos($strip($1-),www.,1) != $null) goto lamer
if ($pos($strip($1-),slm,1) != $null) goto lamer
if ($pos($strip($1-),asl,1) != $null) goto lamer
if ($pos($strip($1-),gamez,1) != $null) goto lamer
if ($pos($strip($1-),leech,1) != $null) goto lamer
if ($pos($strip($1-),join,1) != $null) goto lamer
if ($pos($strip($1-),plz come,1) != $null) goto lamer
if ($pos($strip($1-),pls come,1) != $null) goto lamer
if ($pos($strip($1-),/server,1) != $null) goto lamer
if ($pos($strip($1-),www.cheatos.com,1) != $null) goto lamer
if ($pos($strip($1-),serv,1) != $null) goto lamer
if ($pos($strip($1-),click here,1) != $null) goto lamer
if ($pos($strip($1-),xguest,1) != $null) goto lamer
if ($pos($strip($1-),/server,1) != $null) goto lamer
if ($pos($strip($1-),check out my pics,1) != $null) goto lamer
if ($pos($strip($1-),check my pics,1) != $null) goto lamer
if ($pos($strip($1-),http://,1) != $null) goto lamer
if ($pos($strip($1-),sex,1) != $null) goto lamer
if ($pos($strip($1-),porn,1) != $null) goto lamer
if ($pos($strip($1-),we need,1) != $null) goto lamer
if ($pos($strip($1-),chat,1) != $null) goto lamer
if ($pos($strip($1-),Matches for,1) == 1) goto Results
goto allok
:absent
/query $nick Not in any of my channels. Message ignored.
/close -m $nick
goto end
:lamer
/query $nick This message's been detected as an invite/whatever else, so this window is being closed. My script can't be 100% accurate, so sorry if it's not your case.
/close -m $nick
//if ($window(@lamerz,1) == $null) /window -n @lamerz
//aline -hp @lamerz 9 [ $time ] 7 < $nick > 8 $1-
goto end
:allok
//if ($away == $true) {
//if ($asctime(H) < 9) //query $nick [Automated Response] It is $asctime(H:nn) $+ $asctime(tt) here, and I am away ( $+ $duration($idle,2) idle), so I may be sleeping.
else //query $nick [Automated Response] I am away ( $+ $duration($idle,2) idle). I could answer you if I'm here and the speakers are on ;-)
}
:end
}
HTML doesn't allow easy indenting, but when
you'll copy/paste this in your mIRC/Remote panel, accessible by pressing the
button , and then press the [OK] button,
it will be automatically indented.
Important: check if your Remote Panel already
contains an [on *:OPEN:?:...] event. In this case, either you did that
script, so you don't need me to tell you how to modify it, or you had another
script installed, like Polaris, Siralop, Invision, whatever and it
probably includes an antispam routine itself, so you don't need this guide.
How you can customize this script:
- Add new keywords: if you notice that some spam
doesn't get filtered, you can add the peculiar words in it to the list,
just by copying a line and substituting the keywords. For example, if
they open a query window which starts like this: "Hello <yournick>,"
(while nobody usually opens such query windows just to chat), simply add
a line like "if ($pos($1-,Hello <yournick>,,1) != $null)
goto lamer" among the others.
- Specify detailed patterns: you can also check
case sensitive keywords. For example, if your nick is JoE^ and you want
the above keywords to be case sentitive, put the same line, but substitute
"$pos" with "$poscs" so it will become
"if ($poscs($1-,Hello JoE^,,1) != $null) goto lamer".
Also you can determine if the message must start with those keywords,
and not just contain them. In that case, substitute "!= $null"
with "= 1" so the line will become "if ($poscs($1-,Hello
JoE^,,1) = 1) goto lamer".
- Specify whole messages: you can as well filter
exact sentences, instead of checking if a sentence contains some keywords.
In that case simply add a line like "if ($1- == Hello,) goto lamer"
which for example will trigger on evey query window equal to "Hello,".
This is not case sensitive; if you want a case sensitive check substitute
"==" with "===", like "if ($1-
=== Hello,) goto lamer".
- Modify the sleep time: my supposed sleep time
goes from 0:00 to 8:59; means that a query window received between these
times will be answered with the "I am sleeping" message. You
can correct this by modifying the Hour time, from 9 to 10 for example,
if you want the interval to end at 9:59, or to 8, if you want instead
7:59. If you want to modify the first time, 0:00, you should also add
some text to the script. It can be easily done, anyway I don't have right
now the time to add a tutorial on this, plus I don't think it's of vital
importance wheter the script guesses exactly wheter you are sleeping or
not.
post<li>
If you liked this page, if you feel it added something to your life, then leave a comment below, it will be appreciated
comments :: write ::
Ephestione
21 Feb 2010, 12:09
Thank you for your
comment Abdul.
This script surely
worked very well
back in my IRC days,
several years ago.
Anyway this script
doesn't allow you to
set the message
everytime, it just
says that you've
been idle, but you
can easil modify it
if you know
something about mIRC
scripting, to set a
different message
everytime.
Abdul Q
21 Feb 2010, 04:09
Hi, Thanks you for
this. I'm just
looking for
something like this
and I found it here.
Hopefully it will
working well.
Btw, I'm just
wondering about away
message. If let say
I away from my pc
and go to shopping
for a while, is
there any button or
command to set the
away status first so
the script will take
an action?
|