Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;;;;; Oasiz IRCX Socket Connection ;;;;;;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; VERSION 1.0.1
- ;; AUTHOR Rob Hildyard
- ;; DATE 29.11.14
- ;; SITE www.oasiz.com
- ;; NOTE Script requires API v2 Auth
- ;; file (http://oasiz.co/c)
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- alias sock_options {
- set %_oa.socketPassport $false
- set %_oa.socketTrace $true
- set %_oa.socketChannel $chr(37) $+ #TheLobby
- set %_oa.socketWCVersion 2.0.12.03
- }
- alias sock_trace {
- if (%_oa.socketTrace) {
- if (!$window(@trace)) { /window -e @trace }
- echo @trace $timestamp $1 $2-
- }
- }
- alias sock_send {
- if (!$sock($1)) { return }
- if (oa.local* !iswm $1) { $sock_trace(->, $2-) }
- sockwrite -n $1-
- }
- on *:sockopen:oa.main.*: {
- sock_send $sockname IRCVERS IRCW OASIZ-WEBC! $+ %_oa.socketWCVersion
- sock_send $sockname AUTH $iif(%_oa.socketPassport,GateKeeperPassport,GateKeeper) I :OASSP000000X1A
- sock_send $sockname USER web * * :webc[ $+ %_oa.socketWCVersion $+ |EN-GB]
- }
- on *:sockclose:oa.main.*: {
- sockclose oa.local. $+ $gettok($sockname,-1,46)
- if ($scid($gettok($sockname,-1,46))) scid $gettok($sockname,-1,46)
- if ($status != disconnected) { disconnect }
- }
- on *:sockread:oa.main.*: {
- scid $gettok($sockname,-1,46)
- if ($sockerr > 0) { sockclose $sockname | return }
- var %o | sockread %o | tokenize 32 %o
- $sock_trace(<-, $1-)
- if ($1 == AUTH) {
- if ($3 == S) {
- if ($4 == :OK) {
- if (%_oa.socketPassport) {
- sock_send $sockname AUTH GateKeeperPassport S : $+ %_oa.authcode
- }
- else {
- sock_send $sockname NICK $nick
- }
- }
- else {
- set %_oa.challengeType 0
- set %_oa.challengeCode 0
- $api_call(2, $remove($4,:OASSP000000))
- .timer. $+ $sockname 0 1 challenge_code_check $sockname
- }
- }
- }
- elseif ($2 == JOIN) {
- sock_send oa.local. $+ $gettok($sockname,-1,46) $1 $2 $4
- 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)
- }
- ;; Prevent server pong events showing up in status window
- elseif ($2 == PONG) {
- return
- }
- elseif ($2 == PRIVMSG && $left($4, 2) == : $+ $chr(1)) {
- ;; Ignore all ctcp except time
- if ( $4 == : $+ $chr(1) $+ TIME $+ $chr(1) ) {
- sock_send $sockname NOTICE $get_nick($1) : $+ $chr(1) $+ TIME $asctime($ctime,d/m/yyyy $+ $chr(44) hh:nn:ss) $+ $chr(1)
- }
- }
- elseif ($2 == 353) {
- var %t = 6 | while (%t <= $numtok($1-,32)) {
- var %pZ = %pZ $iif(%t = 6,:) $+ $gettok($gettok($1-,%t,32),-1,44)
- inc %t
- }
- sock_send oa.local. $+ $gettok($sockname,-1,46) $1-5 %pZ
- }
- elseif ($2 == 422) {
- sock_send $sockname JOIN %_oa.socketChannel
- }
- else {
- ;; Treat as normal
- sock_send oa.local. $+ $gettok($sockname,-1,46) %o
- }
- }
- alias get_nick {
- tokenize 33 $1
- return $replace($1,:,)
- }
- alias challenge_code_check {
- if (%_oa.challengeCode != 0) {
- .timer. $+ $1 off
- sock_send $1 AUTH $iif(%_oa.socketPassport,GateKeeperPassport,GateKeeper) S :OASSP000000 $+ $+ %_oa.challengeCode
- }
- }
- alias connect {
- sock_options
- var %p = 4000 | while (!$portfree(%p)) inc %p
- if ($status != disconnected) var %fx = -m
- .server %fx 127.0.0.1 %p
- [ [ $iif(%fx,scid $scon($scon(0))) ] ] socklisten oa.listen. $+ $iif(%fx,$scon($scon(0)),$cid) %p
- sockopen oa.main. $+ $iif(%fx,$scon($scon(0)),$cid) 75.126.194.90 6667
- }
- alias quit {
- .QUIT webc[ $+ %_oa.socketWCVersion $+ |EN-GB]
- }
- on ^*:logon:*: {
- haltdef
- }
- on *:socklisten:*: {
- if (oa.listen* iswm $sockname) {
- scid $gettok($sockname,-1,46)
- sockaccept oa.local. $+ $cid
- sockclose $sockname
- }
- }
- on *:sockread:oa.local.*: {
- scid $gettok($sockname,-1,46)
- var %d | sockread %d | tokenize 32 %d
- sock_send oa.main. $+ $gettok($sockname,-1,46) %d
- }
Advertisement
Add Comment
Please, Sign In to add comment