我正在重新设计我的网站,我想要更新/改进所涉及的各种脚本。一个这样的脚本是为一组拖缆调用Twitch API,然后显示谁在线,如果有的话,显示第一个直播流并允许用户在它们之间切换。
我的原始脚本很有效,最初由StackOverflow上的某人构建。问题是,他们没有引导我找到可用的答案,而是重写了我的代码,以一种我很难遵循的方式工作。老实说,我不知道它们的循环是如何起作用的。它有效,我现在用它,但那是我的错。我想重新开始并为数组中的每个用户获得一个返回,然后根据他们的实时状态结果构建出来。我不明白这个代码目前是如何完成的,我似乎无法弄清楚它是如何保存返回的,所以我无法正确地将其记录到控制台看它并正确使用它。
长话短说,任何人都可以帮助我在循环中为每个用户简单地返回,这样我就可以将它记录到控制台并查看它并直接使用它而不是将片段保存到一百万个变量中?这是我目前正在使用的代码:
$(document).ready(function () {
var casters = ["marcusraven86","whit3rabbit87","dragonbornmonocle","m3ta1head","jimmyjojo7","redshoes","sergeantatams","stevechopz"];
var castersLive = [];
var reqs = $.map(casters, function (userName, i) {
return $.getJSON('https://api.twitch.tv/kraken/streams/' + userName + '.json?callback=?');
})
$.when.apply($, reqs).done(function () {
$.each(arguments, function (i, array) {
var data = array[0];
var userName = casters[i];
console.log(data);
if (data.stream === null) {
$('<div class="streampost"></div>').append(
'<a id="offline' + userName + '" class = "offline" href="http://www.twitch.tv/' + userName + '/profile" title="' + userName + '" target="_blank"></a>').appendTo('#statusblock');
}
else {
castersLive.push(casters[i]);
$('<div class="streampost"></div>').append(
'<a id="online' + userName + '" class = "online" href="http://player.twitch.tv/?channel=' + userName + '" title="' + userName + '" target="stream"></a>').appendTo('#statusblock');
}
});
console.log(castersLive);
if (castersLive.length > 0) {
$('<div class="streamplayer embed-responsive embed-responsive-16by9"></div>').append('<iframe src="http://player.twitch.tv/?channel=' + castersLive[0] +'" name="stream"></iframe><iframe src="http://www.twitch.tv/' + castersLive[0] + '/chat?popout=" frameborder="0" scrolling="no" height="478" width="350" id="chatFrame" name="chatFrame"></iframe>').appendTo('#streamblock');
}
else {}
$('.online').click(function() {
var streamName = $(this).attr('title');
$('#chatFrame').attr('src', 'http://www.twitch.tv/' + streamName + '/chat?popout=');
});
});
});
这是我尝试重新启动的地方,但我似乎无法正确调用API。我对这一切还有点新意,我也使用Tumblr和YouTube API。每个都是不同的,它让我失望了。
$(document).ready(function () {
var casters = ["marcusraven86","whit3rabbit87","dragonbornmonocle","m3ta1head","jimmyjojo7","redshoes","sergeantatams","stevechopz"];
var castersLive = [];
for (i=0; i <= casters.length; i++) {
$.get('https://api.twitch.tv/kraken/streams/' + casters[i] + '.json?callback=?'), function ( data ) {
console.log(data);
};
};