From: ijackson Date: Tue, 5 Sep 2000 22:49:54 +0000 (+0000) Subject: identpass works X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=3b07f544344a6c3f06a22060cae3db605ffc4cc5;p=ircbot.git identpass works --- diff --git a/bot.tcl b/bot.tcl index f3db5c1..42f0627 100755 --- a/bot.tcl +++ b/bot.tcl @@ -517,7 +517,7 @@ proc loadhelp {} { def_ucmd help { upvar #0 help_topics([irctolower [string trim $text]]) info - if {![info exists info]} { error "no help on $text, sorry." {} } + if {![info exists info]} { ucmdr "No help on $text, sorry." {} } ucmdr $info {} } @@ -533,14 +533,35 @@ proc manyset {list args} { } } -def_ucmd summon { - set target [ta_word] - ta_nomore +proc check_username {target} { if { [string length $target] > 8 || [regexp {[^-0-9a-z]} $target] || ![regexp {^[a-z]} $target] } { error "invalid username" } +} + +def_ucmd identpass { + set username [ta_word] + set passmd5 [md5sum [ta_word]] + ta_nomore + prefix_nick + upvar #0 nick_onchans($n) onchans + if {![info exists onchans] || ![llength $onchans]} { + ucmdr {} "You must be on a channel with me to identify yourself." + } + check_username $username + exec userv --timeout 3 $username << "$passmd5\n" > /dev/null \ + irc-identpass $n + upvar #0 nick_username($n) rec_username + set rec_username $username + ucmdr {} "Pleased to see you, $username." +} + +def_ucmd summon { + set target [ta_word] + ta_nomore + check_username $target prefix_nick upvar #0 lastsummon($target) ls diff --git a/helpinfos b/helpinfos index 09587fa..d6da2a0 100644 --- a/helpinfos +++ b/helpinfos @@ -57,7 +57,7 @@ remain on a channel that I'm on too. (See also `help invite'.) !identpass identpass Identification, for example with /blight-id, is actually done with - `identpass', which passes the md5sum of the password to `userv + `identpass', which feeds the md5sum of the password to `userv irc-identpass '. That must exit 0 if all is well. !invite