All pastes #588828 Raw Edit

Mine

public text v1 · immutable
#588828 ·published 2007-06-25 18:36 UTC
rendered paste body
##############################################################################################
## Search

if { $disable(SEARCH) == 0 } {
    bind pub -|- "[set cmdpre]search" search

    proc search { nick host handle channel arg } {
	global db cmdpre vers outprefix disable

	set search [lrange $arg 0 end]
	if { [llength $arg] > 0 } {
	    set db_handle [mysqlconnect -host $db(HOST) -user $db(USER) -password $db(PASS) -db $db(NAME)]
	    set sql "SELECT shortname FROM $db(TABLE) WHERE channel='$channel' AND ("
            set options "Currently Searching: "
	    if { $disable(LOCATION) == 0 } {
		append sql "location LIKE '%$search%' OR "
		append options "Location, "
	    }
	    if { $disable(SPEED) == 0 } {
		append sql "speed LIKE '%$search%' OR "
		append options "Speed, "
            }
            if { $disable(STATUS) == 0 } {
		append sql "status LIKE '%$search%' OR "
		append options "Status, "
            }
            if { $disable(RATING) == 0 } {
		append sql "rating LIKE '%$search%' OR "
		append options "Rating, "
            }
            if { $disable(GADMIN) == 0 } {
		append sql "gadmin LIKE '%$search%' OR "
		append options "Gadmin, "
            }
            if { $disable(AVAILRATIO) == 0 } {
		append sql "availratio LIKE '%$search%' OR "
		append options "Open Ratio, "
            }
            if { $disable(AVAILLEECH) == 0 } {
		append sql "availleech LIKE '%$search%' OR "
		append options "Open Leech, "
            }
            if { $disable(SECTIONS) == 0 } {
		append sql "sections LIKE '%$search%' OR "
		append options "Sections, "
            }
            if { $disable(AFFILS) == 0 } {
		append sql "affils LIKE '%$search%' OR "
		append options "Affils, "
            }
## this part is messy and needs to be cleaned up
	    set lenoptions [string length $options]
	    set lenoptions [expr $lenoptions - 3]
	    set lensql [string length $sql]
	    set lensql [expr $lensql - 5]
	    set options [string range $options 0 $lenoptions]
            set sql [string range $sql 0 $lensql]
	    append sql ")"
	    			
	    if { $disable(DEBUG) == 0 } {
		putlog "$vers: Executing $sql"
	    }
	    putserv "PRIVMSG $channel :$outprefix $options"
	    
	    if {[set a [mysqlsel $db_handle $sql -flatlist]] == "" } {
		putserv "PRIVMSG $channel :$outprefix No results found!"
		mysqlclose $db_handle
		return 0
	    }
	    putserv "PRIVMSG $channel :$outprefix $a contains Search results"
            mysqlclose $db_handle
	} else {
	    putserv "PRIVMSG $channel :Usage: [set cmdpre]search <text>"
	}
    }
}


##############################################################################################
## Version