-
Notifications
You must be signed in to change notification settings - Fork 905
/
soundcloud.js
34 lines (32 loc) · 867 Bytes
/
soundcloud.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
define(['jquery','song'],function($,Song){
var consumer_key = "89e7642d86f9241b0d1917ebfae99e38",
load = function(url,callback){
url += url.match(/[a-z]*\?/i) ? '&':'?';
url += 'consumer_key=' + consumer_key+'&format=json&callback=?';
$.getJSON(url, function(data){
if(data.tracks){
done(data.tracks,callback);
}else if($.isArray(data)){
done(data, callback);
}else{
load(data.uri+'/tracks',callback);
}
});
},
done = function(data,callback){
callback($.map(data,function(track){
var url = track.stream_url;
url += url.match(/[a-z]*\?/i) ? '&':'?';
url += 'consumer_key=' + consumer_key;
return new Song({
title:track.title,
url:url
});
}));
};
return {
load:function(url, req, callback, config){
load('http://api.soundcloud.com/resolve?url=' + url,callback);
}
}
});