Love the site it helped me a huge amount!
I have found a script that searches servers on game-monitor.com. I was wondering if someone could help me modify it to do a player search, as I'n not so good with this side of things.
For example "!player Bob" and it returns the server and names for all those players with the name bob.
The script is below
Code: Select all
# Settings
# Bind key? Default: !ip
set game(trigger) "!player"
# Get-url timeout. Recommed to keep this as default
set game(timeout) "60000"
#########################################################
## Don't edit below unless you know what you're doing. ##
#########################################################
bind pub - $::game(trigger) lookup
proc lookup {nick uhost hand chan arg} {
global game
# Check if $arg exists
if {![regexp -- {^(.+?):(.+?)$} $arg]} { putmsg $chan "Right format is: $::game(trigger) IP"; return }
# Set formdata
set formdata [::http::formatQuery search $arg type server]
# Going to url
::http::config -useragent "Mozilla/4.0"
if {[catch {set tok [::http::geturl http://www.game-monitor.com/search.php?$formdata -timeout $::game(timeout)]} error]} {
putlog "Error trying connect to url: $error"
return 1
}
if {[::http::ncode $tok] != 200} {
putlog "Error connecting to url: [::http::code $tok]"
::http::cleanup $tok
return 1
}
# Went to url, setting data
set data [::http::data $tok]
# Cleaning
::http::cleanup $tok
# Regex time
foreach "- title players map gamename" [regexp -all -inline -expanded -- {
<tr\sclass="search_result.+? # find the part where the info is
/GameServer/.+?/GameServer/.+?>(.+?)<.+? # server name
<tr\sclass="search_result.+? # jump to the next part
color=.+?(\d+?/\d+?)[^0-9].+? # players
<a\shref="/MapSearch/.+?>(.+?)<.+? # map name
title="(.+?)" # game name
} $data] {
lappend matches [list $title $players $map $gamename]
}
# Shout the result
if {![info exists matches]} {
putmsg $chan "Did not find anything for $arg"
return 1
} else {
foreach match [lrange $matches 0 2] {
foreach "title players map gamename" $match {
putmsg $chan "\002Title\002: [join $title] \002Map\002: [join $map] \002Players\002: [join $players]"
}
}
if {[llength $matches] > 3} {
putmsg $chan "Found [expr "[llength $matches] - 3"] more match(es) but I'm not gonna show them to you :P"
}
}
}