Codepen, Twitchtv JSON API
HTML
<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet"> <div class="row"> <div class="col-md-6 col-md-offset-3"> <div class="animated bounceIn"> <div class="header"> <h1 class="title"> Twitch TV Streamers</h1> <nav class="navbar"> <div class="container-fluid"> <ul class="nav navbar-nav"> <li><a class="navtext all" type="button">All</a></li> <li><a class="navtext online" type="button">Online</a></li> <li><a class="navtext offline" type="button">Offline</a></li> </ul> </div> </nav> <div class="container-fluid"> </div> <div class="streamers"> <div class="streamerblock streamerblock0"> <img src="https://x1.xingassets.com/assets/frontend_minified/img/users/nobody_m.original.jpg" class="profile0 profile img-circle"> <a type="button" class="name0 name">Name</a> <p class="stream0 stream">Stream/Offline</p> <div class="line"></div> </div> <div class="streamerblock streamerblock1"> <img src="https://x1.xingassets.com/assets/frontend_minified/img/users/nobody_m.original.jpg" class="profile profile1 img-circle"> <a type="button" class="name name1">Name</a> <p class="stream stream1">Stream/Offline</p> <div class="line"></div> </div> <div class="streamerblock streamerblock2"> <img src="https://x1.xingassets.com/assets/frontend_minified/img/users/nobody_m.original.jpg" class="profile profile2 img-circle"> <a type="button" class="name name2">Name</a> <p class="stream stream2">Stream/Offline</p> <div class="line"></div> </div> <div class="streamerblock streamerblock3"> <img src="https://x1.xingassets.com/assets/frontend_minified/img/users/nobody_m.original.jpg" class="profile profile3 img-circle"> <a type="button" class="name name3">Name</a> <p class="stream stream3">Stream/Offline</p> <div class="line"></div> </div> <div class="streamerblock streamerblock4"> <img src="https://x1.xingassets.com/assets/frontend_minified/img/users/nobody_m.original.jpg" class="profile profile4 img-circle"> <a type="button" class="name name4">Name</a> <p class="stream stream4">Stream/Offline</p> <div class="line"></div> </div> <div class="streamerblock streamerblock5"> <img src="https://x1.xingassets.com/assets/frontend_minified/img/users/nobody_m.original.jpg" class="profile profile5 img-circle"> <a type="button" class="name name5">Name</a> <p class="stream stream5 ">Stream/Offline</p> <div class="line"></div> </div> <div class="streamerblock streamerblock6"> <img src="https://x1.xingassets.com/assets/frontend_minified/img/users/nobody_m.original.jpg" class="profile profile6 img-circle"> <a type="button" class="name name6"></a> <p class="stream stream6">Stream/Offline</p> <div class="line"></div> </div> <div class="streamerblock streamerblock7"> <img src="https://x1.xingassets.com/assets/frontend_minified/img/users/nobody_m.original.jpg" class="profile profile7 img-circle"> <a type="button" class="name name7">Name</a> <p class="stream stream7">Stream/Offline</p> <div class="line"></div> </div> </div> <footer> <div class="about"> <p class="text-center abouttext">This is a project by Yaroslav Kolesnikov for <a type="button" class="fcc">Free Code Camp</a> 2016</p> </div> </footer> </div> </div> </div> </div>
CSS
body{ background-color:#C6CAC1; } .header{ width:100%; background-color:#B2AAAA; text-align:center; border-radius:10px; margin:auto; } .title{ padding-top:20px; font-family:Lato; color:#6441A5; } .myname{ font-size:20px; color:#6441A5; } .navbar{ margin:auto; } .streamers{ width:100%; margin:auto; background:white; border-radius:10px; padding-bottom:20px; text-align: left; } nav{ background-color:#6441A5; font-family:Lato; } .text{ color:#6441A5; font-family:Lato; } .abouttext{ background-color:#B2AAAA; border-radius:10px; color:#6441A5; margin-top:20px; } .profile{ border-radius:100%; width:70px; margin-top:2%; margin-bottom:2%; margin-left:2%; } .name{ color:#6441A5; font-size:15px; display:inline-block; } .stream{ color:#6441A5; font-size:15px; display:inline-block; } .line{ width:100%; height:1px; background-color:#6441A5; } .navtext{ font-size:1.5rem; }
JS
var streamers =[ "freecodecamp","OgamingSC2", "RobotCaleb","brunofin12","noobs2ninjas","storbeck", "cretetion","habathcx","ESL_SC2"]; var offline; var streamerurl; $(document).ready(function(){ function twitchstreamer(streamer,block){ $.ajax({ type: 'GET', url: 'https://api.twitch.tv/kraken/channels/' + streamer, headers: { 'Client-ID': 'ttmj4g3n804793e2zkjpybb2grkgh3' }, success: function(data) { console.log(data); $('.name' + block).html(data.display_name); var profilepic = data.logo; $('.profile' + block).attr("src", profilepic); $('.name' + block).click(function(){ window.open('https://twitch.tv/'+streamer) }) } }) $.ajax({ type: 'GET', url: 'https://api.twitch.tv/kraken/streams/' + streamer, headers: { 'Client-ID': 'co9k9t8sd7pi3lq1p3jvc2oyaojbpf3' }, success: function(idx) { console.log(idx); if(idx.stream === null){ //Offline $('.stream' + block).html('Offline'); $('.streamerblock' + block).addClass('channeloffline'); }else{ $('.stream' + block).html(idx.stream.channel.status); $('.streamerblock' + block).addClass('channelonline'); } }, error:function(err){ //The channel does not exist console.log(err); $('.stream').html('This channel does not exist'); } }) } twitchstreamer(streamers[0],0);//1 twitchstreamer(streamers[1],1);//2 twitchstreamer(streamers[2],2);//3 twitchstreamer(streamers[3],3);//4 twitchstreamer(streamers[4],4);//5 twitchstreamer(streamers[5],5);//6 twitchstreamer(streamers[6],6);//7 twitchstreamer(streamers[7],7);//8 $('.all').click(function(){ $('.channelonline').show(); $('.channeloffline').show(); }) $('.online').click(function(){ $('.channeloffline').hide(); $('.channelonline').show(); }) $('.offline').click(function(){ $('.channeloffline').show(); $('.channelonline').hide(); }) $('.fcc').click(function(){ openfcc(); }) }) function openfcc(){ window.open('https://freecodecamp.com'); }
See the Pen Twitchtv JSON API by YaroslavW (@YaroslavW) on CodePen.
Комментариев нет:
Отправить комментарий