Advertisement
Guest User

Untitled

a guest
Sep 17th, 2016
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.23 KB | None | 0 0
  1. on *:text:!uptime*:#: {
  2. if (!$2) tokenize 32 - $mid($2,2-)
  3. if ($mysocket(twitchuptime,https://api.twitch.tv/kraken/streams?channel= $+ $2)) {
  4. hadd $v1 channel #
  5. hadd $v1 stream $2
  6. }
  7. }
  8.  
  9. alias twitchuptime {
  10. if ($2 == error) msg $hget($1,channel) An error occurred, please try again.
  11. else {
  12. if ($bfind(&mysocket,1,"_total":0).text) msg $hget($1,channel) $qt($hget($1,stream)) is not live currently.
  13. elseif ($bfind(&mysocket,1,created_at).text) msg $hget($1,channel) $qt($hget($1,stream)) has been live for $calc($gmt -$ctime($replacex($gettok($bvar(&mysocket,$v1,100).text,3,34),T,$chr(32))))
  14. }
  15. }
  16.  
  17. alias mysocket {
  18. if (www.?*.??* iswm $2) tokenize 32 $1 http:// $+ $2
  19. if (http://?*.??* iswm $2) || (https://?*.??* iswm $2) {
  20. var %e = $iif($gettok($2,1,47) == https:,-e),%a $gettok($2,2,47),%p $iif($gettok(%a,2,58) isnum 60-65535,$v1,$iif(%e,443,80)),%a $gettok(%a,1,58),%s $sha1($2,0) $+ .mysocket
  21. mysocket.k %s
  22. hmake %s
  23. hadd %s command $1
  24. hadd %s full $2
  25. hadd %s port %p
  26. hadd %s host %a
  27. hadd %s path $iif($gettok($2,3-,47),/ $+ $v1 $+ $iif($right($2,1) == /,/),/)
  28. hadd %s limit 2097152
  29. hadd %s r 0
  30. sockopen %e %s %a %p
  31. .timermysocket. $+ %s -io 0 30 mysocket.t %s
  32. if ($isid) return %s
  33. }
  34. else $iif($isid,return,echo -a Invalid input, us as: /mysocket <command> <link>)
  35. }
  36.  
  37. alias -l mysocket.t if ($sock($1).lr > 30) { $hget($1,command) $1 error open Connection timeout | mysocket.k $1 }
  38.  
  39. alias -l mysocket.k hfree -w $1 | sockclose $1 | .timermysocket. $+ $1 off | .remove $1 | unset %c.t
  40.  
  41. on *:sockopen:*.mysocket: {
  42. tokenize 32 $sockname
  43. if ($sockerr) mysocket.e $1 open
  44. else {
  45. sockwrite -tn $1 GET $hget($1,path) HTTP/1.1
  46. sockwrite -tn $1 Host: $hget($1,host)
  47. sockwrite -tn $1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:44.0) Gecko/20100101 Firefox/45.0
  48. sockwrite -tn $1 Accept: text/html
  49. sockwrite -tn $1 Connection: close
  50. sockwrite -t $1 $crlf
  51. }
  52. }
  53.  
  54. on *:sockread:*.mysocket: {
  55. tokenize 32 $sockname
  56. if ($sockerr) mysocket.e $1 read
  57. elseif ($hget($1,r)) mysocket.r $1
  58. else {
  59. sockread -f %c.t
  60. while ($sockbr > 2) { hadd $1 %c.t | sockread -f %c.t }
  61. if ($sockbr) { hadd $1 r $calc($sock($1).rcvd +$iif($hget($1,Content-Length:) <= $hget($1,limit),$v1,$v2)) | if ($sock($1).rq) mysocket.r $1 }
  62. }
  63. }
  64.  
  65. on *:sockclose:*.mysocket:mysocket.d $sockname
  66.  
  67. alias -l mysocket.r sockread $sock($1).rq &b | bwrite $1 -1 &b | if ($sock($1).rcvd >= $hget($1,r)) mysocket.d $1
  68.  
  69. alias -l mysocket.e $hget($1,command) $1 error $2 $sockerr $sock($1).wsmsg | mysocket.k $1
  70.  
  71. alias -l mysocket.d {
  72. if ($hget($1,Transfer-Encoding:) == chunked) {
  73. var %y = 1
  74. bread $1 0 $file($1).size &f
  75. while ($bfind(&f,%y,$crlf).text) {
  76. var %v = $v1,%h $bvar(&f,%y,$calc(%v -%y)).text,%r $base(%h,16,10),%y $calc(%v +4+%r)
  77. if (%r == 0) break
  78. else bcopy &mysocket $calc(1+$bvar(&mysocket,0)) &f $calc(2+%v) %r
  79. }
  80. }
  81. else bread $1 0 $file($1).size &mysocket
  82. if ($hget($1,HTTP/1.1) != 200 OK) $hget($1,command) $1 error status $v1
  83. else $hget($1,command) $1 $iif($bvar(&mysocket,0),done,error read No data received.)
  84. mysocket.k $1
  85. :error
  86. if ($error) mysocket.k $1
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement