// Some generic lists that may be used elsewhere tld = [com net org de us cz fr gb jp ro ru se uk ws] char_upper = [ABCDEFGHIJKLMNOPQRSTUVWXYZ] char_lower = [abcdefghijklmnopqrstuvwxyz] // Some generic commands that may be used elsewhere // SVN createine = [if (=s (getalias $arg1) "") [$arg1 = $arg2]] append = [$arg1 = (concat (getalias $arg1) $arg2)] // Return given string with all of its letters swapped to // lowercase/uppercase, usage: /charcase <0/1> charcase = [ local tmp1 tmp2 char tmp1 = $arg1 char = [? $arg1 $char_upper $char_lower] loop c (strlen $arg1) [ tmp2 = (substr $tmp1 $c 1) if (> (strstr (char (! $arg2)) $tmp2) -1) [ tmp1 = ( strreplace $tmp1 $tmp2 ( substr (char $arg2) (strstr (char (! $arg2)) $tmp2) 1 ) ) ] ] result $tmp1 ] // Half-assed command that is used as a helper for the one below. isnum = [ local tmp tmp = 1 loop n (strlen $arg1) [ if (< (strstr "0123456789." (substr $arg1 $n 1)) 0) [tmp = 0] ] result $tmp ] // Half-assed command that estimates whether given IP is valid or not. isip = [ && ( = (listlen (strreplace $arg1 . " ")) 4 ) ( < (listfind i (strreplace $arg1 . " ") [|| (> $i 255) (< $i 0)]) 0 ) (isnum $arg1) ] // Return the string with the lowest order in ASCII from given list, usage: (mins ) mins = [ local tmp tmp = (at $arg1 0) looplist i $arg1 [if () maxs = [ local tmp tmp = (at $arg1 0) looplist i $arg1 [if (>s $i $tmp) [tmp = $i]] result $tmp ] // Return given list with its strings sorted on a descending/ascenting // order (second argument 0/1) based on the ASCII order, usage: (sortlist <0/1>) sortlist = [ local tmp loop p (listlen $arg1) [ append tmp ( format [[%1]] ((? $arg2 maxs mins) (listdel $arg1 $tmp)) ) ] result $tmp ] // Alias variables for the first use createine _qc_servlist "" createine _qc_servname "" // Define some commands as helpers _qc_findserv = [listfind i $_qc_servlist [=s $arg1 (at $i 0)]] _qc_complete = [ _qc_servname = "" looplist i $_qc_servlist [append _qc_servname (at $i 0)] _qc_servname = (unescape (substr (sortlist $_qc_servname) 1)) looplist i "qc qcdelserv qcviewserv" [ listcomplete $i $_qc_servname ] ] _qc_info = [ local tmp tmp = (at $_qc_servlist (_qc_findserv $arg1)) 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)) ] // Below here lies the magic, user commands. qcaddserv = [ local tmp1 tmp2 tmp1 = (strreplace $arg2 . " ") tmp2 = (at (unescape $arg1) 0) cond (|| (> (_qc_findserv $arg1) -1) (isip $arg1)) [ error "^f3QC entry already exists or is invalid!" ] ( ? (>= $numargs 2) ( ? (< (indexof $tld (charcase (at $tmp1 (- (listlen $tmp1) 1)))) 0) (! (isip $arg2)) ) (! (isconnected)) ) [ error "^f3IP or Domain is invalid!" ] [ append _qc_servlist ( format [[%1 %2 %3]] $tmp2 ( ? (> $numargs 1) $arg2 (connectedip) ) ( ? (> $numargs 2) $arg3 (? (isconnected) (connectedport) 28785) ) ) echo "^f2QC ^f7entry^f2" $tmp2 "^f7has been included successfully!" _qc_complete ] ] qcdelserv = [ if (< (_qc_findserv $arg1) 0) [ error "^f3QC entry does not exist!" ] [ _qc_servlist = (listdel $_qc_servlist (format [[%1]] (at $_qc_servlist (_qc_findserv $arg1)))) echo "^f2QC ^f7entry^f2" $arg1 "^f7has been deleted successfully!" _qc_complete ] ] qclistserv = [ if (=s $_qc_servlist "") [error "^f3No registered entries!"] [ if $numargs [looplist i $_qc_servname [_qc_info $i]] [ echo (format "^f2%1^f7 Available servers: ^f2%2" (listlen $_qc_servname) (strreplace (prettylist $_qc_servname) "," "^f7,^f2")) ] ] ] qcviewserv = [ if (< (_qc_findserv $arg1) 0) [ error "^f3QC entry does not exist!" ] [_qc_info $arg1] ] qc = [ local tmp tmp = (at $_qc_servlist (_qc_findserv $arg1)) if (=s $_qc_servlist "") [error "^f3No registered entries!"] [ connect (at $tmp 1) (at $tmp 2) ] ] // Compile tab completion upon execution, just in case _qc_complete