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.

Q auth

Help for those learning Tcl or writing their own scripts.
Post Reply
i
innu
Voice
Posts: 10
Joined: Sun Aug 20, 2006 4:36 pm

Q auth

Post by innu »

Code: Select all

bind raw - 354 qauth:who_info
bind raw - 315 qauth:end_of_who
bind pub - !auth qauth:who_pubcmd

proc getchanlogin {nick} {
  if {$nick == ""} { return } 
  putquick "WHO $nick n%na"
  sleep 1000
  global whois_replyarray
  set auth $whois_replyarray($nick)
  return $auth
}

proc qauth:who_info {from keyword text} {
  global whois_replyarray
  set targetnick [lindex $text 1]
  set auth [lindex $text 2]
  set whois_replyarray($targetnick) $auth
}

proc qauth:end_of_who {from keyword text} {
  global whois_replyarray
  set targetnick [lindex [split $text] 1]
  if {![info exists whois_replyarray($targetnick)]} {
    set whois_replyarray($targetnick) 0
  }
}

proc sleep {time} {
  after $time set end 1
  vwait end
}

proc qauth:who_pubcmd {nick host hand chan text} {
  putchan "#secretchannel" [getchanlogin $text]
}
I need to get auth from nick. I have seen many scripts, but they usually are taking auth name only from nicks who are in same channel where is the bot. I need to get their auth even, if he isn't in any channel.
This code problem, is that it dosent show auth name on first request.
s
smash
Halfop
Posts: 45
Joined: Mon Jul 31, 2006 12:33 pm

Post by smash »

Code: Select all

# Author : MeTroiD, #v1per on Quakenet.
	# Please don't be lame and rip my script.
	# I've made it for Quakenet but i assume if the ircd you want to use it on has the same RAW's you can use it just fine.
	set whois(author) "MeTroiD, #v1per on Quakenet"	

	# Version History
	# 0.1      - Made a start, first expermimental test.
	# 0.2-0.5  - Finished some more code
	# 0.6-0.8  - The script was fully functional
	# 0.9      - Removed some silly crap that didnt work for Quakenet anyhow (shows which server he was on)
	# 1.0      - Cleaned some of the code, and it works fine on Quakenet, It also shows idle time and signon time now.
	set whois(version) "0.10"
	# End of Version History

	# Config:
	# What is the minimum access someone needs to perform a whois with the bot?
	# o = global op, m = global master, n = global owner
	# |o = channel op, |m = channel master, |n = channel owner
	set whois(acc) "n|n"
	# End of Config

	bind pub $whois(acc) "!whois" whois:nick

	proc whois:nick { nickname hostname handle channel arguments } {
	global whois
      set target [lindex [split $arguments] 0]
	if {$target == ""} {
	putquick "PRIVMSG $channel :Please choose a target first."
	return 0
	}
	if {[string length $target] >= "14"} {
	putquick "PRIVMSG $channel :Sorry, That nickname is too long. Please try a user with less than 14 characters."; return
	}
	if {[regexp -all -- {[~\[\]\{\}\|\_\\]} $target]} {
	putquick "PRIVMSG $channel :Sorry, I can't whois a user with special characters in it."; return
	}
	putquick "WHOIS $target $target"
      set ::whoischannel $channel
	set ::whoistarget $target
	bind RAW - 401 whois:nosuch
	bind RAW - 311 whois:info
	bind RAW - 319 whois:channels
	bind RAW - 301 whois:away
	bind RAW - 313 whois:ircop
	bind RAW - 330 whois:auth
	bind RAW - 317 whois:idle
	}

	proc whois:putmsg { channel arguments } {
		putquick "PRIVMSG $channel :$arguments"
	}

	proc whois:info { from keyword arguments } {
		set channel $::whoischannel
		set nickname [lindex [split $arguments] 1]
		set ident [lindex [split $arguments] 2]
		set host [lindex [split $arguments] 3]
		set realname [string range [join [lrange $arguments 5 end]] 1 end]
		whois:putmsg $channel "$nickname - $ident@$host * $realname"
		unbind RAW - 311 whois:info
	}

	proc whois:ircop { from keyword arguments } {
		set channel $::whoischannel
		set target $::whoistarget
		whois:putmsg $channel "$target is an IRC Operator"
		unbind RAW - 313 whois:ircop
	}

	proc whois:away { from keyword arguments } {
		set channel $::whoischannel
		set target $::whoistarget
		set awaymessage [string range [join [lrange $arguments 2 end]] 1 end]
		whois:putmsg $channel "$target is away: $awaymessage"
		unbind RAW - 301 whois:away
	}

	proc whois:channels { from keyword arguments } {
		set channel $::whoischannel
		set channels [string range [join [lrange $arguments 2 end]] 1 end]
		set target $::whoistarget
		whois:putmsg $channel "$target on $channels"
		unbind RAW - 319 whois:channels
	}

	proc whois:auth { from keyword arguments } {
		set channel $::whoischannel
		set target $::whoistarget
		set authname [lindex [split $arguments] 2]
		whois:putmsg $channel "$target is authed as $authname"
		unbind RAW - 330 whois:auth
	}

	proc whois:nosuch { from keyword arguments } {
		set channel $::whoischannel
		set target $::whoistarget
		whois:putmsg $channel "No such nickname \"$target\""
		unbind RAW - 401 whois:nosuch
	}

	proc whois:idle { from keyword arguments } {
		set channel $::whoischannel
		set target $::whoistarget
		set idletime [lindex [split $arguments] 2]
		set signon [lindex [split $arguments] 3]
		whois:putmsg $channel "$target has been idle for [duration $idletime]. signon time [ctime $signon]"
		unbind RAW - 317 whois:idle
	}

	putlog "Public whois script $whois(version) by $whois(author)"
i
innu
Voice
Posts: 10
Joined: Sun Aug 20, 2006 4:36 pm

Post by innu »

put auth to channel or nick isn't hard. But i need to use auth-s in other procs. So somehow i need to return auth name.
Last edited by innu on Sat Jan 06, 2007 5:54 pm, edited 1 time in total.
m
metroid
Owner
Posts: 771
Joined: Wed Jun 16, 2004 2:46 am

Post by metroid »

wow, that script is old :)

(it's also not that good as it doesn't always remove the binds, I made a better one later)
i
innu
Voice
Posts: 10
Joined: Sun Aug 20, 2006 4:36 pm

Post by innu »

still need help!
Post Reply