Twitch-Api mirc script.

By Colten45 on Nov 27, 2014

This is just the start of this script. I have other parts else where such as a listening socket for people to authenticate to the "bot".

The code is very rough, don't put me down too much please! I know my names are weird especially in the sockread. I was really tired of dealing with content-length and transfer-encoding and I just wanted to get it done asap. You will need timi's json script and to create a folder in your mirc dir named "kraken". As of now. I do not have it auto deleting the files and variables as of yet, part of debugging. The files "data" must be handled according to the api tos found here http://www.twitch.tv/user/legal?page=api_terms_of_service

So for now it is just something to play with. Everything but setting stuff like status,game,delay,follow will work without a users oauth token and with the right scopes..

on *:sockopen:tapisocket*:{
  var %twitchclientid YOURCLIENTIDHERE!
  ;The params are.
  ; 1.method 2.baseurl 3.rootendpoint 4.urlendpoint 5.oauthusername 
  ; 6.jsonorform 7.urlparams 8.data 9.channel 10.usercalled 11.aliascallback

  var %params $remove($sock($sockname).mark,tapisocket.)
  ;echo Well hello there! method $decodeparams(%params,1) baseurl $decodeparams(%params,2) rootendpoint $decodeparams(%params,3) $&
  ;urlendpoint $decodeparams(%params,4) oauthusername $decodeparams(%params,5) contenttype $decodeparams(%params,6) $&
  ;urlparams $decodeparams(%params,7) data $decodeparams(%params,8) channel $decodeparams(%params,9) $& 
  ;usercalled $decodeparams(%params,10) aliascallback $decodeparams(%params,11)
  if ($decodeparams(%params,7) != $null) {
    sockwrite -n $sockname $decodeparams(%params,1) $decodeparams(%params,3) $+ $decodeparams(%params,4) $+ ? $+ $decodeparams(%params,7) HTTP/1.1
  }
  else {
    sockwrite -n $sockname $decodeparams(%params,1) $decodeparams(%params,3) $+ $decodeparams(%params,4) HTTP/1.1
  }
  sockwrite -n $sockname Host: $decodeparams(%params,2)
  sockwrite -n $sockname Accept: application/vnd.twitchtv.v3+json
  sockwrite -n $sockname Client-Id: %twitchclientid
  if ($decodeparams(%params,5) != $null) {
    sockwrite -n $sockname Authorization: OAuth $readini(twitchauth.ini,auth,$decodeparams(%params,5))
  }
  if ($decodeparams(%params,8) != $null) {
    sockwrite -n $sockname Content-Type: $decodeparams(%params,6)
    sockwrite -n $sockname Content-Length: $len($decodeparams(%params,8))
    sockwrite -n $sockname $crlf
    sockwrite -n $sockname $decodeparams(%params,8)
  }
  else {
    sockwrite -n $sockname Content-Length: 0
  }
  sockwrite -n $sockname $crlf
}
on *:sockread:tapisocket*:{
  var %params $remove($sock($sockname).mark,tapisocket.)
  if (%ksockheaders. [ $+ [ $sockname ] ] != 0) && (%ksockheaders. [ $+ [ $sockname ] ] != 1) && (%ksockheaders. [ $+ [ $sockname ] ] != 2) {
    set %ksockheaders. [ $+ [ $sockname ] ] 0
  }
  if ($sockerr > 0) return
  :nextread
  sockread -nf &thvar
  breplace &thvar 0 0 
  if ($sockbr == 0) return
  if ($bvar(&thvar,0) == 2) && ($bvar(&thvar,1,2) == 0 0) {
    tapisockbvarRAW $sockname end
    if (%ksockCE. [ $+ [ $sockname ] ] != $null) {
      goto endsockK
    }
    if (%ksockheaders. [ $+ [ $sockname ] ] == 0) {
      ;echo end of headers
      set %ksockheaders. [ $+ [ $sockname ] ] 1
    }
    else {
      ;bwrite kraken\ $+ $sockname $+ $krakendecodesockmark($sock($sockname).mark,6) $+ .txt -1 2 $crlf
    }
    if (%ksockTE. [ $+ [ $sockname ] ] == chunked) {
      if (%ksockNC. [ $+ [ $sockname ] ] == 1) {
        set %ksockCS. [ $+ [ $sockname ] ] $calc(%ksockCS. [ $+ [ $sockname ] ] + $base($bvar (&thvar,1,$bvar(&thvar,0)).text,16,10))
        ;echo NEW CHUNKG! %ksockCS. [ $+ [ $sockname ] ]
        unset %ksockNC. [ $+ [ $sockname ] ]
      }
      else {
        ;echo end of header and chunked
        tapisockbvar $sockname end
        set %ksockNC. [ $+ [ $sockname ] ] 1
      }
    }
    ;echo dbl crlf
  }
  else {
    if ($bfind(&thvar, 1, Content-Length) != 0) && (%ksockCL. [ $+ [ $sockname ] ] == $null) {
      set %ksockCL. [ $+ [ $sockname ] ] $bvar(&thvar,17,$calc($bvar(&thvar,0) - 17)).text
    }
    if ($bfind(&thvar, 1, Transfer-Encoding) != 0) && (%ksockTE. [ $+ [ $sockname ] ] == $null) {
      set %ksockTE. [ $+ [ $sockname ] ] chunked
    }
    if ($bvar(&thvar, $calc($bvar(&thvar, 0) - 1),2) == 0 0) {
      tapisockbvarRAW $sockname end
      if (%ksockheaders. [ $+ [ $sockname ] ] == 0) {
        tapisockbvarh $sockname end
      }
      else {
        if (%ksockTE. [ $+ [ $sockname ] ] == chunked) {
          if (%ksockNC. [ $+ [ $sockname ] ] == 1) {
            set %ksockCS. [ $+ [ $sockname ] ] $calc(%ksockCS. [ $+ [ $sockname ] ] + $base($bvar(&thvar,1,$bvar(&thvar,0)).text,16,10))
            if ($base($bvar(&thvar,1,$bvar(&thvar,0)).text,16,10) == 0) {
              ;echo No more chunks.
              unset %ksockNC. [ $+ [ $sockname ] ]
              set %ksockCE. [ $+ [ $sockname ] ] 1
            }
            else {
              ;echo NEW CHUNK! %ksockCS. [ $+ [ $sockname ] ] s $base($bvar(&thvar,1,$bvar(&thvar,0)).text,16,10)
              unset %ksockNC. [ $+ [ $sockname ] ]
            }
            unset %ksockNC. [ $+ [ $sockname ] ]
          }
          else {
            ;echo end of chunk
            tapisockbvar $sockname end
            set %ksockNC. [ $+ [ $sockname ] ] 1
          }
        }
        if (%ksockCL. [ $+ [ $sockname ] ] != $null) {
          tapisockbvar $sockname
          if ($file(kraken\ $+ $sockname $+ .txt).size == %ksockCL. [ $+ [ $sockname ] ]) {
            goto endsockK
          }
        }

        ;tapisockbvar $sockname end
      }
    }
    else {
      tapisockbvarRAW $sockname
      if (%ksockTE. [ $+ [ $sockname ] ] == chunked) {
        tapisockbvar $sockname
      }
      if (%ksockCL. [ $+ [ $sockname ] ] != $null) {
        tapisockbvar $sockname
        if ($file(kraken\ $+ $sockname $+ .txt).size == %ksockCL. [ $+ [ $sockname ] ]) {
          goto endsockK
        }
      }
    }
    ;echo DATA $bvar(&thvar,0) $base($bvar(&thvar,1,$bvar(&thvar,0)).text,16,10))
  }
  .timertimeout. [ $+ [ $sockname ] ] 1 4 closetapisocketerror $sockname
  goto nextread
  :endsockK
  closetapisocket $sockname
}
alias encodeparams {
  return $replace($1-,$chr(32),$chr(58))
}
alias decodeparams {
  var %stuff $decode($gettok($decode($1,m),$2,58),m)
  if ($mid(%stuff,1,2) == $chr(33) $+ $chr(36)) {
    return $eval($remove(%stuff,$chr(33)),2)
  }
  else {
    return %stuff
  }
}
alias decodeparams1 {
  var %stuff $b64d($gettok($b64d($1),$2,58))
  if ($mid(%stuff,1,2) == $chr(33) $+ $chr(36)) {
    return $eval($remove(%stuff,$chr(33)),2)
  }
  else {
    return $b64d($gettok($b64d($1),$2,58))
  }
}
alias tapisockbvarRAW {
  var %params $sock($1).mark
  ;echo shit $1-
  if ($2 == end) {
    ;echo yup removed
    ;bset &thvar $calc($bvar(&thvar,0) + 1) 13 10
    bwrite kraken\ $+ $1 $+ RAW $+ .txt -1 $calc($bvar(&thvar, 0) - 2) &thvar
    bwrite kraken\ $+ $1 $+ RAW $+ .txt -1 2 $crlf
  }
  else {
    bwrite kraken\ $+ $1 $+ RAW $+ .txt -1 -1 &thvar
  }
}
alias tapisockbvarH {
  var %params $sock($1).mark
  if ($2 == end) {
    ;echo yup removed
    ;bset &thvar $calc($bvar(&thvar,0) + 1) 13 10
    bwrite kraken\ $+ $1 $+ headers $+ .txt -1 $calc($bvar(&thvar, 0) - 2) &thvar
    bwrite kraken\ $+ $1 $+ headers $+ .txt -1 2 $crlf
  }
  else {
    bwrite kraken\ $+ $1 $+ headers $+ .txt -1 -1 &thvar
  }
  if ($file(kraken\ $+ $1 $+ headers $+ .txt).size == %ksockCL. [ $+ [ $sockname ] ]) && (%ksockCL. [ $+ [ $1 ] ] != $null) {
    ;closekrakensocket $1
  }
}
alias tapisockbvar {
  var %params $sock($1).mark
  ;echo shit $1-
  if ($2 == end) {
    ;echo yup removed
    ;bset &thvar $calc($bvar(&thvar,0) + 1) 13 10
    bwrite kraken\ $+ $1 $+ .txt -1 $calc($bvar(&thvar, 0) - 2) &thvar
    ;bwrite kraken\ $+ $1 $+ .txt -1 2 $crlf
  }
  else {
    bwrite kraken\ $+ $1 $+ .txt -1 -1 &thvar
  }
}
on *:sockclose:tapisocket*:{
  ;unset %ksockCL. [ $+ [ $sockname ] ]
  ;unset %ksockdata. [ $+ [ $sockname ] ]
  ;unset %ksockTE. [ $+ [ $sockname ] ]
}
alias closetapisocketerror {
  var %params $sock($1).mark
  if ($sock($1).name != $null) {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! There seems to have been an error.
    sockclose $1
    unset %ksockheaders. [ $+ [ $1 ] ]
  }
}
alias closetapisocket {
  var %params $sock($1).mark
  ;echo closing
  ;echo s $+(/,$decodeparams(%params,11)) $1 %params
  $+(/,$decodeparams(%params,11)) $1 %params
  sockclose $1
  unset %ksockCL. [ $+ [ $1 ] ]
  unset %ksockdata. [ $+ [ $1 ] ]
}
;calling and called aliases to add endpoints "easily"
alias getviewersnewsockT {
  ; 1.method 2.baseurl 3.rootendpoint 4.urlendpoint 5.oauthusername 
  ; 6.jsonorform 7.urlparams 8.data 9.channel 10.usercalled 11.aliascallback
  var %method GET
  var %baseurl api.twitch.tv
  var %rootendpoint /kraken
  var %urlendpoint /streams/ $+ $1
  var %oauthusername !$null
  var %jsonorform !$null
  var %urlparams !$null
  var %data !$null
  var %channel $2
  var %usercalled $3
  var %aliascallback parseviewersNEW
  var %encodedparams $encodeparams($encode(%method,m),$encode(%baseurl,m),$encode(%rootendpoint,m),$encode(%urlendpoint,m),$encode(%oauthusername,m),$encode(%jsonorform,m),$encode(%urlparams,m),$encode(%data,m),$encode(%channel,m),$encode(%usercalled,m),$encode(%aliascallback,m))
  var %sockname $md5($+($ctime,$encode(%encodedparams,m)))
  sockopen -e tapisocket. [ $+ [ %sockname ] ] api.twitch.tv 443
  sockmark tapisocket. [ $+ [ %sockname ] ] $encode(%encodedparams,m)
}
alias parseviewersNEW {
  var %params $2
  if ($json(kraken\ $+ $1 $+ .txt,stream,viewers) != $null) {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! The user $remove($decodeparams(%params,4),/streams/) has $json(kraken\ $+ $1 $+ .txt,stream,viewers) viewers.
  }
  else {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! The user $remove($decodeparams(%params,4),/streams/) is offline.
  }
}
;calling and called aliases to add endpoints "easily"
alias setstatusnewsockT {
  ; 1.method 2.baseurl 3.rootendpoint 4.urlendpoint 5.oauthusername 
  ; 6.jsonorform 7.urlparams 8.data 9.channel 10.usercalled 11.aliascallback
  var %method PUT
  var %baseurl api.twitch.tv
  var %rootendpoint /kraken
  var %urlendpoint /channels/ $+ $remove($1,$chr(35))
  var %oauthusername $remove($1,$chr(35))
  var %jsonorform application/json
  var %urlparams !$null
  var %data {"channel":{"status":" $+ $3- $+ "}}
  var %channel $1
  var %usercalled $2
  var %aliascallback parsesetstatusNEW
  var %encodedparams $encodeparams($encode(%method,m),$encode(%baseurl,m),$encode(%rootendpoint,m),$encode(%urlendpoint,m),$encode(%oauthusername,m),$encode(%jsonorform,m),$encode(%urlparams,m),$encode(%data,m),$encode(%channel,m),$encode(%usercalled,m),$encode(%aliascallback,m))
  var %sockname $md5($+($ctime,$encode(%encodedparams,m)))
  sockopen -e tapisocket. [ $+ [ %sockname ] ] api.twitch.tv 443
  sockmark tapisocket. [ $+ [ %sockname ] ] $encode(%encodedparams,m)
}
alias parsesetstatusNEW {
  var %params $2
  if ($json(kraken\ $+ $1 $+ .txt,status) == $json($decodeparams(%params,8),channel,status)) {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! The status for the user $remove($decodeparams(%params,4),/channels/) has changed to $json(kraken\ $+ $1 $+ .txt,status)
  }
  else {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! There seems to have been an error.
  }
}
;calling and called aliases to add endpoints "easily"
alias setgamenewsockT {
  ; 1.method 2.baseurl 3.rootendpoint 4.urlendpoint 5.oauthusername 
  ; 6.jsonorform 7.urlparams 8.data 9.channel 10.usercalled 11.aliascallback
  var %method PUT
  var %baseurl api.twitch.tv
  var %rootendpoint /kraken
  var %urlendpoint /channels/ $+ $remove($1,$chr(35))
  var %oauthusername $remove($1,$chr(35))
  var %jsonorform application/json
  var %urlparams !$null
  var %data {"channel":{"game":" $+ $3- $+ "}}
  var %channel $1
  var %usercalled $2
  var %aliascallback parsesetgameNEW
  var %encodedparams $encodeparams($encode(%method,m),$encode(%baseurl,m),$encode(%rootendpoint,m),$encode(%urlendpoint,m),$encode(%oauthusername,m),$encode(%jsonorform,m),$encode(%urlparams,m),$encode(%data,m),$encode(%channel,m),$encode(%usercalled,m),$encode(%aliascallback,m))
  var %sockname $md5($+($ctime,$encode(%encodedparams,m)))
  sockopen -e tapisocket. [ $+ [ %sockname ] ] api.twitch.tv 443
  sockmark tapisocket. [ $+ [ %sockname ] ] $encode(%encodedparams,m)
}
alias parsesetgameNEW {
  var %params $2
  if ($json(kraken\ $+ $1 $+ .txt,game) == $json($decodeparams(%params,8),channel,game)) {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! The game for the user $remove($decodeparams(%params,4),/channels/) has changed to $json(kraken\ $+ $1 $+ .txt,game)
  }
  else {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! There seems to have been an error.
  }
}
;calling and called aliases to add endpoints "easily"
alias setdelaynewsockT {
  ; 1.method 2.baseurl 3.rootendpoint 4.urlendpoint 5.oauthusername 
  ; 6.jsonorform 7.urlparams 8.data 9.channel 10.usercalled 11.aliascallback
  var %method PUT
  var %baseurl api.twitch.tv
  var %rootendpoint /kraken
  var %urlendpoint /channels/ $+ $remove($1,$chr(35))
  var %oauthusername $remove($1,$chr(35))
  var %jsonorform application/json
  var %urlparams !$null
  var %data {"channel":{"delay":" $+ $3- $+ "}}
  var %channel $1
  var %usercalled $2
  var %aliascallback parsesetdelayNEW
  var %encodedparams $encodeparams($encode(%method,m),$encode(%baseurl,m),$encode(%rootendpoint,m),$encode(%urlendpoint,m),$encode(%oauthusername,m),$encode(%jsonorform,m),$encode(%urlparams,m),$encode(%data,m),$encode(%channel,m),$encode(%usercalled,m),$encode(%aliascallback,m))
  var %sockname $md5($+($ctime,$encode(%encodedparams,m)))
  sockopen -e tapisocket. [ $+ [ %sockname ] ] api.twitch.tv 443
  sockmark tapisocket. [ $+ [ %sockname ] ] $encode(%encodedparams,m)
}
alias parsesetdelayNEW {
  var %params $2
  if ($json(kraken\ $+ $1 $+ .txt,delay) == $json($decodeparams(%params,8),channel,delay)) {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! The stream delay for the user $remove($decodeparams(%params,4),/channels/) has changed to $json(kraken\ $+ $1 $+ .txt,game)
  }
  else {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! There seems to have been an error.
  }
}
;calling and called aliases to add endpoints "easily"
alias setmaturenewsockT {
  ; 1.method 2.baseurl 3.rootendpoint 4.urlendpoint 5.oauthusername 
  ; 6.jsonorform 7.urlparams 8.data 9.channel 10.usercalled 11.aliascallback
  var %method PUT
  var %baseurl api.twitch.tv
  var %rootendpoint /kraken
  var %urlendpoint /channels/ $+ $remove($1,$chr(35))
  var %oauthusername $remove($1,$chr(35))
  var %jsonorform application/json
  var %urlparams !$null
  var %data {"channel":{"mature":" $+ $3- $+ "}}
  var %channel $1
  var %usercalled $2
  var %aliascallback parsesetmatureNEW
  var %encodedparams $encodeparams($encode(%method,m),$encode(%baseurl,m),$encode(%rootendpoint,m),$encode(%urlendpoint,m),$encode(%oauthusername,m),$encode(%jsonorform,m),$encode(%urlparams,m),$encode(%data,m),$encode(%channel,m),$encode(%usercalled,m),$encode(%aliascallback,m))
  var %sockname $md5($+($ctime,$encode(%encodedparams,m)))
  sockopen -e tapisocket. [ $+ [ %sockname ] ] api.twitch.tv 443
  sockmark tapisocket. [ $+ [ %sockname ] ] $encode(%encodedparams,m)
}
alias parsesetmatureNEW {
  var %params $2
  echo SHIT $json(kraken\ $+ $1 $+ .txt,mature) AND $json($decodeparams(%params,8),channel,mature)
  if ($json(kraken\ $+ $1 $+ .txt,mature) == $json($decodeparams(%params,8),channel,mature)) {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! The stream maturity for the user $remove($decodeparams(%params,4),/channels/) has changed to $json(kraken\ $+ $1 $+ .txt,mature)
  }
  else {

    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! There seems to have been an error.
  }
}
;calling and called aliases to add endpoints "easily"
alias followchannelnewsockT {
  ; 1.method 2.baseurl 3.rootendpoint 4.urlendpoint 5.oauthusername 
  ; 6.jsonorform 7.urlparams 8.data 9.channel 10.usercalled 11.aliascallback
  var %method PUT
  var %baseurl api.twitch.tv
  var %rootendpoint /kraken
  var %urlendpoint /users/ $+ $remove($1,$chr(35)) $+ /follows/channels/ $+ $3
  var %oauthusername $remove($1,$chr(35))
  var %jsonorform !$null
  var %urlparams !$null
  var %data !$null
  var %channel $1
  var %usercalled $2
  var %aliascallback parsefollowchannelNEW
  var %encodedparams $encodeparams($encode(%method,m),$encode(%baseurl,m),$encode(%rootendpoint,m),$encode(%urlendpoint,m),$encode(%oauthusername,m),$encode(%jsonorform,m),$encode(%urlparams,m),$encode(%data,m),$encode(%channel,m),$encode(%usercalled,m),$encode(%aliascallback,m))
  var %sockname $md5($+($ctime,$encode(%encodedparams,m)))
  sockopen -e tapisocket. [ $+ [ %sockname ] ] api.twitch.tv 443
  sockmark tapisocket. [ $+ [ %sockname ] ] $encode(%encodedparams,m)
}
alias parsefollowchannelNEW {
  var %params $2
  echo SHIT $json(kraken\ $+ $1 $+ .txt,channel,name) AND $json($decodeparams(%params,8),channel,mature)
  if ($json(kraken\ $+ $1 $+ .txt,channel,name) == $remove($decodeparams(%params,9),/users/ $+ $remove($decodeparams(%params,8),$chr(35)) $+ /follows/channels/)) {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! The user $remove($decodeparams(%params,8),$chr(35)) is now following $json(kraken\ $+ $1 $+ .txt,channel,name)
  }
  else {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! There seems to have been an error. MSG: $json(kraken\ $+ $1 $+ .txt,message)
  }
}
;calling and called aliases to add endpoints "easily"
alias getlasthighlightnewsockT {
  ; 1.method 2.baseurl 3.rootendpoint 4.urlendpoint 5.oauthusername 
  ; 6.jsonorform 7.urlparams 8.data 9.channel 10.usercalled 11.aliascallback
  var %method GET
  var %baseurl api.twitch.tv
  var %rootendpoint /kraken
  var %urlendpoint /channels/ $+ $1 $+ /videos
  var %oauthusername !$null
  var %jsonorform application/x-www-form-urlencoded
  var %urlparams $json.enc(limit=1&broadcasts=false)
  var %data !$null
  var %channel $2
  var %usercalled $3
  var %aliascallback parselasthighlightNEW
  var %encodedparams $encodeparams($encode(%method,m),$encode(%baseurl,m),$encode(%rootendpoint,m),$encode(%urlendpoint,m),$encode(%oauthusername,m),$encode(%jsonorform,m),$encode(%urlparams,m),$encode(%data,m),$encode(%channel,m),$encode(%usercalled,m),$encode(%aliascallback,m))
  var %sockname $md5($+($ctime,$encode(%encodedparams,m)))
  sockopen -e tapisocket. [ $+ [ %sockname ] ] api.twitch.tv 443
  sockmark tapisocket. [ $+ [ %sockname ] ] $encode(%encodedparams,m)
}
alias parselasthighlightNEW {
  var %params $2
  if ($json(kraken\ $+ $1 $+ .txt,videos,0,url) != $null) {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! The last highlight for the user $remove($decodeparams(%params,4),/channels/,/videos) is $json(kraken\ $+ $1 $+ .txt,videos,0,url)
  }
  else {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! There seems to have been an error. MSG: $json(kraken\ $+ $1 $+ .txt,message)

  }
}
;calling and called aliases to add endpoints "easily"
alias getlastbroadcastnewsockT {
  ; 1.method 2.baseurl 3.rootendpoint 4.urlendpoint 5.oauthusername 
  ; 6.jsonorform 7.urlparams 8.data 9.channel 10.usercalled 11.aliascallback
  var %method GET
  var %baseurl api.twitch.tv
  var %rootendpoint /kraken
  var %urlendpoint /channels/ $+ $1 $+ /videos
  var %oauthusername !$null
  var %jsonorform application/x-www-form-urlencoded
  var %urlparams $json.enc(limit=1&broadcasts=true)
  var %data !$null
  var %channel $2
  var %usercalled $3
  var %aliascallback parselastbroadcastNEW
  var %encodedparams $encodeparams($encode(%method,m),$encode(%baseurl,m),$encode(%rootendpoint,m),$encode(%urlendpoint,m),$encode(%oauthusername,m),$encode(%jsonorform,m),$encode(%urlparams,m),$encode(%data,m),$encode(%channel,m),$encode(%usercalled,m),$encode(%aliascallback,m))
  var %sockname $md5($+($ctime,$encode(%encodedparams,m)))
  sockopen -e tapisocket. [ $+ [ %sockname ] ] api.twitch.tv 443
  sockmark tapisocket. [ $+ [ %sockname ] ] $encode(%encodedparams,m)
}
alias parselastbroadcastNEW {
  var %params $2
  if ($json(kraken\ $+ $1 $+ .txt,videos,0,url) != $null) {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! The last broadcast for the user $remove($decodeparams(%params,4),/channels/,/videos) is $json(kraken\ $+ $1 $+ .txt,videos,0,url)
  }
  else {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! There seems to have been an error. MSG: $json(kraken\ $+ $1 $+ .txt,message)
  }
}
;calling and called aliases to add endpoints "easily"
alias getuserbionewsockT {
  ; 1.method 2.baseurl 3.rootendpoint 4.urlendpoint 5.oauthusername 
  ; 6.jsonorform 7.urlparams 8.data 9.channel 10.usercalled 11.aliascallback
  var %method GET
  var %baseurl api.twitch.tv
  var %rootendpoint /kraken
  var %urlendpoint /users/ $+ $1
  var %oauthusername !$null
  var %jsonorform application/x-www-form-urlencoded
  var %urlparams $json.enc(limit=1&broadcasts=true)
  var %data !$null
  var %channel $2
  var %usercalled $3
  var %aliascallback parseserbioNEW
  var %encodedparams $encodeparams($encode(%method,m),$encode(%baseurl,m),$encode(%rootendpoint,m),$encode(%urlendpoint,m),$encode(%oauthusername,m),$encode(%jsonorform,m),$encode(%urlparams,m),$encode(%data,m),$encode(%channel,m),$encode(%usercalled,m),$encode(%aliascallback,m))
  var %sockname $md5($+($ctime,$encode(%encodedparams,m)))
  sockopen -e tapisocket. [ $+ [ %sockname ] ] api.twitch.tv 443
  sockmark tapisocket. [ $+ [ %sockname ] ] $encode(%encodedparams,m)
}
alias parseserbioNEW {
  var %params $2
  if ($json(kraken\ $+ $1 $+ .txt,bio) != $null) {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! The bio for the user $remove($decodeparams(%params,4),/users/) is $json(kraken\ $+ $1 $+ .txt,bio)
  }
  else {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! There seems to have been an error. MSG: $json(kraken\ $+ $1 $+ .txt,message)
  }
}
;calling and called aliases to add endpoints "easily"
alias getuserstatsnewsockT {
  ; 1.method 2.baseurl 3.rootendpoint 4.urlendpoint 5.oauthusername 
  ; 6.jsonorform 7.urlparams 8.data 9.channel 10.usercalled 11.aliascallback
  var %method GET
  var %baseurl api.twitch.tv
  var %rootendpoint /kraken
  var %urlendpoint /channels/ $+ $1
  var %oauthusername !$null
  var %jsonorform application/x-www-form-urlencoded
  var %urlparams !$null
  var %data !$null
  var %channel $2
  var %usercalled $3
  var %aliascallback parseserstatsNEW
  var %encodedparams $encodeparams($encode(%method,m),$encode(%baseurl,m),$encode(%rootendpoint,m),$encode(%urlendpoint,m),$encode(%oauthusername,m),$encode(%jsonorform,m),$encode(%urlparams,m),$encode(%data,m),$encode(%channel,m),$encode(%usercalled,m),$encode(%aliascallback,m))
  var %sockname $md5($+($ctime,$encode(%encodedparams,m)))
  sockopen -e tapisocket. [ $+ [ %sockname ] ] api.twitch.tv 443
  sockmark tapisocket. [ $+ [ %sockname ] ] $encode(%encodedparams,m)
}
alias parseserstatsNEW {
  var %params $2
  if ($json(kraken\ $+ $1 $+ .txt,views) != $null) {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! The user $remove($decodeparams(%params,4),/channels/) has $json(kraken\ $+ $1 $+ .txt,views) overall views with $&
      $json(kraken\ $+ $1 $+ .txt,followers) followers
  }
  else {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! There seems to have been an error. MSG: $json(kraken\ $+ $1 $+ .txt,message)
  }
}
;calling and called aliases to add endpoints "easily"
alias getusergamenewsockT {
  ; 1.method 2.baseurl 3.rootendpoint 4.urlendpoint 5.oauthusername 
  ; 6.jsonorform 7.urlparams 8.data 9.channel 10.usercalled 11.aliascallback
  var %method GET
  var %baseurl api.twitch.tv
  var %rootendpoint /kraken
  var %urlendpoint /channels/ $+ $1
  var %oauthusername !$null
  var %jsonorform application/x-www-form-urlencoded
  var %urlparams !$null
  var %data !$null
  var %channel $2
  var %usercalled $3
  var %aliascallback parsesergameNEW
  var %encodedparams $encodeparams($encode(%method,m),$encode(%baseurl,m),$encode(%rootendpoint,m),$encode(%urlendpoint,m),$encode(%oauthusername,m),$encode(%jsonorform,m),$encode(%urlparams,m),$encode(%data,m),$encode(%channel,m),$encode(%usercalled,m),$encode(%aliascallback,m))
  var %sockname $md5($+($ctime,$encode(%encodedparams,m)))
  sockopen -e tapisocket. [ $+ [ %sockname ] ] api.twitch.tv 443
  sockmark tapisocket. [ $+ [ %sockname ] ] $encode(%encodedparams,m)
}
alias parsesergameNEW {
  var %params $2
  if ($json(kraken\ $+ $1 $+ .txt,game) != $null) {
  msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! The user $remove($decodeparams(%params,4),/channels/) is playing $json(kraken\ $+ $1 $+ .txt,game)  }
  else {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! There seems to have been an error. MSG: $json(kraken\ $+ $1 $+ .txt,message)
  }
}
;calling and called aliases to add endpoints "easily"
alias getuserstatusnewsockT {
  ; 1.method 2.baseurl 3.rootendpoint 4.urlendpoint 5.oauthusername 
  ; 6.jsonorform 7.urlparams 8.data 9.channel 10.usercalled 11.aliascallback
  var %method GET
  var %baseurl api.twitch.tv
  var %rootendpoint /kraken
  var %urlendpoint /channels/ $+ $1
  var %oauthusername !$null
  var %jsonorform application/x-www-form-urlencoded
  var %urlparams !$null
  var %data !$null
  var %channel $2
  var %usercalled $3
  var %aliascallback parseuserstatusNEW
  var %encodedparams $encodeparams($encode(%method,m),$encode(%baseurl,m),$encode(%rootendpoint,m),$encode(%urlendpoint,m),$encode(%oauthusername,m),$encode(%jsonorform,m),$encode(%urlparams,m),$encode(%data,m),$encode(%channel,m),$encode(%usercalled,m),$encode(%aliascallback,m))
  var %sockname $md5($+($ctime,$encode(%encodedparams,m)))
  sockopen -e tapisocket. [ $+ [ %sockname ] ] api.twitch.tv 443
  sockmark tapisocket. [ $+ [ %sockname ] ] $encode(%encodedparams,m)
}
alias parseuserstatusNEW {
  var %params $2
  if ($json(kraken\ $+ $1 $+ .txt,status) != $null) {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! The status of the user $remove($decodeparams(%params,4),/channels/) is $json(kraken\ $+ $1 $+ .txt,status) 
  }
  else {
    msg $decodeparams(%params,9) Hey $decodeparams(%params,10) $+ ! There seems to have been an error. MSG: $json(kraken\ $+ $1 $+ .txt,message)
  }
}

Comments

Sign in to comment.
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.