var streamers = ["freecodecamp", "muczaczoslive", "kubon_", "chubbysue", "raav92", "dejavi", "docgotgame", "arquel", "mrcomtruise", "richiix27", "storbeck", "haluc86", "dnku123", "salva_salwa", "terakilobyte", "habathcx", "RobotCaleb", "thomasballinger", "noobs2ninjas", "beohoff"],
streamersString = "",
isOnline = [],
isOffline = [];
for (var i = 0; i < streamers.length; i++) {
streamersString = streamersString + streamers[i] + ",";
}
// function substr(str){
// return str.substrsing(0,str.length-1);
// }
// esl_csgo,haluc86,dnku123,salva_salwa
url = 'https://api.twitch.tv/kraken/streams?channel=' + streamersString;
$.ajax({
type: "GET",
url: url,
contentType: "application/json; charset=utf-8",
async: false,
dataType: "jsonp",
success: function(data) {
console.log("scs");
var streamData,
channelData = [],
preview = [],
dispName = [],
name = [],
links = [],
games = [],
status = [],
views = [],
broadcasterLanguage = [],
logo = [],
emptyDiv = [],
isHidden = true;
streamData = data.streams;
for (var i = 0; i < streamData.length; i++) {
channelData[i] = data.streams[i]["channel"];
links[i] = channelData[i]["url"];
games[i] = streamData[i]["game"];
preview[i] = streamData[i]["preview"]["large"];
views[i] = streamData[i]["viewers"];
broadcasterLanguage[i] = channelData[i]["broadcaster_language"];
dispName[i] = channelData[i]["display_name"];
name[i] = channelData[i]["name"];
logo[i] = channelData[i]["logo"];
status[i] = channelData[i]["status"];
views[i] = channelData[i]["views"];
isOnline[i] = name[i];
$("#content").append(
"<div class ='item clearfix online' >" +
"<div class = 'logo col-xs-12 col-md-12'>" +
"<a target='_blank' href=" + links[i] + ">" + "<img class ='img-circle img-thumbnail images pull-left' src =" + logo[i] + ">" + "</a>" +
"<span class = 'name'>" + "<h1>" + dispName[i] + "<sup>" + "<span class = 'lang '>" + broadcasterLanguage[i] + "</span>" + "</sup>" + "</h1>" + "<div class = 'preview'>" + "<button style = 'outline: none; background: none; border: none' class = 'btn btn-default btn-sm click' id=" + "previewButton" + i + ">" + "Preview" + "</button>" + "</span>" +
"</div>" +
"<div class = 'more pull-right col-lg-10 col-xs-12'>" +
"<span class = 'games'>" + "<strong>Game: </strong>" + "<em>" + games[i] + "</em>" + "</span>" +
"<span class = 'status'>" + "<p class = 'desc'>" + status[i] + "</p>" + "</span>" +
"<div class= 'previewImage' style = 'display: none; text-align: center' id=empty" + i + ">" + "<img src=" + preview[i] + " id=" + "previewImage" + i + ">" + "</div>" +
"</div>" +
"</div>" + "<hr>"
);
//Adding event listeners and leaving only number
$("#previewButton" + i).on("click", function(event) {
var clickedElementId = event.target.id
clickedElementId = clickedElementId.replace(/\D+/g, '');
$("#empty" + clickedElementId).toggle("slow");
});
}
isOffline = streamers;
for (var i = 0; i < isOnline.length; i++) {
for (var j = 0; j < streamers.length; j++) {
if (isOnline[i] === streamers[j]) {
isOffline[j] = "";
}
}
}
for (var i = 0; i < isOffline.length; i++) {
if (isOffline[i] !== "") {
$("#content").append(
"<div class ='item clearfix offline' >" +
"<h1 style = 'color: white' class = 'text-center'>" + "<img src=https://c1.staticflickr.com/7/6095/6851107174_631d916876_o.jpg class = 'img-circle img-thumbnail'>" + isOffline[i] + "</h1>" +
"</div>"
);
}
}
// Showing online/offline elements
$("#all").on("click", function() {
$(".item").show(600);
});
$("#online").on("click", function() {
$(".offline").slideUp(600);
$(".online").show(600);
});
$("#offline").on("click", function() {
$(".online").slideUp(600);
$(".offline").show(600);
});
},
error: function(error) {
console.log(error);
}
});
body,
html {
background: url('http://moserworld.pl/Apps/twitch/b4.jpg');
background-size: cover;
background-position: center;
height: 100%;
}
.container {
background: white;
}
/*.box{
border: 2px solid gray;
}*/
.images {
width: 80px;
margin-top: 5px;
box-shadow: 0px -17px 16px -9px gold;
}
.item {
border-radius: 20px;
padding: 0;
padding: 10px;
background: repeating-linear-gradient( -55deg, #222, #222 10px, #333 10px, #333 20px);
margin: 40px;
border-top: none;
box-shadow: 0px 13px 4px darkgrey;
}
.games {
color: aliceblue;
}
hr {
border: 0;
height: 1px;
background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0));
}
.name h1 {
font-family: monospace;
font-weight: initial;
font-size: 25px;
padding-left: 100px;
font-style: initial;
border: 2px outset gainsboro;
border-top: none;
border-left: none;
margin-left: 41px;
padding: 0px;
background: -webkit-linear-gradient(90deg, rgb(103, 76, 193) 0%, rgb(90, 140, 250) 70%);
background: -moz-linear-gradient(90deg, rgb(103, 76, 193) 0%, rgb(90, 140, 250) 70%);
background: -o-linear-gradient(90deg, rgb(103, 76, 193) 0%, rgb(90, 140, 250) 70%);
background: linear-gradient(90deg, rgb(103, 76, 193) 0%, rgb(90, 140, 250) 70%);
height: 40px;
padding-top: 10px;
margin-bottom: 20px;
line-height: 0.78;
border-radius: 10px;
padding-left: 50px;
}
.desc {
font-size: 20px;
font-family: -webkit-body;
background: whitesmoke;
border: 1px outset azure;
border-top: none;
border-left: none;
width: 100%;
margin-top: 10px;
padding: 4px;
padding-left: 30px;
}
.lang {
font-size: 20px;
padding: 5px;
}
.logo h1 {
color: aliceblue;
}
.move {
border: 5px solid gray;
padding-top: 20px;
padding-bottom: 30px;
}
.preview {
margin-left: 40px;
background: azure;
width: 109px;
margin-top: -20px;
height: 25px;
font-style: italic;
border: 2px dashed gold;
border-top: none;
}
.buttonClick {
height: 25px;
background: none;
width: 67px;
padding-left: 0px;
padding: 0px;
border: none;
outline: none;
}
.red {
border: 2px solid red;
}
.hide {
height: 600px;
}
.previewImage img {
border: 4px solid white;
border-radius: 7px;
}
.offline h1 {
float: left;
color: #ddd;
font-family: monospace;
}
.offline img {
width: 120px;
float: left;
}
footer {
margin-top: 10px;
}
<html>
<head>
<meta charset="utf-8">
<title>Twitch Viewer</title>
<link rel="stylesheet" href="master.css" media="screen" title="no title" charset="utf-8">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.css" media="screen" title="no title" charset="utf-8">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" media="screen" title="no title" charset="utf-8">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js" charset="utf-8"></script>
<script src="sp.js" charset="utf-8"></script>
<style src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"></style>
</head>
<body>
<nav class="navbar navbar-default">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#"><i style ="font-size: 30px" class="fa fa-twitch"></i> Viewer</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li id="all" class="active"><a href="#">All</a></li>
<li><a id="online" href="#">Online</a></li>
<li><a id="offline" href="#">Offline</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="active"><a target="_blank" href="http://www.moserworld.pl"><i class = "fa fa-home"></i></a></li>
<li><a target="_blank" href="https://www.facebook.com/kamil.antropik"><i class="fa fa-facebook"></i></a></li>
<li><a target="_blank" href="https://twitter.com/MoserDraws"><i class="fa fa-twitter"></i></a></li>
<li><a target="_blank" href="https://www.instagram.com/mosermuz/"><i class = "fa fa-instagram"></i></a></li>
</ul>
</div>
<!--/.nav-collapse -->
</div>
<!--/.container-fluid -->
</nav>
<div class="container">
<div class="row">
<div class="col-lg-12 move">
<div id="content" class="col-lg-12 box">
</div>
</div>
</div>
</div>
<footer class="container">Written and coded by © <em>Kamil Antropik</em></footer>
<script type="text/javascript">
</script>
</body>
</html>