login.undernet.tcl

login.undernet.tcl

TCL script that logins to X on undernet using specific commands.

Postat de Copyright Categorie Review user Vizualizari Data
btc NiX chanops Cod testat 497 2023-12-25 12:29:39

#######################################
##   auto login your bot on X or W   ##
##       by [email protected]      ##
#######################################

#checktime
set uz(chktime) 3

#debug
set uz(debug) 0

bind dcc o +login +login
proc +login {hand idx text} {
	global uzc
	set text [string tolower $text]
	if {[llength $text] != 3} {
		putdcc $idx "Usage : .+login <x/w> <#channel> <password>"
		return 0
	} elseif {[lindex $text 0] != "x" && [lindex $text 0] != "w"} {
		putdcc $idx "you must specify the bot (X or W)"
		return 0
	} elseif {![string match #* [lindex $text 1]]} {
		putdcc $idx "[lindex $text 1] is not a valid channel"
		return 0
	} else {
		set f [open "[lindex $text 1].login" w]
		puts $f "$text"
		close $f
		set uzc([lindex $text 1]) "$text"
		return 1
	}
}
bind dcc o -login -login
proc -login {hand idx text} {
	global uzc
	set text [string tolower $text]
	if {[llength $text] != 1} {
		putdcc $idx "Usage: .-login <#channel>"
		return 0
	} elseif {![file exists [lindex $text 0].login]} {
		putdcc $idx "[lindex $text 0] is not a valid channel"
		return 0
	} else {
		file delete [lindex $text 0].login
		catch {unset uzc([lindex $text 0])}
		return 1
	}
}
bind dcc o login login
proc login {hand idx text} {
	global uz uzc
	putdcc $idx "      XW-login-undernet.tcl      "
	putdcc $idx ""
	putdcc $idx ".+login <x/w> <#channel> <password>"
	putdcc $idx ".-login <#channel>"
	putdcc $idx ""
	putdcc $idx "login list :"
	foreach a [array name uzc] {
		putdcc $idx "bot: [string toupper [lindex $uzc($a) 0]] - chan: [lindex $uzc($a) 1]"
	}
	putdcc $idx ""
}
if {![catch {glob *.login} listuz]} {
	foreach u $listuz {
		set f [open "$u" r]
		set uzctmp [gets $f]
		set uzc([lindex $uzctmp 1]) $uzctmp
		close $f
	}
}
proc :login: {} {
	global uz uzc
	foreach a [array name uzc] {
		if {[validchan [lindex $uzc($a) 1]]} {
			if {(![botisop [lindex $uzc($a) 1]]) && ([isop X [lindex $uzc($a) 1]] || [isop W [lindex $uzc($a) 1]])} {
				if {[lindex $uzc($a) 0] == "x"} {
					putserv "PRIVMSG [email protected] :LOGIN [lrange $uzc($a) 1 end]"
					putserv "PRIVMSG X :OP [lindex $uzc($a) 1]"
					if {$uz(debug) == 1} {putlog "PRIVMSG [email protected] :LOGIN [lindex $uzc($a) 1]"}
				} else {
					putserv "PRIVMSG [email protected] :LOGIN [lrange $uzc($a) 1 end]"
					putserv "PRIVMSG W :OP [lindex $uzc($a) 1]"
					if {$uz(debug) == 1} {putlog "PRIVMSG [email protected] :LOGIN [lindex $uzc($a) 1]"}
				}
			}
		} else {
			if {$uz(debug) == 1} {putlog "[lindex $uzc($a) 0] != validchan"}
		}
	}
	timer uz(chktime) :login:
}

foreach t [timers] {
	if {[lindex $t 1] == ":login:"} {killtimer [lindex $t 2]}
}

:login:

putlog "\[XW-login-undernet.tcl - (.login / .+login / .-login)\]"