pony

connection

Feb 28th, 2020
266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.82 KB | None | 0 0
  1. on *:start:{ .connect | .server -m chat3.koach.com }
  2. on *:socklisten:start:{
  3. .sockaccept localhost
  4. .sockclose $sockname
  5. }
  6. on *:sockread:localhost:{
  7. if ($sockerr > 0) return
  8. var %ldata | sockread %ldata | tokenize 32 %ldata
  9. if ($1 == JOIN) {
  10. if ($chr(44) isin $2) {
  11. var %x = 1
  12. while (%x <= $numtok($2,44)) {
  13. var %c $gettok($2,%x,44)
  14. var %j $calc(%x * 1100)
  15. .timerjoin $+ %j -m 1 %j mjoin $remove(%c,$chr(37))
  16. inc %x
  17. }
  18. }
  19. else mjoin $remove($2,$chr(37))
  20. }
  21. elseif ($1 == AWAY) {
  22. if ($me ison $remove($2,:)) sw AWAY $remove($2,:) $iif($left($3-,1) == :,$right($3-,-1),$3-)
  23. else {
  24. if ($me ison $active) sw AWAY $active $iif+($left($2-,1) == :,$right($2-,-1),$2-)
  25. else echo -a To avoid flooding, please specify which channel to change away status. /away <channel> <message>
  26. }
  27. }
  28. elseif ($1 == KICK) sockwrite -n buzzen $1-3 $iif($left($4-,1) == :,$right($4-,-1),$4-)
  29. elseif ($1 == PRIVMSG) {
  30. if ($me ison $2) sw $1-
  31. else sw $1 $comchan($2,1) $2-
  32. }
  33. elseif ($1 == NOTICE) {
  34. if ($me ison $2) sw $1-
  35. else sw $1 $comchan($2,1) $2-
  36. }
  37. else sw $1-
  38. }
  39. on *:sockclose:localhost:{
  40. .sockclose localhost
  41. .sockclose start
  42. .sockclose buzzen
  43. .timer -m 1 100 connect
  44. }
  45. on *:sockopen:buzzen:{
  46. .sw AUTHTYPE ircwx1
  47. .sw LOGINH %email %password
  48. .sw USER $me $me $me $+(:,anon)
  49. .sw CLIENTMODE cd1
  50. }
  51. on *:sockread:buzzen:{
  52. if ($sockerr > 0) return
  53. var %fdata
  54. sockread %fdata
  55. if (%fdata != $null) edata ← %fdata
  56. %fdata = $regsubex(%fdata, /\[(?:style\x20.*?|/style)\]/gi,$null)
  57. tokenize 32 %fdata
  58. if ($2 == 353) {
  59. if ($chr(44) isin $6) {
  60. var %a = 6, %b, %name
  61. while (%a <= $0) {
  62. %name = $remove($gettok($gettok($1-,%a,32),2,44),:)
  63. if ($left($remove($gettok($gettok($1-,%a,32),1,44),:),1) == A) .hadd -m $md5($5) $remodes(%name) away
  64. if ($right($remove($gettok($gettok($1-,%a,32),1,44),:),1) == V) %name = $+($remove(%name,$remodes(%name)),+,$remodes(%name))
  65. if (%b == $null) %b = %name
  66. else %b = %b %name
  67. inc %a
  68. }
  69. sockwrite -n localhost :FlashIrcServer.1 353 $me = $5 : $+ %b
  70. }
  71. else sockwrite -n localhost $1-
  72. }
  73. elseif ($2 == 403) && ($chr(37) isin $4) sw CREATE $4
  74. elseif ($2 == NOTICE) && ($3 != AUTH) {
  75. if ($3 == $server) {
  76. sockwrite -n localhost $+(:,$3) $2 $gettok($right($1,-1),1,33) $iif($left($4,1) == :,$4-,$+(:,$4-))
  77. }
  78. else {
  79. if ($left($4,1) == :) sockwrite -n localhost $1-
  80. else {
  81. if ($left($5-,2) == :) && ($right($5-,1) == ) sockwrite -n localhost $1-3 $5-
  82. else {
  83. var %f $gettok($5,1,32)
  84. if ($left(%f,7) == :TIME) sockwrite -n localhost $1-3 :TIME $+($right($5-,-7),)
  85. elseif ($left(%f,7) == :VERSION) sockwrite -n localhost $1-3 :VERSION $+($right($5-,-7),)
  86. else sockwrite -n localhost $1-3 $5-
  87. }
  88. }
  89. }
  90. }
  91. elseif ($2 == PRIVMSG) {
  92. if ($left($4,1) == :) {
  93. if ($left($4-,2) == :) && ($right($remove($4-,$chr(15)),1) == ) && ($4 != :ACTION) {
  94. .SIGNAL -n CTCP_REQUEST $strip($gettok($remove($1,:),1,33) $gettok($1,2,33) $3 $left($right($remove($4-,$chr(15)),-2),-1))
  95. }
  96. else sockwrite -n localhost $1-
  97. }
  98. else {
  99. if ($left($5-,2) == :) && ($right($5-,1) == ) && ($5 != :ACTION) {
  100. .SIGNAL -n CTCP_REQUEST $strip($gettok($remove($1,:),1,33) $gettok($1,2,33) $3 $left($right($remove($5-,$chr(15)),-2),-1))
  101. }
  102. elseif ($5 == :ACTION) && ($right($5-,1) == ) sockwrite -n localhost $1-
  103. else sockwrite -n localhost $1 WHISPER $3-
  104. }
  105. }
  106. elseif ($2 = JOIN) {
  107. if ($chr(37) isin $3) sockwrite -n localhost $1-
  108. else sockwrite -n localhost $1 $2 $4-
  109. }
  110. elseif ($2 == DATA) && ($4 == PID) set %pid $6
  111. elseif ($2 == 822) {
  112. if ($me ison $3) {
  113. if ($gettok($right($1,-1),1,33) != $me) echo $3 11Away: $gettok($right($1,-1),1,33) has been marked as being away. $tag($right($4-,-1))
  114. else echo $3 11Away: You have been marked as being away. $tag($right($4-,-1))
  115. cline -m 15 $3 $gettok($right($1,-1),1,33)
  116. sockwrite -n localhost $1-
  117. }
  118. }
  119. elseif ($2 == 821) {
  120. if ($me ison $3) {
  121. if ($gettok($right($1,-1),1,33) != $me) echo $3 11Away: $gettok($right($1,-1),1,33) is no longer marked as being away.
  122. else echo $3 11Away: You are no longer marked as being away.
  123. cline -m 0 $3 $gettok($right($1,-1),1,33)
  124. sockwrite -n localhost $1-
  125. }
  126. }
  127. else sockwrite -n localhost $1-
  128. }
  129. on *:sockclose:buzzen:{ .disconnect }
  130. alias login {
  131. .disconnect
  132. .unset %email
  133. .unset %password
  134. .connect
  135. }
  136. alias connect {
  137. if (%email == $null) set %email $$input(Email:,e,Login)
  138. if (%password == $null) set %password $md5($$input(Password:,p,Login))
  139.  
  140. if (%debug == on) .window -k0 @sockread
  141. .var %localport = $rport
  142. .socklisten start %localport
  143. .timer -m 1 200 .server 127.0.0.1 %localport
  144. .timer 1 1 sockopen buzzen $iif(%server == $null,irc.buzzen.net,%server) 6667
  145. }
  146. alias sw {
  147. if ($sock(buzzen).status == active) {
  148. .sockwrite -n buzzen $1-
  149. .edata → $1-
  150. }
  151. }
  152. alias remodes return $remove($remove($remove($remove($remove($1-,'),.),@),%),+)
  153. alias rport { var %port $rand(2000,6000) | while (!$portfree(%port)) { %port = $rand(2000,6000) } | return %port }
  154. alias edata {
  155. if (%debug == on) {
  156. if ($window(@sockread) == $null) .window -k0 @sockread
  157. .echo @sockread $+(,$1,) $2-
  158. }
  159. }
  160. alias sread {
  161. if ($1 == on) {
  162. if ($window(@sockread) == $null) .window -k0 @sockread
  163. .set %debug on
  164. }
  165. elseif ($1 == off) {
  166. .set %debug off
  167. .window -c @sockread
  168. }
  169. else .echo -a ERROR: Invalid parameter. /sread [on|off]
  170. }
  171. alias mjoin { sw join $+($chr(37),$1) }
Advertisement
Add Comment
Please, Sign In to add comment