View difference between Paste ID: CZq7vSgf and w6BDGr8r
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]
4+
char_upper = [ABCDEFGHIJKLMNOPQRSTUVWXYZ]
5-
char_low  = [abcdefghijklmnopqrstuvwxyz]
5+
char_lower  = [abcdefghijklmnopqrstuvwxyz]
6
7-
// Some generic commands that may be used elsewhere
7+
// Some generic commands that may be used elsewhere // SVN
8
9
createine = [if (=s (getalias $arg1) "") [$arg1 = $arg2]]
10
append = [$arg1 = (concat (getalias $arg1) $arg2)]
11
12
// Return given string with all of its letters swapped to
13-
	_str = $arg1
13+
// lowercase/uppercase, usage: /charcase <string> <0/1>
14-
	_bool = [? $arg1 $char_high $char_low]
14+
15
	local tmp1 tmp2 char
16-
		_char = (substr $_str $c 1)
16+
	tmp1 = $arg1
17-
		if (> (strstr (_bool (! $arg2)) $_char) -1) [
17+
	char = [? $arg1 $char_upper $char_lower]
18-
			_str = (strreplace $_str $_char (substr (_bool $arg2) (strstr (_bool (! $arg2)) $_char) 1))
18+
19
		tmp2 = (substr $tmp1 $c 1)
20
		if (> (strstr (char (! $arg2)) $tmp2) -1) [
21-
	result $_str
21+
			tmp1 = (strreplace $tmp1 $tmp2 (
22
				substr (char $arg2) (strstr (char (! $arg2)) $tmp2) 1
23
			))
24
		]
25-
	_bool = 1
25+
26
	result $tmp1
27-
		if (< (strstr "0123456789." (substr $arg1 $n 1)) 0) [_bool = 0]
27+
28
29-
	result $_bool
29+
// Half-assed command that is used as a helper for the one below.
30
isnum = [
31
	local tmp
32
	tmp = 1
33
	loop n (strlen $arg1) [
34
		if (< (strstr "0123456789." (substr $arg1 $n 1)) 0) [tmp = 0]
35
	]
36
	result $tmp
37
]
38
39
// Half-assed command that estimates whether given IP is valid or not.
40
isip = [
41-
	_str = (at $arg1 0)
41+
42-
	looplist i $arg1 [if (<s $i $_str) [_str = $i]]
42+
43-
	result $_str
43+
44
		< (listfind i (strreplace $arg1 . " ") [|| (> $i 255) (< $i 0)]) 0
45
	) (isnum $arg1)
46
]
47-
	_str = (at $arg1 0)
47+
48-
	looplist i $arg1 [if (>s $i $_str) [_str = $i]]
48+
// Return the string with the lowest order in ASCII from given list, usage: (mins <list>)
49-
	result $_str
49+
50
	local tmp
51
	tmp = (at $arg1 0)
52
	looplist i $arg1 [if (<s $i $tmp) [tmp = $i]]
53-
	_list = ""
53+
	result $tmp
54
]
55-
		append _list (
55+
56-
			format ["%1"] ((? $arg2 maxs mins) (listdel $arg1 $_list))
56+
// Return the string with the highest order in ASCII from given list, usage: (maxs <list>)
57
maxs = [
58
	local tmp
59-
	result $_list
59+
	tmp = (at $arg1 0)
60
	looplist i $arg1 [if (>s $i $tmp) [tmp = $i]]
61
	result $tmp
62
]
63
64
// Return given list with its strings sorted on a descending/ascenting
65
// order (second argument 0/1) based on the ASCII order, usage: (sortlist <list> <0/1>)
66
sortlist = [
67
	local tmp
68
	loop p (listlen $arg1) [
69
		append tmp (
70
			format [[%1]] ((? $arg2 maxs mins) (listdel $arg1 $tmp))
71
		)
72
	]
73-
	_qc_servname = (substr (sortlist $_qc_servname) 1)
73+
	result $tmp
74
]
75
76
// Alias variables for the first use
77
78
createine _qc_servlist ""
79-
	_qc_sel = (at $_qc_servlist (_qc_findserv $arg1))
79+
80-
	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))
