1

現在、Twitch ボットの新しいアップタイム コマンドに取り組んでおり、ソケットに問題があります。このページhttp://api.twitch.tv/api/channels/duilio1337を使用して、ストリーマーがオンラインかどうかを確認しようとしています。正常に動作する場合もありますが、ページ ヘッダーを読み取るがページを読み取らない場合もあります。ランダムのようです。

alias uptimecheck {
  echo -a CHECKING CHANNEL $1 STATUS
  %uptimeurl = /api/channels/ $+ $1
  %uptimecheckchan = $1
  sockopen wuptime api.twitch.tv 80
}

on *:sockopen:wuptime: {
  sockwrite -n $sockname GET %uptimeurl HTTP/1.0
  sockwrite -n $sockname User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
  sockwrite -n $sockname Host: api.twitch.tv
  sockwrite -n $sockname Accept-Language: en-us
  sockwrite -n $sockname Accept: */*
  sockwrite -n $sockname
}

on *:sockread:wuptime: {
  if ($sockerr) {
    echo -a UPTIME Connection Error.
    halt
  }
  else {
    sockread -f %uptimeliverail
    if ($sockbr == 0) return
    ;echo -a %uptimeliverail
  }
}

on *:sockclose:wuptime: {
  var %TEMPliverail $mid(%uptimeliverail, $calc($pos(%uptimeliverail, "twitch_liverail_id") + 21), 4)
  if (%TEMPliverail == null) {
    set %uptimelive. $+ %uptimecheckchan 0
  }
  else if (%TEMPliverail isnum) {
    set %uptimelive. $+ %uptimecheckchan 1
  }
}
4

2 に答える 2