Advertisement
RaZgRiZ

QuickConnect 2.6

Mar 4th, 2012
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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_upper = [ABCDEFGHIJKLMNOPQRSTUVWXYZ]
  5. char_lower  = [abcdefghijklmnopqrstuvwxyz]
  6.  
  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. // lowercase/uppercase, usage: /charcase <string> <0/1>
  14. charcase = [
  15.     local tmp1 tmp2 char
  16.     tmp1 = $arg1
  17.     char = [? $arg1 $char_upper $char_lower]
  18.     loop c (strlen $arg1) [
  19.         tmp2 = (substr $tmp1 $c 1)
  20.         if (> (strstr (char (! $arg2)) $tmp2) -1) [
  21.             tmp1 = (strreplace $tmp1 $tmp2 (
  22.                 substr (char $arg2) (strstr (char (! $arg2)) $tmp2) 1
  23.             ))
  24.         ]
  25.     ]
  26.     result $tmp1
  27. ]
  28.  
  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.     && (
  42.         = (listlen (strreplace $arg1 . " ")) 4
  43.     ) (
  44.         < (listfind i (strreplace $arg1 . " ") [|| (> $i 255) (< $i 0)]) 0
  45.     ) (isnum $arg1)
  46. ]
  47.  
  48. // Return the string with the lowest order in ASCII from given list, usage: (mins <list>)
  49. mins = [
  50.     local tmp
  51.     tmp = (at $arg1 0)
  52.     looplist i $arg1 [if (<s $i $tmp) [tmp = $i]]
  53.     result $tmp
  54. ]
  55.  
  56. // Return the string with the highest order in ASCII from given list, usage: (maxs <list>)
  57. maxs = [
  58.     local tmp
  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.     result $tmp
  74. ]
  75.  
  76. // Alias variables for the first use
  77.  
  78. createine _qc_servlist ""
  79. createine _qc_servname ""
  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.     ]
  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. ]
  97.  
  98. // Below here lies the magic, user commands.
  99.  
  100. qcaddserv = [
  101.     local tmp1 tmp2
  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.         error "^f3IP or Domain is invalid!"
  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. ]
  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.     ]
  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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement