Advertisement
Oasiz

Oasiz IRCX API v2 Auth Tool

Nov 18th, 2012
497
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 9.22 KB | None | 0 0
  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ;;;;;;;;; Oasiz IRCX API Auth Tool ;;;;;;;;;;
  3. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  4.  
  5. ;; VERSION  2.1
  6. ;; AUTHOR   Rob Hildyard
  7. ;; DATE     15.11.15
  8. ;; SITE     www.oasiz.com
  9.  
  10. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  11.  
  12. ;; IMPORTANT: This script requires Oasiz IRCX
  13. ;; API v2 Auth: http://oasiz.co/c
  14.  
  15. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  16.  
  17. menu status {
  18.   Oasiz API Auth: if (!$dialog(oasiz)) dialog -m oasiz.api oasiz.api
  19. }
  20.  
  21. dialog oasiz.api {
  22.   ;; ID , LEFT, TOP, WIDTH, HEIGHT
  23.   title "Oasiz IRCX Auth Tool v2.1"
  24.   size -1 -1 123 147
  25.   option dbu
  26.  
  27.   text "API Information:", 42, 6 4 40 8, left
  28.   link "click here", 812, 47 4 60 8
  29.  
  30.   list 1,5 15 112 45
  31.  
  32.   text "Last Updated:", 10, 6 60 40 8, left
  33.   text "N/A", 45, 45 60 75 8, left
  34.  
  35.   button "Add", 346, 5 70 36 11,
  36.   button "Delete", 365, 43 70 36 11,
  37.   button "Update", 8, 82 70 36 11,
  38.  
  39.   text "Server:", 100, 6 87 35 8, left
  40.   check "Main", 110, 27 87 23 8,
  41.   check "Groups", 130, 50 87 26 8,
  42.   button "Connect", 34, 82 85 36 11,
  43.  
  44.   box "Status", 4, 6 98 112 33, read multi left
  45.   edit -, 44, 11 107 102 19, read multi left
  46.   text "Copyright © 2015", 9, 24 134 46 8, left
  47.   link "Oasiz", 12, 70 134 30 8
  48. }
  49.  
  50. on *:dialog:oasiz.api:init:*: {
  51.   ;; Server check boxes
  52.   if ( $readini(oasiz.api.ini,n,settings,s) === M ) { did -c $dname 110 }
  53.   if ( $readini(oasiz.api.ini,n,settings,s) === G ) { did -c $dname 130 }
  54.   if ( $readini(oasiz.api.ini,n,settings,s) === B ) { did -c $dname 110 | did -c $dname 130 }
  55.   var %dolist = $oasiz.authtool.apidata(list)
  56. }
  57.  
  58. on *:dialog:oasiz.api:sclick:1: {
  59.   ;; Selecting account API in list
  60.   var %a = $oasiz.authtool.apidata(match, $did($dname,1).seltext)
  61.   if ( %a !== $null ) {
  62.     ;; enable "update/delete" button
  63.     did -e $dname 8 | did -e $dname 365
  64.     writeini -n oasiz.api.ini settings current_api %a
  65.     %_oa.authcode = $readini(oasiz.api.ini,n,%a,a)
  66.     $oasiz.authtool.lastupdated($oasiz.authtool.apidata(match, $did($dname,1).seltext))
  67.   }
  68.   var %checkbtn = $oasiz.authtool.checkbutton
  69. }
  70.  
  71. ;;; Add new account API data
  72. on *:dialog:oasiz.api:sclick:346: {
  73.   var %n = $$?="Step 1 of 3: Enter a(ny) name/reference for this account.", %k = $$?="Step 2 of 3: Enter API key:", %p = $$?*="Step 3 of 3: Enter API password:"
  74.   ;; Validate data
  75.   var %a = $iif( $readini(oasiz.api.ini,n,%k,k), added, updated )
  76.   if ( $len(%k) != 36 || $len(%p) != 32 ) { $oasiz.authtool.msg( Input error: Invalid API key/password detected ) | return }
  77.   ;; Looks like we made it. Let's get it updated..
  78.   writeini -n oasiz.api.ini %k n %n
  79.   writeini -n oasiz.api.ini %k k %k
  80.   writeini -n oasiz.api.ini %k p %p
  81.   writeini -n oasiz.api.ini %k a 0
  82.   writeini -n oasiz.api.ini %k u 0
  83.   $oasiz.authtool.msg( %a )
  84.   writeini -n oasiz.api.ini settings current_api %k
  85.   $oasiz.authtool.apidata(list)
  86.   $oasiz.authtool.update
  87. }
  88.  
  89. ;;; Delete account API data
  90. on *:dialog:oasiz.api:sclick:365: {
  91.   if ($?!="Are you sure you want to remove this entry?" === $true) {
  92.     remini oasiz.api.ini $oasiz.authtool.apidata(match, $did($dname,1).seltext)
  93.     ;; Update/refresh list
  94.     $oasiz.authtool.apidata(list)
  95.   }
  96. }
  97.  
  98. ;;; Update account API data
  99. on *:dialog:oasiz.api:sclick:8: {
  100.   $oasiz.authtool.update
  101. }
  102.  
  103. ;;; Server choice (main)
  104. on *:dialog:oasiz.api:sclick:110: {
  105.   $oasiz.authtool.setserver
  106. }
  107.  
  108. ;;; Server choice (groups)
  109. on *:dialog:oasiz.api:sclick:130: {
  110.   $oasiz.authtool.setserver
  111. }
  112.  
  113. ;;; connect button
  114. on *:dialog:oasiz.api:sclick:34: {
  115.   $oasiz.authtool.connect
  116.   dialog -x oasiz.api
  117. }
  118.  
  119. ;; URLs
  120. on *:dialog:oasiz.api:sclick:12: { url -an http://www.oasiz.com }
  121. on *:dialog:oasiz.api:sclick:812: { url -an http://chat.oasiz.net/chat_api_key }
  122.  
  123. ;; Checks if connect button needs to be enabled/disabled
  124. alias oasiz.authtool.checkbutton {
  125.   ;; Enable "connect" button if: we have an account selected, we've updated it, we have a server selected
  126.   if ( ( $did(oasiz.api,1).seltext !== $null && $readini(oasiz.api.ini,n,$oasiz.authtool.apidata(match, $did($dname,1).seltext),u) !== 0 ) && ( $did(oasiz.api,110).state === 1 || $did(oasiz.api,130).state === 1) ) {
  127.     did -e oasiz.api 34
  128.     return 1
  129.   }
  130.   else {
  131.     did -b oasiz.api 34
  132.     return 0
  133.   }
  134. }
  135.  
  136. alias oasiz.authtool.msg {
  137.   if (!$dialog(oasiz.api)) { echo -s $1- | return }
  138.   did -r oasiz.api 44
  139.   did -a oasiz.api 44 $1-
  140. }
  141.  
  142. ;; Last Updated
  143. alias oasiz.authtool.lastupdated {
  144.   did -r oasiz.api 45
  145.   var %t = $readini(oasiz.api.ini,n,$1,u)
  146.   did -a oasiz.api 45 $iif($1 === reset,N/A, $iif(%t != 0, %t, N/A))
  147. }
  148.  
  149. alias oasiz.authtool.update {
  150.   ;; Disable "add/delete/connect/update" buttons whilst we update
  151.   did -b oasiz.api 346 | did -b oasiz.api 365 | did -b oasiz.api 8 | did -b oasiz.api 34
  152.   $oasiz.authtool.api.update
  153. }
  154.  
  155. alias oasiz.authtool.apidata {
  156.   ;; Reset API data list
  157.   if ( $1 === list ) {
  158.     did -r oasiz.api 1
  159.   }
  160.   var %api_keys = 0, %x = 0, %c = 0, %s = 0
  161.   while ( %x <= $ini(oasiz.api.ini,0) ) {
  162.     if ( $len($ini(oasiz.api.ini,%x)) === 36 ) {
  163.       if (%s === 0) { %s = $ini(oasiz.api.ini,%x) }
  164.       if ( $1 === list ) {
  165.         if ( $ini(oasiz.api.ini,%x) === $readini(oasiz.api.ini, n, settings, current_api) ) {
  166.           %c = %x
  167.           %s = $ini(oasiz.api.ini,%x)
  168.         }
  169.         did -a oasiz.api 1 $readini(oasiz.api.ini, n, $ini(oasiz.api.ini,%x), n)
  170.       }
  171.       if ( $1 === match ) {
  172.         if ( $readini(oasiz.api.ini, n, $ini(oasiz.api.ini,%x), n) === $2- ) {
  173.           return $ini(oasiz.api.ini,%x)
  174.         }
  175.       }
  176.       inc %api_keys
  177.     }
  178.     inc %x
  179.   }
  180.   ;; Return null if no match found
  181.   if ( $1 === match ) return 0
  182.   if ( $1 === list ) {
  183.     if ( %api_keys > 0 ) {
  184.       ;; Select the last selected API account data in the list, or the first item in the list if we have none set
  185.       did -c oasiz.api 1 $calc(%c - 1)
  186.       writeini -n oasiz.api.ini settings current_api %s
  187.  
  188.       ;; Check connect button
  189.       var %checkbtn = $oasiz.authtool.checkbutton
  190.     }
  191.     else {
  192.       ;; There's no API data stored, let's be nice and advise them
  193.       $oasiz.authtool.msg(Click "Add" to store your first Oasiz API account details)
  194.  
  195.       ;; We should also disable the delete/update/connect buttons..
  196.       did -b $dname 365 | did -b $dname 8 | did -b $dname 34
  197.     }
  198.     $oasiz.authtool.lastupdated($readini(oasiz.api.ini, n, settings, current_api))
  199.     if ( $did(oasiz.api,1).seltext === $null ) {
  200.       ;; Only shown after deleting API account. I think.
  201.       ;; No API account data selected - disable delete, update and connect buttons
  202.       did -b oasiz.api 365 | did -b oasiz.api 8 | did -b oasiz.api 34
  203.       $oasiz.authtool.lastupdated(reset)
  204.     }
  205.     else {
  206.       ;; We have an API account selected
  207.       ;; Enable "delete/update" buttons
  208.       did -e oasiz.api 365 | did -e oasiz.api 8
  209.     }
  210.   }
  211. }
  212.  
  213. ;; Send API call to authorisation script
  214. alias oasiz.authtool.api.update {
  215.   $api(ADD, $readini(oasiz.api.ini, n, $readini(oasiz.api.ini, n, settings, current_api), k), $readini(oasiz.api.ini, n, $readini(oasiz.api.ini, n, settings, current_api), p))
  216. }
  217.  
  218. alias oasiz.authtool.setserver {
  219.   var %c = 0
  220.   if ( $did($dname,110).state === 1 ) %c = 3
  221.   if ( $did($dname,130).state === 1 ) %c = %c + 5
  222.   if ( %c === 3 ) %c = M
  223.   if ( %c === 5 ) %c = G
  224.   if ( %c === 8 ) %c = B
  225.   writeini -n oasiz.api.ini settings s %c
  226.   var %checkbtn = $oasiz.authtool.checkbutton
  227. }
  228.  
  229. alias oasiz.authtool.getserver {
  230.   if ($1 === G) return 96.47.35.82
  231.   return 96.47.35.81
  232. }
  233.  
  234. alias oasiz.authtool.connect {
  235.   var %svr = $readini(oasiz.api.ini,n,settings,s)
  236.   if ( %svr !== B ) {
  237.     server $oasiz.authtool.getserver(%svr)
  238.   }
  239.   else {
  240.     server $oasiz.authtool.getserver(M)
  241.     server -m $oasiz.authtool.getserver(G)
  242.   }
  243. }
  244.  
  245. alias oasiz.api.callback {
  246.   if ( $1 === 1 ) {
  247.     ;; Loading API data
  248.     $oasiz.authtool.msg($2-)
  249.   }
  250.   elseif ( $1 === 2 ) {
  251.     ;; Successfully loaded API data
  252.  
  253.     writeini -n oasiz.api.ini $readini(oasiz.api.ini, n, settings, current_api) a $2
  254.     writeini -n oasiz.api.ini $readini(oasiz.api.ini, n, settings, current_api) u $asctime(dd/mm/yy h:nnTT)
  255.  
  256.     if ( $dialog(oasiz.api) ) {
  257.       var %st = Authentication data successfully loaded.
  258.       ;; Enable add/delete buttons
  259.       did -e oasiz.api 346 | did -e oasiz.api 365
  260.       ;; Enable connect button IF we have a server selected
  261.       var %checkbtn = $oasiz.authtool.checkbutton
  262.       if ( %checkbtn === $null ) {
  263.         %st = %st $+ $chr(32) $+ Select server(s) to join.
  264.       }
  265.       $oasiz.authtool.msg(%st)
  266.       $oasiz.authtool.lastupdated($readini(oasiz.api.ini, n, settings, current_api))
  267.     }
  268.     else {
  269.       ;; This is likely to be a failed-auth reconnection, let's try and reconnect here
  270.       echo -a Reconnecting..
  271.       .oasiz.authtool.connect
  272.     }
  273.   }
  274.   elseif ( $1 === 7 ) {
  275.     ;; API Authentication error
  276.     $oasiz.authtool.msg(API Error: $2)
  277.     ;; Enable add/delete buttons
  278.     if ( $dialog(oasiz.api) ) {
  279.       did -e oasiz.api 346 | did -e oasiz.api 365
  280.     }
  281.     .disconnect
  282.   }
  283.   elseif ( $1 === 8 ) {
  284.     ;; IRCx Authentication failed, $2 = raw 910 or 911
  285.     echo -a Authentication failed. Updating passport..
  286.     $oasiz.authtool.api.update
  287.   }
  288.   else {
  289.     ;; echo -s Unknown API error code ( $+ $1 $+ )
  290.   }
  291. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement