This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.
For more information, see this announcement post . Click the X in the top right-corner of this box to dismiss this message.
Requests for complete scripts or modifications/fixes for scripts you didn't write. Response not guaranteed, and no thread bumping!
simo
Revered One
Posts: 1080 Joined: Sun Mar 22, 2015 2:41 pm
Post
by simo » Sun Dec 04, 2016 11:29 am
how to add exeptions for nicks/hosts in this anti idle tcl
Code: Select all
# - Using -
# Type in partyline:
# .chanset #help maxidle <time in minutes>
# If set 0 channel's check will be ignored.
# Punishing method (1 = Kick, 2 = Kick/Ban)
set pmethod 2
# Ban time in minutes.
set bantime 1
# Kick's reason
set aidlereason "4NO IDLING! "
# Exception's flags
set flags f|f
# Kick op? (0 = Yes, 1 = No)
set kickop 1
# Kick voice? (0 = Yes, 1 = No)
set kickvoice 1
#Check for idling users every minutes.
bind time - * aidle:checkidle
setudef int maxidle
proc aidle:checkidle { min hour day month year } {
global botnick flags kickop kickvoice
foreach chan [channels] {
if {![channel get $chan "maxidle"]} {continue}
foreach nick [chanlist $chan] {
if {$nick == $botnick} {continue}
if {([isop $nick $chan]) && ($kickop)} {continue}
if {([isvoice $nick $chan]) && ($kickvoice)} {continue}
if {[matchattr [nick2hand $nick] $flags] == 1} {continue}
if {[getchanidle $nick $chan] > [channel get $chan "maxidle"]} {
aidle:punish $chan $nick [channel get $chan "maxidle"]
}
}
}
}
proc aidle:punish { channel nick idletime } {
global pmethod aidlereason bantime
regsub -all "%idletime" $aidlereason $idletime aidlereason
switch $pmethod {
1 { putquick "MODE $channel -qaho $nick $nick $nick $nick" -next }
3 { putserv "KICK $channel $nick :$aidlereason" }
2 {
#putserv "KICK $channel $nick :$aidlereason"
# putquick "MODE $channel -qaho $nick $nick $nick $nick"
putquick "MODE $channel -qaho $nick $nick $nick $nick" -next
#utimer 300 "pushmode $channel -b *!*@[lindex [split [getchanhost $nick $channel] @] 1]"
}
}
}
Get_A_Fix
Master
Posts: 206 Joined: Sat May 07, 2005 6:11 pm
Location: New Zealand
Post
by Get_A_Fix » Sun Dec 04, 2016 9:30 pm
First, set the exempt list in the settings area.
Code: Select all
# Set nickname or host exemptions
set exemptlist {
"bob"
"*.host.mask.etc"
}
Then, you'd want to add the argument to your list of globals in the aidle:punish proc.
Code: Select all
global exemptlist pmethod aidlereason bantime
And finally, a string match to the aidle:punish procedure.
Code: Select all
if {[string match -nocase $exemptlist $nick] || [string match $exemptlist [getchanhost $nick $channel]]} {return}
We explore.. and you call us criminals. We seek after knowledge.. and you call us criminals. We exist without skin color, without nationality, without religious bias.. and you call us criminals.
simo
Revered One
Posts: 1080 Joined: Sun Mar 22, 2015 2:41 pm
Post
by simo » Mon Dec 05, 2016 11:41 am
thnx Get_A_Fix edited it and testing will let you know about results
simo
Revered One
Posts: 1080 Joined: Sun Mar 22, 2015 2:41 pm
Post
by simo » Mon Dec 05, 2016 1:56 pm
tested it it doesnt seem to exempt
this is what i have so far:
Code: Select all
# Set nickname or host exemptions
set exemptlist {
"^__^"
"*.I.Am.Me."
}
# - Using -
# Type in partyline:
# .chanset #help maxidle <time in minutes>
# If set 0 channel's check will be ignored.
# Punishing method (1 = Kick, 2 = Kick/Ban)
set pmethod 2
# Ban time in minutes.
set bantime 1
# Kick's reason
set aidlereason "14,1IPT Account help ONLY! state your user name and issue then wait patiently. Do NOT spam the channel. 4NO IDLING! 4DO NOT ASK FOR INVITES HERE! DO NOT PM ANYONE HERE!"
# Exception's flags
set flags f|f
# Kick op? (0 = Yes, 1 = No)
set kickop 1
# Kick voice? (0 = Yes, 1 = No)
set kickvoice 1
#Check for idling users every minutes.
bind time - * aidle:checkidle
setudef int maxidle
proc aidle:checkidle { min hour day month year } {
global botnick flags kickop kickvoice
foreach chan [channels] {
if {![channel get $chan "maxidle"]} {continue}
foreach nick [chanlist $chan] {
if {$nick == $botnick} {continue}
if {([isop $nick $chan]) && ($kickop)} {continue}
if {([isvoice $nick $chan]) && ($kickvoice)} {continue}
if {[matchattr [nick2hand $nick] $flags] == 1} {continue}
if {[getchanidle $nick $chan] > [channel get $chan "maxidle"]} {
aidle:punish $chan $nick [channel get $chan "maxidle"]
}
}
}
}
proc aidle:punish { channel nick idletime } {
#global pmethod aidlereason bantime
global exemptlist pmethod aidlereason bantime
if {[string match -nocase $exemptlist $nick] || [string match $exemptlist [getchanhost $nick $channel]]} {return}
regsub -all "%idletime" $aidlereason $idletime aidlereason
switch $pmethod {
1 { putquick "MODE $channel -qaho $nick $nick $nick $nick" -next }
3 { putserv "KICK $channel $nick :$aidlereason" }
2 {
#putserv "KICK $channel $nick :$aidlereason"
# putquick "MODE $channel -qaho $nick $nick $nick $nick"
putquick "MODE $channel -qaho $nick $nick $nick $nick" -next
#utimer 300 "pushmode $channel -b *!*@[lindex [split [getchanhost $nick $channel] @] 1]"
}
}
}
SpiKe^^
Owner
Posts: 831 Joined: Fri May 12, 2006 10:20 pm
Location: Tennessee, USA
Contact:
Post
by SpiKe^^ » Mon Dec 05, 2016 6:08 pm
That won't work, that's not how string match wants its stuff...
I might remove this entire line
Code: Select all
if {[string match -nocase $exemptlist $nick] || [string match $exemptlist [getchanhost $nick $channel]]} {return}
and replace it with something more like
Code: Select all
set uhost [getchanhost $nick $channel]
foreach mask $exemptlist {
if {[string match -nocase $mask $nick!$uhost]} { return }
}
Then in the exempt list setting use fully qualified irc masks (nick!username@host)
so to exempt a nick: somenick!*
exempt a masked host: *@*.some.domain.com
etc..................
goodluck
simo
Revered One
Posts: 1080 Joined: Sun Mar 22, 2015 2:41 pm
Post
by simo » Mon Dec 05, 2016 8:20 pm
tnx SpiKe^^ ill try that and test it
Get_A_Fix
Master
Posts: 206 Joined: Sat May 07, 2005 6:11 pm
Location: New Zealand
Post
by Get_A_Fix » Tue Dec 06, 2016 2:51 am
Strange, it has worked for me in the past. Alternatively, as the exemptlist is a list, you could lsearch to match.
We explore.. and you call us criminals. We seek after knowledge.. and you call us criminals. We exist without skin color, without nationality, without religious bias.. and you call us criminals.