So i did everything by hand again.
<?php
class Twitch {
public function getContents($url) {
$clientID = ‘axjhfp777tflhy0yjb5sftsil’;$opts = array( 'http' => array( 'method' => "GET", 'header' => "Client-ID: $clientID" ) );
$context = stream_context_create($opts);
return file_get_contents($url, false, $context);}
public function getApiUri($type) {
$apiUrl = “https://api.twitch.tv/kraken”;
$apiCalls = array(
“streams” => $apiUrl.“/streams/”,
“search” => $apiUrl.“/search/”,
“channel” => $apiUrl.“/channels/”,
“user” => $apiUrl.“/user/”,
“teams” => $apiUrl.“/teams/”,
“games” => $apiUrl.“/games/top”,
“search” => $APIURL.“/search/”
);
return $apiCalls[$type];
}
public function getFeatured($game) {
$s = file_get_contents($this->getApiUri(“streams”).“?game=”.urlencode($game).“&limit=1&offset=0”);
$activeStreams = json_decode($s, true);
$streams = $activeStreams[“streams”];
foreach($streams as $stream) {
return $stream[“channel”][“name”];
}
}
public function getGames($amt) {
$s = $this->getContents($this->getApiUri(“games”).“?limit=$amt&offset=0”);
$activeGames = json_decode($s, true);
$games = $activeGames[“top”];
return $games;
}
public function getStreams($game, $page, $limit, $dopg) {
$offset = ($page-1)*$limit;
$total = floor($activeStreams[“_total”]/$limit);
//Pagination $nextPage = $page+1; $paginate = ""; if($page>1) { $prevPage = $page-1; $pageinate .= "<a href='?game=$game&pg=$prevPage'>< Previous Page</a>"; } $pageinate .= "<a href='?game=$game&pg=$nextPage'>Next Page ></a>";
//Streams $s = $this->getContents($this->getApiUri("streams")."?game=".urlencode($game)."&limit=$limit&offset=$offset"); $activeStreams = json_decode($s, true); $streams = $activeStreams["streams"]; $final = ""; foreach($streams as $stream) { $imgsm = $stream["preview"]["small"]; $imgmed = $stream["preview"]["medium"]; $viewers = $stream["viewers"]; $channel = $stream["channel"]; $status = substr($channel["status"],0,40)."[...]"; $twitchName = $channel["name"]; $twitchDisplay = $channel["display_name"]; $twitchLink = $channel["url"];
$final .= "<a class=\"stream-item\" href=\"?channel=$twitchName\"><img src=\"$imgmed\"><span class=\"name\">$twitchDisplay's Stream</span><span class=\"viewers\">$viewers viewers</span></a>"; } if($dopg) { $final .="<div class='stream-pagination'>".$pageinate."</div>"; } return $final;}
public function getUserStreams2($channels, $showOffline) {
//Pull Stream Data
$stream = $this->getContents($this->getApiUri(“streams”).“?channel=”.$channels);
$streamData = json_decode($stream, true);
$online = array(); $channelArray = explode(",", $channels);
if($streamData["_total"] > 0) { foreach($streamData["streams"] as $key=>$value){ $name = strtolower($value["channel"]["name"]);
//Set Channel to Online $online[$name]["stream"] = $value;
} }
foreach ($channelArray as $channel) { $oc = $online[$channel]; if($oc) { $imgsm = $oc["stream"]["preview"]["small"]; $imgmed = $oc["stream"]["preview"]["medium"]; $viewers = $oc["stream"]["viewers"]; $ch = $oc["stream"]["channel"]; $status = substr($ch["status"],0,40)."[...]"; $twitchName = $ch["name"]; $twitchDisplay = $ch["display_name"]; $twitchLink = $ch["url"]; //$final.=json_encode($oc); $final .= "<a class=\"stream-item\" href=\"?channel=$channel\"><img src=\"$imgmed\"><span class=\"name\">$twitchDisplay's Stream</span><span class=\"viewers\"><span class='online-icon'></span> $viewers viewers</span></a>"; } else { if($showOffline=="true") { $final .= "<a class=\"stream-item\" href=\"?channel=$channel\"><img src=\"http://static-cdn.jtvnw.net/ttv-static/404_preview-320x180.jpg\"><span class=\"name\">$channel's Stream</span><span class=\"viewers\"><span class='offline-icon'></span> Offline</span></a>"; } } } //return json_encode($channelArray); return $final;}
public function getUserStreams($channels, $showOffline) {
//Streams
$final = “”;
$offline = array();
foreach($channels as $channel) {
$stream = $this->getContents($this->getApiUri(“streams”).$channel);
$streamData = json_decode($stream, true);
if(is_null($streamData["stream"])) { array_push($offline, $channel); continue; } else { $imgsm = $streamData["stream"]["preview"]["small"]; $imgmed = $streamData["stream"]["preview"]["medium"]; $viewers = $streamData["stream"]["viewers"]; $ch = $streamData["stream"]["channel"]; $status = substr($ch["status"],0,40)."[...]"; $twitchName = $ch["name"]; $twitchDisplay = $ch["display_name"]; $twitchLink = $ch["url"]; $final .= "<a class=\"stream-item\" href=\"?channel=$channel\"><img src=\"$imgmed\"><span class=\"name\">$twitchDisplay's Stream</span><span class=\"viewers\"><span class='online-icon'></span> $viewers viewers</span></a>"; } }
if($showOffline=="true") { foreach($offline as $channel) { $cdata = $this->getContents($this->getApiUri("channel").$channel); $ch = json_decode($cdata, true);
$status = substr($ch["status"],0,40)."[...]"; $twitchName = $ch["name"]; $twitchDisplay = $ch["display_name"]; $twitchLink = $ch["url"]; $imgmed = $ch["logo"]; $followers = $ch["followers"]; $final .= "<a class=\"stream-item\" href=\"?channel=$channel\"><div class='offline-streamer'><img src=\"$imgmed\"></div><span class=\"name\">$twitchDisplay's Stream</span><span class=\"viewers\"><span class='offline-icon'></span> $followers followers</span></a>"; } }
return $final;}
public function getChannel($channel) {
$c = $this->getContents($this->getApiUri(“channel”).$channel);
$channelData = json_decode($c, true);
return $channelData;
}
public function getFollowers($channel) {
$f = $this->getContents($this->getApiUri(“channel”).$channel.“/follows”);
$followData = json_decode($f, true);
return $followData[“_total”];
}
public function isLive($channel) {
$s = $this->getContents($this->getApiUri(“streams”).$channel);
$streamData = json_decode($s, true);
if(is_null($streamData[“stream”])) {
return false;
} else {
return true;
}
return true;
}
public function getChannelStream($channel) {
$s = $this->getContents($this->getApiUri(“streams”).$channel);
$streamData = json_decode($s, true);
return $streamData;
}
}
?>
Now i have some streams poping up on the home page but shows as offline instead of online. and i get this error as well
Warning: file_get_contents(https://api.twitch.tv/kraken/streams/?channel=the_aaron,mega64podcast): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /home/content/a2pnexwpnas03_data03/96/3342496/html/wp-content/plugins/TwitchWP/inc/Twitch.php on line 17
Im really trying to understand this. Nice site btw.
http://www.dragonslive.online