2017-01-09 14:43:56 +00:00
|
|
|
$(function(){
|
2016-11-17 22:07:22 +00:00
|
|
|
|
2017-08-04 18:29:08 +00:00
|
|
|
searchTimeout = null;
|
|
|
|
|
2017-08-04 20:08:31 +00:00
|
|
|
/* Click on a radio station (table entry) and play it */
|
|
|
|
$('body').on('click', 'tr', function() {
|
2017-01-08 08:36:13 +00:00
|
|
|
var stationid = $(this).attr('data-id');
|
|
|
|
play_station(stationid);
|
2017-08-04 20:08:31 +00:00
|
|
|
});
|
2017-08-04 18:29:08 +00:00
|
|
|
|
2017-08-04 20:08:31 +00:00
|
|
|
/*
|
2017-08-04 18:29:08 +00:00
|
|
|
$('body').on('click', 'tr .icon', function() {
|
|
|
|
alert('test');
|
|
|
|
});
|
|
|
|
|
|
|
|
$('.icon-star').click(function (){
|
|
|
|
alert('test');
|
2016-11-17 22:07:22 +00:00
|
|
|
});
|
2017-08-04 20:08:31 +00:00
|
|
|
*/
|
2016-11-17 22:07:22 +00:00
|
|
|
|
2017-01-08 08:36:13 +00:00
|
|
|
function play_station(stationid){
|
|
|
|
$.ajax({
|
|
|
|
method: "GET",
|
2017-08-04 20:08:31 +00:00
|
|
|
url: "https://www.radio-browser.info/webservice/v2/json/url/"+stationid,
|
2017-01-08 08:36:13 +00:00
|
|
|
dataType: 'json',
|
|
|
|
success: function(data){
|
|
|
|
var sourceUrl = data['url'];
|
|
|
|
$("#player").attr("src", sourceUrl);
|
|
|
|
$('#player').trigger('play');
|
2017-08-04 20:08:31 +00:00
|
|
|
$('#playbutton').attr("class", "pause");
|
2017-01-08 08:36:13 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2017-01-06 09:52:12 +00:00
|
|
|
function render_result(data){
|
2016-11-17 22:07:22 +00:00
|
|
|
$.each(data, function(i, station) {
|
2017-01-06 08:59:20 +00:00
|
|
|
$('tbody').append('<tr data-src='+station['url']+' data-id='+station['id']+'>\
|
2017-01-04 17:54:04 +00:00
|
|
|
<td class="filename">\
|
2017-01-09 13:36:07 +00:00
|
|
|
<a href="#" class="action action-favorite" onclick="station_fav();">\
|
2017-01-04 17:54:04 +00:00
|
|
|
<span class="icon icon-star"></span>\
|
|
|
|
<span class="hidden-visually">Favorite</span>\
|
|
|
|
</a>\
|
|
|
|
<label for="select-files-3">\
|
|
|
|
<div class="thumbnail" style="background-image:url('+station['favicon']+'); background-size: 32px;"></div>\
|
|
|
|
</label>\
|
|
|
|
<a class="name" href="#">\
|
|
|
|
<span class="nametext"><span class="innernametext">'+station['name']+'</span></span>\
|
|
|
|
</a>\
|
|
|
|
</td>\
|
2016-11-18 21:45:53 +00:00
|
|
|
</tr>');
|
2016-11-17 22:07:22 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2017-01-08 08:36:13 +00:00
|
|
|
function get_station_ids(){
|
2017-08-04 18:29:08 +00:00
|
|
|
var stations = []
|
2017-02-21 16:57:30 +00:00
|
|
|
var baseUrl = OC.generateUrl('/apps/radio');
|
2017-08-04 18:29:08 +00:00
|
|
|
var station = {
|
|
|
|
"id": 16,
|
|
|
|
"stationid": "89920",
|
|
|
|
"active": true
|
|
|
|
};
|
2017-02-21 16:57:30 +00:00
|
|
|
$.get(baseUrl + '/stations', function ( data ) {
|
2017-08-04 18:29:08 +00:00
|
|
|
for (var station in data) {
|
|
|
|
stations.push(data[station]["stationid"]);
|
|
|
|
};
|
|
|
|
render_stations(stations);
|
2017-02-16 12:00:43 +00:00
|
|
|
});
|
2017-01-08 08:36:13 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
function render_stations(station_ids){
|
|
|
|
for (stationid in station_ids){
|
|
|
|
$.ajax({
|
|
|
|
method: "GET",
|
|
|
|
url: "https://www.radio-browser.info/webservice/json/stations/byid/"+station_ids[stationid],
|
|
|
|
dataType: 'json',
|
|
|
|
success: render_result
|
|
|
|
});
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2017-01-06 09:52:12 +00:00
|
|
|
function radio_query(type, query){
|
|
|
|
switch (type) {
|
|
|
|
case 0:
|
|
|
|
var url = "https://www.radio-browser.info/webservice/json/stations/search";
|
|
|
|
break;
|
|
|
|
case 1:
|
|
|
|
var url = "https://www.radio-browser.info/webservice/json/stations/topclick/20";
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
var url = "https://www.radio-browser.info/webservice/json/stations/lastchange/20";
|
|
|
|
break;
|
|
|
|
};
|
2016-11-17 22:07:22 +00:00
|
|
|
$.ajax({
|
|
|
|
method: "POST",
|
2017-01-06 09:52:12 +00:00
|
|
|
url: url,
|
2016-11-17 22:07:22 +00:00
|
|
|
data: {
|
2017-01-09 14:43:56 +00:00
|
|
|
name: query,
|
|
|
|
limit: 20
|
2016-11-17 22:07:22 +00:00
|
|
|
},
|
|
|
|
dataType: 'json',
|
2017-01-06 09:52:12 +00:00
|
|
|
success: render_result
|
2016-11-17 22:07:22 +00:00
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2017-01-06 09:52:12 +00:00
|
|
|
function switch_menu(type) {
|
2017-01-08 08:36:13 +00:00
|
|
|
$('#app-navigation').find('li').removeClass("active");
|
|
|
|
$("tbody > tr").remove();
|
2017-01-06 09:52:12 +00:00
|
|
|
switch (type) {
|
|
|
|
case 0:
|
|
|
|
$('li.nav-files').addClass('active');
|
|
|
|
radio_query(1);
|
|
|
|
break;
|
|
|
|
case 1:
|
|
|
|
$('li.nav-recent').addClass('active');
|
|
|
|
radio_query(2);
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
$('li.nav-favorite').addClass('active');
|
2017-08-04 18:29:08 +00:00
|
|
|
get_station_ids();
|
2017-01-06 09:52:12 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$('a.nav-icon-files').click(function() {
|
|
|
|
switch_menu(0);
|
2016-11-17 22:07:22 +00:00
|
|
|
});
|
2017-01-06 09:52:12 +00:00
|
|
|
|
|
|
|
$('a.nav-icon-recent').click(function() {
|
|
|
|
switch_menu(1);
|
|
|
|
});
|
|
|
|
|
2017-01-08 08:36:13 +00:00
|
|
|
$('a.nav-icon-favorites').click(function() {
|
|
|
|
switch_menu(2);
|
|
|
|
});
|
|
|
|
|
2017-01-09 13:36:07 +00:00
|
|
|
function mySearch(query){
|
2017-08-04 18:29:08 +00:00
|
|
|
if (query != "") {
|
|
|
|
clearTimeout(searchTimeout);
|
|
|
|
searchTimeout = setTimeout(function(){
|
|
|
|
$("tbody > tr").remove();
|
|
|
|
radio_query(0, query);
|
|
|
|
}, 500);
|
|
|
|
};
|
2017-01-09 13:36:07 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
OC.Plugins.register('OCA.Search', {
|
|
|
|
attach: function(search) {
|
|
|
|
search.setFilter('radio', mySearch);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2017-08-04 20:08:31 +00:00
|
|
|
$('#playbutton').click(function() {
|
|
|
|
var music = document.getElementById('player');
|
|
|
|
if (music.paused && $("#player").attr("src") != "") {
|
|
|
|
music.play();
|
|
|
|
playbutton.className = "";
|
|
|
|
playbutton.className = "pause";
|
|
|
|
} else {
|
|
|
|
music.pause();
|
|
|
|
playbutton.className = "";
|
|
|
|
playbutton.className = "play";
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
$('#volumeslider').slider({
|
|
|
|
orientation: "horizontal",
|
|
|
|
value: player.volume,
|
|
|
|
min: 0,
|
|
|
|
max: 1,
|
|
|
|
range: 'min',
|
|
|
|
animate: true,
|
|
|
|
step: .1,
|
|
|
|
slide: function(e, ui) {
|
|
|
|
player.volume = ui.value;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2017-01-06 09:52:12 +00:00
|
|
|
switch_menu(0);
|
2016-11-17 22:07:22 +00:00
|
|
|
});
|