80+
81
// Define some commands as helpers
82
83
_qc_findserv = [listfind i $_qc_servlist [=s $arg1 (at $i 0)]]
84
_qc_complete = [
85
	_qc_servname = ""
86
	looplist i $_qc_servlist [append _qc_servname (at $i 0)]
87
	_qc_servname = (unescape (substr (sortlist $_qc_servname) 1))
88
	looplist i "qc qcdelserv qcviewserv" [
89
		listcomplete $i $_qc_servname
90-
			? (< (indexof $tld (charcase (at (strreplace $arg2 . " ") (- (listlen (strreplace $arg2 . " ")) 1)))) 0) (! (isip $arg2))
90+
91
]
92
_qc_info = [
93
	local tmp
94
	tmp = (at $_qc_servlist (_qc_findserv $arg1))
95
	echo (format "^f7Name: ^f2%1 ^f7%2: ^f2%3 ^f7Port: ^f2%4" (at $tmp 0) (? (isip (at $tmp 1)) IP Domain) (at $tmp 1) (at $tmp 2))
96-
			format ["%1 %2 %3"] @arg1 (
96+
97-
				? (> @numargs 1) $arg2 (connectedip)
97+
98
// Below here lies the magic, user commands.
99-
				? (> @numargs 2) $arg3 (? (isconnected) (connectedport) 28785)
99+
100
qcaddserv = [
101
	local tmp1 tmp2
102-
		echo "^f2QC ^f7entry^f2" $arg1 "^f7has been included successfully!"
102+
	tmp1 = (strreplace $arg2 . " ")
103
	tmp2 = (at (unescape $arg1) 0)
104
	cond (|| (> (_qc_findserv $arg1) -1) (isip $arg1)) [
105
		error "^f3QC entry already exists or is invalid!"
106
	] (
107
		? (>= $numargs 2) (
108
			? (< (indexof $tld (charcase (at $tmp1 (- (listlen $tmp1) 1)))) 0) (! (isip $arg2))
109
		) (! (isconnected))
110
	) [
111-
		_qc_servlist = (listdel $_qc_servlist (format ["%1"] (at $_qc_servlist (_qc_findserv $arg1))))
111+
112
	] [
113
		append _qc_servlist (
114
			format [[%1 %2 %3]] $tmp2 (
115
				? (> $numargs 1) $arg2 (connectedip)
116
			) (
117
				? (> $numargs 2) $arg3 (? (isconnected) (connectedport) 28785)
118
			)
119
		)
120
		echo "^f2QC ^f7entry^f2" $tmp2 "^f7has been included successfully!"
121
		_qc_complete
122
	]
123
]
124
125
qcdelserv = [
126
	if (< (_qc_findserv $arg1) 0) [
127
		error "^f3QC entry does not exist!"
128
	] [
129
		_qc_servlist = (listdel $_qc_servlist (format [[%1]] (at $_qc_servlist (_qc_findserv $arg1))))
130
		echo "^f2QC ^f7entry^f2" $arg1 "^f7has been deleted successfully!"
131
		_qc_complete
132
	]
133-
		connect (at (at $_qc_servlist (_qc_findserv $arg1)) 1) (at (at $_qc_servlist (_qc_findserv $arg1)) 2)
133+
134
135
qclistserv = [
136
	if (=s $_qc_servlist "") [error "^f3No registered entries!"] [
137
		if $numargs [looplist i $_qc_servname [_qc_info $i]] [
138
			echo (format "^f2%1^f7 Available servers: ^f2%2" (listlen $_qc_servname) (strreplace (prettylist $_qc_servname) "," "^f7,^f2"))
139
		]
140-
140+
141
]
142
143
qcviewserv = [
144
	if (< (_qc_findserv $arg1) 0) [
145
		error "^f3QC entry does not exist!"
146
	] [_qc_info $arg1]
147
]
148
149
qc = [
150
	local tmp
151
	tmp = (at $_qc_servlist (_qc_findserv $arg1))
152
	if (=s $_qc_servlist "") [error "^f3No registered entries!"] [
153
		connect (at $tmp 1) (at $tmp 2)
154
	]
155
]
156
157
// Compile tab completion upon execution, just in case
158
159
_qc_complete