View difference between Paste ID: UbfWF38J and CKFefZFP
SHOW: | | - or go back to the newest paste.
1
// Some generic lists that may be used elsewhere
2
3
tld = [com net org de us cz fr gb jp ro ru se uk ws]
4
char_high = [ABCDEFGHIJKLMNOPQRSTUVWXYZ]
5
char_low  = [abcdefghijklmnopqrstuvwxyz]
6
7
// Some generic commands that may be used elsewhere
8
9-
createine = [ if (=s (getalias $arg1) "") [ $arg1 = $arg2 ] ]
9+
createine = [if (=s (getalias $arg1) "") [$arg1 = $arg2]]
10
append = [$arg1 = (concat (getalias $arg1) $arg2)]
11
12
charcase = [
13
	str = $arg1
14
	bool = [? $arg1 $char_high $char_low]
15
	loop c (strlen $arg1) [
16
		char = (substr $str $c 1)
17
		if (> (strstr (bool (! $arg2)) $char) -1) [
18
			str = (strreplace $str $char (substr (bool $arg2) (strstr (bool (! $arg2)) $char) 1))
19
		]
20
	]
21
	result $str
22
]
23
24
isnum = [
25
	bool = 1
26
	loop n (strlen $arg1) [
27
		if (< (strstr "0123456789." (substr $arg1 $n 1)) 0) [bool = 0]
28
	]
29
	result $bool
30
]
31
32
isip = [
33-
	result (
33+
	&& (
34-
		&& (
34+
		= (listlen (strreplace $arg1 . " ")) 4
35-
			= (listlen (strreplace $arg1 . " ")) 4
35+
	) (
36-
		) (
36+
		< (listfind i (strreplace $arg1 . " ") [|| (> $i 255) (< $i 0)]) 0
37-
			< (listfind i (strreplace $arg1 . " ") [|| (> $i 255) (< $i 0)]) 0
37+
	) (isnum $arg1)
38-
		) (isnum $arg1)
38+
39-
	)
39+
40
// Alias variables for the first use
41
42
createine qc_servlist ""
43
createine _qc_servname ""
44
45
// Define some commands as helpers
46
47
_qc_findserv = [listfind i $qc_servlist [=s $arg1 (at $i 0)]]
48
_qc_complete = [
49
	_qc_servname = ""
50
	looplist i $qc_servlist [append _qc_servname (at $i 0)]
51
	_qc_servname = (substr $_qc_servname 1)
52
	listcomplete qc $_qc_servname
53
	listcomplete delqcserv $_qc_servname
54
	listcomplete viewqcserv $_qc_servname
55
]
56
_qc_info = [
57
	qc_sel = (at $qc_servlist (_qc_findserv $arg1))
58
	echo (format "^f7Name: ^f2%1 ^f7%2: ^f2%3 ^f7Port: ^f2%4" (at $qc_sel 0) (? (isip (at $qc_sel 1)) IP Domain) (at $qc_sel 1) (at $qc_sel 2))
59
]
60
61
// Below here lies the magic, user commands.
62
63
qcaddserv = [
64
	cond (|| (> (_qc_findserv $arg1) -1) (isip $arg1)) [
65
		error "^f3QC entry already exists or is invalid!"
66
	] (
67
		? (>= $numargs 2) (
68
			? (< (indexof $tld (charcase (at (strreplace $arg2 . " ") (- (listlen (strreplace $arg2 . " ")) 1)))) 0) (! (isip $arg2))
69
		) (! (isconnected))
70
	) [
71
		error "^f3IP or Domain is invalid!"
72
	] [
73
		append qc_servlist (
74
			format ["%1 %2 %3"] @arg1 (
75
				? (> @numargs 1) $arg2 (connectedip)
76
			) (
77
				? (> @numargs 2) $arg3 (? (isconnected) (connectedport) 28785)
78
			)
79
		)
80
		echo "^f2QC ^f7entry^f2" $arg1 "^f7has been included successfully!"
81
		_qc_complete
82
	]
83
]
84
85
qcdelserv = [
86
	if (< (_qc_findserv $arg1) 0) [
87
		error "^f3QC entry does not exist!"
88
	] [
89
		qc_servlist = (listdel $qc_servlist (format ["%1"] (at $qc_servlist (_qc_findserv $arg1))))
90
		echo "^f2QC ^f7entry^f2" $arg1 "^f7has been deleted successfully!"
91-
		qc_servlist = (strreplace $qc_servlist (format ["%1"] (at $qc_servlist (_qc_findserv $arg1))) "")
91+
92
	]
93
]
94
95
qclistserv = [
96
	if (=s $qc_servlist "") [error "^f3No registered entries!"] [
97
		if $numargs [looplist i $_qc_servname [_qc_info $i]] [
98-
	if (!=s $qc_servlist "") [
98+
99
		]
100
	]
101
]
102-
	] [error "^f3No registered entries!"]
102+
103
qcviewserv = [
104
	if (< (_qc_findserv $arg1) 0) [
105
		error "^f3QC entry does not exist!"
106
	] [_qc_info $arg1]
107
]
108
109
qc = [
110
	if (=s $qc_servlist "") [error "^f3No registered entries!"] [
111
		connect (at (at $qc_servlist (_qc_findserv $arg1)) 1) (at (at $qc_servlist (_qc_findserv $arg1)) 2)
112-
	if (!=s $qc_servlist "") [
112+
113
]
114-
	] [error "^f3No registered entries!"]
114+
115
// Compile tab completion upon execution, just in case
116
117
_qc_complete
118