Oasiz

Oasiz IRCX Socket Connection

Nov 29th, 2014
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 3.99 KB | None | 0 0
  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ;;;;;;; Oasiz IRCX Socket Connection ;;;;;;;;
  3. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  4.  
  5. ;; VERSION  1.0.1
  6. ;; AUTHOR   Rob Hildyard
  7. ;; DATE     29.11.14
  8. ;; SITE     www.oasiz.com
  9. ;; NOTE     Script requires API v2 Auth
  10. ;;          file (http://oasiz.co/c)
  11.  
  12. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  13.  
  14. alias sock_options {
  15.   set %_oa.socketPassport $false
  16.   set %_oa.socketTrace $true
  17.   set %_oa.socketChannel $chr(37) $+ #TheLobby
  18.   set %_oa.socketWCVersion 2.0.12.03
  19. }
  20.  
  21. alias sock_trace {
  22.   if (%_oa.socketTrace) {
  23.     if (!$window(@trace)) { /window -e @trace }
  24.     echo @trace $timestamp $1 $2-
  25.   }
  26. }
  27.  
  28. alias sock_send {
  29.   if (!$sock($1)) { return }
  30.   if (oa.local* !iswm $1) { $sock_trace(->, $2-) }
  31.   sockwrite -n $1-
  32. }
  33.  
  34. on *:sockopen:oa.main.*: {
  35.   sock_send $sockname IRCVERS IRCW OASIZ-WEBC! $+ %_oa.socketWCVersion
  36.   sock_send $sockname AUTH $iif(%_oa.socketPassport,GateKeeperPassport,GateKeeper) I :OASSP000000X1A
  37.   sock_send $sockname USER web * * :webc[ $+ %_oa.socketWCVersion $+ |EN-GB]
  38. }
  39.  
  40. on *:sockclose:oa.main.*: {
  41.   sockclose oa.local. $+ $gettok($sockname,-1,46)
  42.   if ($scid($gettok($sockname,-1,46))) scid $gettok($sockname,-1,46)
  43.   if ($status != disconnected) { disconnect }
  44. }
  45.  
  46. on *:sockread:oa.main.*: {
  47.   scid $gettok($sockname,-1,46)
  48.   if ($sockerr > 0) { sockclose $sockname | return }
  49.   var %o | sockread %o | tokenize 32 %o
  50.   $sock_trace(<-, $1-)
  51.   if ($1 == AUTH) {
  52.     if ($3 == S) {
  53.       if ($4 == :OK) {
  54.         if (%_oa.socketPassport) {
  55.           sock_send $sockname AUTH GateKeeperPassport S : $+ %_oa.authcode
  56.         }
  57.         else {
  58.           sock_send $sockname NICK $nick
  59.         }
  60.       }
  61.       else {
  62.         set %_oa.challengeType 0
  63.         set %_oa.challengeCode 0
  64.         $api_call(2, $remove($4,:OASSP000000))
  65.         .timer. $+ $sockname 0 1 challenge_code_check $sockname
  66.       }
  67.     }
  68.   }
  69.   elseif ($2 == JOIN) {
  70.     sock_send oa.local. $+ $gettok($sockname,-1,46) $1 $2 $4
  71.     if ($gettok($3,4,44)) sock_send oa.local. $+ $gettok($sockname,-1,46) : $+ $right($4,-1) MODE $right($4,-1) + $+ $replace($gettok($3,4,44),+,v,@,o,.,q) $right($gettok($1,1,33),-1)
  72.   }
  73.   ;; Prevent server pong events showing up in status window
  74.   elseif ($2 == PONG) {
  75.     return
  76.   }
  77.   elseif ($2 == PRIVMSG && $left($4, 2) == : $+ $chr(1)) {
  78.     ;; Ignore all ctcp except time
  79.     if ( $4 == : $+ $chr(1) $+ TIME $+ $chr(1) ) {
  80.       sock_send $sockname NOTICE $get_nick($1) : $+ $chr(1) $+ TIME $asctime($ctime,d/m/yyyy $+ $chr(44) hh:nn:ss) $+ $chr(1)
  81.     }
  82.   }
  83.   elseif ($2 == 353) {
  84.     var %t = 6 | while (%t <= $numtok($1-,32)) {
  85.       var %pZ = %pZ $iif(%t = 6,:) $+ $gettok($gettok($1-,%t,32),-1,44)
  86.       inc %t
  87.     }
  88.     sock_send oa.local. $+ $gettok($sockname,-1,46) $1-5 %pZ
  89.   }
  90.   elseif ($2 == 422) {
  91.     sock_send $sockname JOIN %_oa.socketChannel
  92.   }
  93.   else {
  94.     ;; Treat as normal
  95.     sock_send oa.local. $+ $gettok($sockname,-1,46) %o
  96.   }
  97. }
  98.  
  99. alias get_nick {
  100.   tokenize 33 $1
  101.   return $replace($1,:,)
  102. }
  103.  
  104. alias challenge_code_check {
  105.   if (%_oa.challengeCode != 0) {
  106.     .timer. $+ $1 off
  107.     sock_send $1 AUTH $iif(%_oa.socketPassport,GateKeeperPassport,GateKeeper) S :OASSP000000 $+ $+ %_oa.challengeCode
  108.   }
  109. }
  110.  
  111. alias connect {
  112.   sock_options
  113.   var %p = 4000 | while (!$portfree(%p)) inc %p
  114.   if ($status != disconnected) var %fx = -m
  115.   .server %fx 127.0.0.1 %p
  116.   [ [ $iif(%fx,scid $scon($scon(0))) ] ] socklisten oa.listen. $+ $iif(%fx,$scon($scon(0)),$cid) %p
  117.   sockopen oa.main. $+ $iif(%fx,$scon($scon(0)),$cid) 75.126.194.90 6667
  118. }
  119.  
  120. alias quit {
  121.   .QUIT webc[ $+ %_oa.socketWCVersion $+ |EN-GB]
  122. }
  123.  
  124. on ^*:logon:*: {
  125.   haltdef
  126. }
  127.  
  128. on *:socklisten:*: {
  129.   if (oa.listen* iswm $sockname) {
  130.     scid $gettok($sockname,-1,46)
  131.     sockaccept oa.local. $+ $cid
  132.     sockclose $sockname
  133.   }
  134. }
  135.  
  136. on *:sockread:oa.local.*: {
  137.   scid $gettok($sockname,-1,46)
  138.   var %d | sockread %d | tokenize 32 %d
  139.   sock_send oa.main. $+ $gettok($sockname,-1,46) %d
  140. }
Advertisement
Add Comment
Please, Sign In to add comment