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.

need flood protection for troll.tcl

Requests for complete scripts or modifications/fixes for scripts you didn't write. Response not guaranteed, and no thread bumping!
Post Reply
P
PrE
Voice
Posts: 10
Joined: Sat Jan 14, 2012 8:19 pm

need flood protection for troll.tcl

Post by PrE »

Here is the script, thanks if anyone can do this....

Code: Select all

#############################################################################################################
# Troll v2.0 TCL by spithash@DALnet                                                                         #
#                                                                                                           #
# Gets troll quotes and makes people suffer!                                                                #
# Version 2.0 is way different since there's no database in the file. It fetches the quotes by a website.   #
# Also, you can ".chanset #channel +troll" to enable it.                                                    #
# I added this just in case you don't want your trolls to be available globally.                            #
#############################################################################################################
# Any official release of troll.tcl will be announced in http://forum.egghelp.org/viewtopic.php?t=17078     #
# Official troll.tcl updates will be in egghelp.org's TCL archive,                                          #
# Or here: http://bsdunix.info/spithash/troll/troll.tcl                                                     #
# (Keep it to "puthelp" cause I didn't add any flood protection yet,                                        #
# and it may cause your bot "Excess Flood" quit if it's in "putserv" or "putquick",                         #
# if someone floods the !troll trigger or if the troll quote is too long.)                                  #
#############################################################################################################
# Credits: special thanks to: username & speechles who helped me with this :)                               #
#############################################################################################################
setudef flag troll
bind pub - !troll parce
proc parce {nick uhost hand chan text} {
    if {[channel get $chan troll]} {
::http::config -urlencoding utf-8 -useragent "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.8.1) Gecko/2006101023 Firefox/2.0"
set url [::http::geturl "http://rolloffle.churchburning.org/troll_me.php" -timeout 15000]
set data [::http::data $url]
::http::cleanup $url
regsub -all -- {\n} $data "" data;
regexp -nocase -- {<p .*?>(.*?)</p>} $data -> info
regsub -all -- {(<strong[^>]*>)|(</strong>)} $info "\002" info;
while { $info != "" } { 
    puthelp "PRIVMSG $chan :[string range $info 0 419]"
    set info [string range $info 420 end]
    }
  }
}
putlog "troll.tcl v2.0 by spithash@DALnet iz up and trollin'"
# EOF
User avatar
username
Op
Posts: 196
Joined: Thu Oct 06, 2005 9:20 am
Location: Russian Federation, Podolsk
Contact:

Post by username »

I add some antiflood code between

Code: Select all

# Troll antiflood #
:

Code: Select all

############################################################################################################# 
# Troll v2.0 TCL by spithash@DALnet                                                                         # 
#                                                                                                           # 
# Gets troll quotes and makes people suffer!                                                                # 
# Version 2.0 is way different since there's no database in the file. It fetches the quotes by a website.   # 
# Also, you can ".chanset #channel +troll" to enable it.                                                    # 
# I added this just in case you don't want your trolls to be available globally.                            # 
############################################################################################################# 
# Any official release of troll.tcl will be announced in http://forum.egghelp.org/viewtopic.php?t=17078     # 
# Official troll.tcl updates will be in egghelp.org's TCL archive,                                          # 
# Or here: http://bsdunix.info/spithash/troll/troll.tcl                                                     # 
# (Keep it to "puthelp" cause I didn't add any flood protection yet,                                        # 
# and it may cause your bot "Excess Flood" quit if it's in "putserv" or "putquick",                         # 
# if someone floods the !troll trigger or if the troll quote is too long.)                                  # 
############################################################################################################# 
# Credits: special thanks to: username & speechles who helped me with this :)                               # 
############################################################################################################# 
setudef flag troll 

# Troll antiflood #
set troll(delay) "15"
# Troll antiflood #

bind pub - !troll parce 
proc parce {nick uhost hand chan text} { 
    if {[channel get $chan troll]} { 

# Troll antiflood #
        if {[info exists troll(lasttime,$chan)] && [expr $troll(lasttime,$chan) + $troll(delay)] > [clock seconds]} {
            putserv "NOTICE $nick :Next command only after [expr $troll(delay) - [expr [clock seconds] - $troll(lasttime,$chan)]] seconds. Yon can use 1 request in $cmd(delay) seconds."
            return 0
        }
# Troll antiflood #

::http::config -urlencoding utf-8 -useragent "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.8.1) Gecko/2006101023 Firefox/2.0" 
set url [::http::geturl "http://rolloffle.churchburning.org/troll_me.php" -timeout 15000] 
set data [::http::data $url] 
::http::cleanup $url 
regsub -all -- {\n} $data "" data; 
regexp -nocase -- {<p .*?>(.*?)</p>} $data -> info 
regsub -all -- {(<strong[^>]*>)|(</strong>)} $info "\002" info; 

# Troll antiflood #
    set troll(lasttime,$chan) [clock seconds] 
# Troll antiflood #

while { $info != "" } { 
    puthelp "PRIVMSG $chan :[string range $info 0 419]" 
    set info [string range $info 420 end] 
    } 
 } 
} 
putlog "troll.tcl v2.0 by spithash@DALnet iz up and trollin'" 
# EOF
Архив TCL скриптов для ботов Eggdrop/Windrop:
http://egghelp.ru/
User avatar
Papillon
Owner
Posts: 724
Joined: Fri Feb 15, 2002 8:00 pm
Location: *.no

Post by Papillon »

Code: Select all

putserv "NOTICE $nick :Next command only after [expr $troll(delay) - [expr [clock seconds] - $troll(lasttime,$chan)]] seconds. Yon can use 1 request in $cmd(delay) seconds." 
just a small typo in here.

Code: Select all

$cmd(delay)
should off course be

Code: Select all

$troll(delay)
Elen sila lúmenn' omentielvo
P
PrE
Voice
Posts: 10
Joined: Sat Jan 14, 2012 8:19 pm

Post by PrE »

Thanks for the help but it doesn't seem to work for some reason, doesn't send the user notice and the script continues to work with no delay between commands.
User avatar
username
Op
Posts: 196
Joined: Thu Oct 06, 2005 9:20 am
Location: Russian Federation, Podolsk
Contact:

Post by username »

So lets wait untill spithash modify it properly.
Nobody can do it better then spithash.
Архив TCL скриптов для ботов Eggdrop/Windrop:
http://egghelp.ru/
User avatar
spithash
Master
Posts: 248
Joined: Thu Jul 12, 2007 9:21 am
Location: Libera
Contact:

Post by spithash »

Libera ##rtlsdr & ##re - Nick: spithash
Click here for troll.tcl
Post Reply