|
|
Read the english translation:
E' VIETATA la copia di questi contenuti dattiloscritti (e immagini varie) su altri siti, senza il mio permesso, e senza avermi citato come autore dei contenuti, assieme ad un link a questa pagina (SENZA nofollow). Tutti gli script che uso in mIRC sono fatti
da me, quindi ne aggiungo di nuovi o modifico i vecchi quando ne ho necessità.
Va da sé che uno script antispam è stata la primissima cosa
che ho fatto, non ne potevo più di ricevere inviti in query per entrare
in altri canali o visitare siti web.
Questo script, come ogni altro dello stesso
tipo, non fa altro che riconoscere delle parole chiavi o espressioni particolari
in un messaggio e ignorarlo senza farlo apparire se corrisponde al filtro.
Per iniziare potete scaricare questo
addon per caricare lo script in mIRC senza dover aggiungere manualmente
le righe nel pannello remote. La versione che scaricherete qui è quella
più aggiornata, ma la spiegazione che segue, se siete curiosi e volete
leggerla, copre il 90% del funzionamento dello script. Dopo aver decompresso
lo ZIP, leggete il file TXT per tutte le istruzioni (in inglese, ma o mangiate
questa minestra o vi buttate dalla finestra).
L'evento che in mIRC viene lanciato quando
si apre una query è il seguente:
on 1:OPEN:?:*:{....
Il punto interrogativo specifica che l'evento
dovrà attivarsi solo se si tratta di una query, e l'asterisco specifica
che qualunque messaggio in query verrà controllato.
Il mio script fa 4 cose: controlla se il
nick che manda un messaggio è un operatore in uno dei canali in cui
sono, e in questo caso non filtra il messaggio; se il nick che manda il messaggio
non è in nessuno dei miei canali il messaggio viene ignorato a prescindere.
Se il messaggio passa anche questo controllo, viene verificato che non vi
sia presente nessuna parola chiave che lo identifica come spam, altrimenti
la query viene subito chiusa e il messaggio viene aggiunto in una finestra
apposita dove verranno raccolte tutte le query non accettate, per verificare
che non ne sia stata rifiutata nessuna per sbaglio. Qualora il messaggio non
sia spam, lo script controlla se si è correntemente away, nel qual
caso ci sarà una risposta automatica che dice da quanto tempo si è
attivato l'away e che avverte che probabilmente si sta dormendo se è
notte fonda.
Questa è una versione completa dello
script (che funziona in mIRC 5.9, non so per le versioni precedenti):
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
}
Come personalizzare lo script:
- Aggiungere nuove parole chiave: semplicemente
mettete in fondo alla lista una riga come questa "if ($pos($1-,parole
chiave,1) != $null) goto lamer".
- Specificare frasi precise: potete anche pretendere
che lo script blocchi alcune parole chiave controllando la correttezza
di maiuscole/minuscole, in questo caso usate una riga come quella di prima,
ma con "$poscs" così diventerà"if
($poscs($1-,ParOle ChiAvE,1) != $null) goto lamer". Potete anche
controllare che il messaggio venga bloccato solo se comincia per quelle
parole e non se le contiene al suo interno, quindi sostituite "!=
$null" con"= 1" , esempio "if ($poscs($1-,ParOle
ChiAvE,1) = 1) goto lamer".
- Specificare messaggi interi: potete anche bloccare
il messaggio se e solo se è precisamente uguale alla frase che
specificate e non ha altre parole, aggiungendo la linea "if ($1-
== Frase specifica) goto lamer"; questo controllo non verifica
le maiuscole, per fare ciò sostituite"==" con"===",
come"if ($1- === FraSe sPecIfiCa) goto lamer".
- Modificare l'orario di sonno: lo script suppone
che io sia quasi sicuramente a dormire tra mezzanotte e le 9, quindi se
una query mi arriva in quell'intervallo di tempo la risposta dirà
l'orario locale e avvertirà che si sta dormendo. Potete modificare
i limiti orari correggendo ad esempio la sveglia dalle 9 alle 10; modificare
l'orario di mezzanotte è semplice se lo si vuole posticipare ad
esempio all'1 o alle 2, ma se lo si vuole anticipare bisogna modificare
del tutto la stringa, per cui vi consiglio di lasciar perdere a meno che
non conosciate voi stessi un pò di scripting.
post<li>
Se vi è piaciuta questa pagina, se sentite che ha aggiunto qualcosa alla vostra vita, allora lasciate un commento qui sotto, sarà apprezzato
commenti :: scrivi ::
|