@@ -3129,7 +3069,6 @@
chat_bubble_outline <
-
@@ -3168,7 +3107,6 @@ chat_bubble_outline <
-
diff --git a/htdocs/js/apidoc.js b/htdocs/js/apidoc.js
index e471142b0..c4fc027a2 100644
--- a/htdocs/js/apidoc.js
+++ b/htdocs/js/apidoc.js
@@ -159,11 +159,6 @@ const APIparams = {
"example": true,
"desc": "true = play first inserted song"
},
- "radiobrowserUUID": {
- "type": APItypes.string,
- "example": "d8f01eea-26be-4e3d-871d-7596e3ab8fb1",
- "desc": "Station UUID from radio-browser.info"
- },
"preset": {
"type": APItypes.string,
"example": "default",
@@ -1343,11 +1338,6 @@ const APImethods = {
"example": "append",
"desc": "Action for click on song: append, appendPlay, replace, replacePlay, insertAfterCurrent, view"
},
- "clickRadiobrowser": {
- "type": APItypes.string,
- "example": "view",
- "desc": "Action for click on playlist: append, appendPlay, replace, replacePlay, insertAfterCurrent, add"
- },
"clickRadioFavorites": {
"type": APItypes.string,
"example": "view",
@@ -1673,7 +1663,7 @@ const APImethods = {
"view": {
"type": APItypes.string,
"example": "viewQueueCurrent",
- "desc": "Valid values: viewQueueCurrent, viewQueueLastPlayed, viewSearch, viewBrowseDatabaseAlbumDetail, viewBrowseDatabaseAlbumList, viewBrowsePlaylistDetail, viewBrowseFilesystem, viewPlayback, viewQueueJukeboxAlbum, viewQueueJukeboxSong, viewBrowseRadioWebradiodb, viewBrowseRadioRadiobrowser"
+ "desc": "Valid values: viewQueueCurrent, viewQueueLastPlayed, viewSearch, viewBrowseDatabaseAlbumDetail, viewBrowseDatabaseAlbumList, viewBrowsePlaylistDetail, viewBrowseFilesystem, viewPlayback, viewQueueJukeboxAlbum, viewQueueJukeboxSong, viewBrowseRadioWebradiodb"
},
"mode": {
"type": APItypes.string,
@@ -2284,52 +2274,6 @@ const APImethods = {
}
}
},
- "MYMPD_API_CLOUD_RADIOBROWSER_CLICK_COUNT": {
- "desc": "Returns radio-browser.info station details.",
- "params": {
- "uuid": APIparams.radiobrowserUUID
- }
- },
- "MYMPD_API_CLOUD_RADIOBROWSER_NEWEST": {
- "desc": "Lists the last changed/added stations.",
- "params": {
- "offset": APIparams.offset,
- "limit": APIparams.limit
- }
- },
- "MYMPD_API_CLOUD_RADIOBROWSER_SEARCH": {
- "desc": "Searches radio-browser.info",
- "params": {
- "offset": APIparams.offset,
- "limit": APIparams.limit,
- "tags": {
- "type": APItypes.string,
- "example": "pop",
- "desc": "Tag to filter"
- },
- "country": {
- "type": APItypes.string,
- "example": "Germany",
- "desc": "Country to filter"
- },
- "language": {
- "type": APItypes.string,
- "example": "German",
- "desc": "Language to filter"
- },
- "searchstr": APIparams.searchstr
- }
- },
- "MYMPD_API_CLOUD_RADIOBROWSER_SERVERLIST": {
- "desc": "Returns radio-browser.info endpoints.",
- "params": {}
- },
- "MYMPD_API_CLOUD_RADIOBROWSER_STATION_DETAIL": {
- "desc": "Returns radio-browser.info station details.",
- "params": {
- "uuid": APIparams.radiobrowserUUID
- }
- },
"MYMPD_API_CLOUD_WEBRADIODB_COMBINED_GET": {
"desc": "Gets the full WebradioDB.",
"params": {}
diff --git a/htdocs/js/browse.js b/htdocs/js/browse.js
index b39eb9955..743035e92 100644
--- a/htdocs/js/browse.js
+++ b/htdocs/js/browse.js
@@ -12,8 +12,7 @@
function initBrowse() {
for (const nav of ['BrowseDatabaseTagListTagDropdown', 'BrowseDatabaseAlbumListTagDropdown',
'BrowsePlaylistListNavDropdown', 'BrowseFilesystemNavDropdown',
- 'BrowseRadioWebradiodbNavDropdown','BrowseRadioRadiobrowserNavDropdown',
- 'BrowseRadioFavoritesNavDropdown'])
+ 'BrowseRadioWebradiodbNavDropdown', 'BrowseRadioFavoritesNavDropdown'])
{
elGetById(nav).addEventListener('click', function(event) {
navBrowseHandler(event);
diff --git a/htdocs/js/clickActions.js b/htdocs/js/clickActions.js
index 52db9d902..0efb2b0a7 100644
--- a/htdocs/js/clickActions.js
+++ b/htdocs/js/clickActions.js
@@ -80,28 +80,6 @@ function clickSong(uri, event) {
}
}
-/**
- * Handler for radiobrowser links
- * @param {string} uri stream uri
- * @param {string} uuid radiobrowser station uuid
- * @param {event} event the event
- * @returns {void}
- */
-function clickRadiobrowser(uri, uuid, event) {
- switch (settings.webuiSettings.clickRadiobrowser) {
- case 'append': return appendQueue('song', [uri]);
- case 'appendPlay': return appendPlayQueue('song', [uri]);
- case 'insertAfterCurrent': return insertAfterCurrentQueue('song', [uri]);
- case 'insertPlayAfterCurrent': return insertPlayAfterCurrentQueue('song', [uri]);
- case 'replace': return replaceQueue('song', [uri]);
- case 'replacePlay': return replacePlayQueue('song', [uri]);
- case 'view': return showRadiobrowserDetails(uuid);
- case 'context': return showContextMenu(event);
- default: logError('Invalid action: ' + settings.webuiSettings.clickRadiobrowser);
- }
- countClickRadiobrowser(uuid);
-}
-
/**
* Handler for webradioDB links
* @param {string} uri stream uri
@@ -109,7 +87,7 @@ function clickRadiobrowser(uri, uuid, event) {
* @returns {void}
*/
function clickWebradiodb(uri, event) {
- switch (settings.webuiSettings.clickRadiobrowser) {
+ switch (settings.webuiSettings.clickWebradiodb) {
case 'append': return appendQueue('song', [uri]);
case 'appendPlay': return appendPlayQueue('song', [uri]);
case 'insertAfterCurrent': return insertAfterCurrentQueue('song', [uri]);
@@ -118,7 +96,7 @@ function clickWebradiodb(uri, event) {
case 'replacePlay': return replacePlayQueue('song', [uri]);
case 'view': return showWebradiodbDetails(uri);
case 'context': return showContextMenu(event);
- default: logError('Invalid action: ' + settings.webuiSettings.clickRadiobrowser);
+ default: logError('Invalid action: ' + settings.webuiSettings.clickWebradiodb);
}
}
diff --git a/htdocs/js/contextMenu.js b/htdocs/js/contextMenu.js
index 8d8aadb68..c2c1c4408 100644
--- a/htdocs/js/contextMenu.js
+++ b/htdocs/js/contextMenu.js
@@ -363,23 +363,7 @@ function addMenuItemsSongActions(dataNode, contextMenuBody, uri, type, name) {
addMenuItem(contextMenuBody, {"cmd": "addSongToHome", "options": [uri, type, name]}, 'Add to homescreen');
}
}
- if (app.id === 'BrowseRadioRadiobrowser') {
- const uuid = getData(dataNode, 'RADIOBROWSERUUID');
- addDivider(contextMenuBody);
- addMenuItem(contextMenuBody, {"cmd": "showRadiobrowserDetails", "options": [uuid]}, 'Webradio details');
- addMenuItem(contextMenuBody, {"cmd": "showEditRadioFavorite", "options": [{
- "Name": name,
- "Genre": getData(dataNode, 'genre').replace(/,(\S)/g, ', $1'),
- "Image": getData(dataNode, 'image'),
- "StreamUri": uri,
- "Homepage": getData(dataNode, 'homepage'),
- "Country": getData(dataNode, 'country'),
- "Language": getData(dataNode, 'language'),
- "Codec": getData(dataNode, 'codec'),
- "Bitrate": getData(dataNode, 'bitrate'),
- }]}, 'Add to favorites');
- }
- else if (app.id === 'BrowseRadioWebradiodb') {
+ if (app.id === 'BrowseRadioWebradiodb') {
addDivider(contextMenuBody);
addMenuItem(contextMenuBody, {"cmd": "showWebradiodbDetails", "options": [uri]}, 'Webradio details');
addMenuItem(contextMenuBody, {"cmd": "showEditRadioFavorite", "options": [{
@@ -573,7 +557,6 @@ function createMenuLists(target, contextMenuTitle, contextMenuBody) {
return true;
case 'BrowseFilesystem':
case 'Search':
- case 'BrowseRadioRadiobrowser':
case 'BrowseRadioWebradiodb':
case 'BrowseDatabaseAlbumDetail': {
switch(type) {
diff --git a/htdocs/js/globales.js b/htdocs/js/globales.js
index d9838acea..da28722b1 100644
--- a/htdocs/js/globales.js
+++ b/htdocs/js/globales.js
@@ -420,7 +420,7 @@ const settingsWebuiFields = {
"title": "Click song",
"form": "modalSettingsDefaultActionsFrm"
},
- "clickRadiobrowser": {
+ "clickWebradiodb": {
"defaultValue": "append",
"validValues": {
"append": "Append to queue",
@@ -826,16 +826,9 @@ const settingsWebuiFields = {
"defaultValue": true,
"inputType": "checkbox",
"title": "Show MusicBrainz links",
- "form": "modalSettingsCloudFrm",
+ "form": "modalSettingsTagsFrm",
"help": "helpSettingsMusicBrainzLinks"
},
- "radiobrowserStationclicks": {
- "defaultValue": false,
- "inputType": "checkbox",
- "title": "Submit station clicks to radiobrowser.info",
- "form": "modalSettingsCloudFrm",
- "help": "helpSettingsRadiobrowserStationclicks"
- },
"outputLigatures": {
"defaultValue": {
"default": "speaker",
@@ -1387,23 +1380,6 @@ app.cards = {
"tag": "",
"search": "",
"scrollPos": 0
- },
- "Radiobrowser": {
- "offset": 0,
- "limit": 100,
- "filter": {
- "tags": "",
- "genre": "",
- "country": "",
- "language": ""
- },
- "sort": {
- "tag": "",
- "desc": false
- },
- "tag": "",
- "search": "",
- "scrollPos": 0
}
}
}
diff --git a/htdocs/js/init.js b/htdocs/js/init.js
index 8db8bcfe3..84c0d67cd 100644
--- a/htdocs/js/init.js
+++ b/htdocs/js/init.js
@@ -226,7 +226,6 @@ function appInit() {
initViewBrowseDatabase();
initViewBrowseFilesystem();
initViewBrowseRadioFavorites();
- initViewBrowseRadioRadiobrowser();
initViewBrowseRadioWebradiodb();
initViewHome();
initViewPlayback();
diff --git a/htdocs/js/modalRadioFavoriteDetail.js b/htdocs/js/modalRadioFavoriteDetail.js
index 6358acd9d..bda2535f6 100644
--- a/htdocs/js/modalRadioFavoriteDetail.js
+++ b/htdocs/js/modalRadioFavoriteDetail.js
@@ -12,8 +12,8 @@
*/
//eslint-disable-next-line no-unused-vars
function showRadioFavoriteDetails(uri) {
- cleanupModalId('modalRadiobrowserDetailsList');
- elHideId('modalRadiobrowserDetailsAddToFavoriteBtn');
+ cleanupModalId('modalWebradiodbDetailList');
+ elHideId('modalWebradiodbDetailAddToFavoriteBtn');
sendAPI('MYMPD_API_WEBRADIO_FAVORITE_GET', {'filename': uri}, parseShowRadioFavoriteDetails, true);
}
@@ -23,8 +23,7 @@ function showRadioFavoriteDetails(uri) {
* @returns {void}
*/
function parseShowRadioFavoriteDetails(obj) {
- //reuse the radiobrowser modal
- const table = elGetById('modalRadiobrowserDetailsList');
+ const table = elGetById('modalWebradiodbDetailList');
const tbody = table.querySelector('tbody');
elClear(tbody);
if (checkResult(obj, table, 'table') === false) {
@@ -32,13 +31,13 @@ function parseShowRadioFavoriteDetails(obj) {
}
if (obj.result.Image !== '') {
- elGetById('modalRadiobrowserDetailsImage').style.backgroundImage = getCssImageUri(obj.result.Image);
+ elGetById('modalWebradiodbDetailImage').style.backgroundImage = getCssImageUri(obj.result.Image);
}
else {
- elGetById('modalRadiobrowserDetailsImage').style.backgroundImage = 'url("' + subdir + '/assets/coverimage-notavailable")';
+ elGetById('modalWebradiodbDetailImage').style.backgroundImage = 'url("' + subdir + '/assets/coverimage-notavailable")';
}
- elGetById('RadiobrowserDetailsTitle').textContent = obj.result.Name;
- setDataId('RadiobrowserDetailsTitle', 'webradio', obj.result);
+ elGetById('modalWebradiodbDetailTitle').textContent = obj.result.Name;
+ setDataId('modalWebradiodbDetailTitle', 'webradio', obj.result);
const showFields = [
'StreamUri',
'Homepage',
@@ -59,5 +58,5 @@ function parseShowRadioFavoriteDetails(obj) {
])
);
}
- uiElements.modalRadiobrowserDetails.show();
+ uiElements.modalWebradiodbDetail.show();
}
diff --git a/htdocs/js/modalRadioRadiobrowserDetail.js b/htdocs/js/modalRadioRadiobrowserDetail.js
deleted file mode 100644
index 726d66090..000000000
--- a/htdocs/js/modalRadioRadiobrowserDetail.js
+++ /dev/null
@@ -1,97 +0,0 @@
-"use strict";
-// SPDX-License-Identifier: GPL-3.0-or-later
-// myMPD (c) 2018-2024 Juergen Mang
-// https://github.com/jcorporation/mympd
-
-/** @module modalRadioRadiobrowserDetail_js */
-
-/**
- * Initialization function for the radiobrowser details modal
- * @param {Event} event triggering event
- * @returns {void}
- */
-//eslint-disable-next-line no-unused-vars
-function showAddToWebradioFavorites(event) {
- event.preventDefault();
- showEditRadioFavorite(getDataId('RadiobrowserDetailsTitle', 'webradio'));
-}
-
-/**
- * Shows the details of a radiobrowser station
- * @param {string} uuid station uuid
- * @returns {void}
- */
-//eslint-disable-next-line no-unused-vars
-function showRadiobrowserDetails(uuid) {
- sendAPI("MYMPD_API_CLOUD_RADIOBROWSER_STATION_DETAIL", {
- "uuid": uuid
- }, parseRadiobrowserDetails, true);
- uiElements.modalRadiobrowserDetails.show();
- elReplaceChildId('modalRadiobrowserDetailsList',
- elCreateNode('tr', {},
- elCreateTextTn('td', {"colspan": 2}, 'Loading...')
- )
- );
- countClickRadiobrowser(uuid);
-}
-
-/**
- * Parses the MYMPD_API_CLOUD_RADIOBROWSER_STATION_DETAIL jsonrpc response
- * @param {object} obj jsonrpc response
- * @returns {void}
- */
-function parseRadiobrowserDetails(obj) {
- elShowId('modalRadiobrowserDetailsAddToFavoriteBtn');
- const table = elGetById('modalRadiobrowserDetailsList');
- const tbody = table.querySelector('tbody');
- elClear(tbody);
- if (checkResult(obj, table, 'table') === false) {
- return;
- }
-
- const result = obj.result.data[0];
- if (result.favicon !== '') {
- elGetById('modalRadiobrowserDetailsImage').style.backgroundImage = getCssImageUri(result.favicon);
- }
- else {
- elGetById('modalRadiobrowserDetailsImage').style.backgroundImage =
- 'url("' + subdir + '/assets/coverimage-notavailable")';
- }
- elGetById('RadiobrowserDetailsTitle').textContent = result.name;
- //map fields to webradiodb fields
- setDataId('RadiobrowserDetailsTitle', 'webradio', {
- "Name": result.name,
- "StreamUri": result.url_resolved,
- "Genre": result.tags,
- "Homepage": result.homepage,
- "Country": result.country,
- "Language": result.language,
- "Codec": result.codec,
- "Bitrate": result.bitrate,
- "Description": "",
- "Image": result.favicon
- });
- //friendly names for fields
- const showFields = {
- 'url_resolved': 'StreamUri',
- 'homepage': 'Homepage',
- 'tags': 'Tags',
- 'country': 'Country',
- 'language': 'Language',
- 'codec': 'Codec',
- 'bitrate': 'Bitrate',
- 'votes': 'Votes',
- 'lastchangetime': 'Last change time',
- 'lastcheckok': 'State',
- 'clickcount': 'Click count'
- };
- for (const field in showFields) {
- const value = printValue(field, result[field]);
- tbody.appendChild(
- elCreateNodes('tr', {}, [
- elCreateTextTn('th', {}, showFields[field]),
- elCreateNode('td', {}, value)
- ])
- );
- }
-}
diff --git a/htdocs/js/modalRadioWebradiodbDetail.js b/htdocs/js/modalRadioWebradiodbDetail.js
index 1190bb3a6..a0abc1f84 100644
--- a/htdocs/js/modalRadioWebradiodbDetail.js
+++ b/htdocs/js/modalRadioWebradiodbDetail.js
@@ -5,6 +5,17 @@
/** @module modalRadioWebradiodbDetail_js */
+/**
+ * Shows the add to webradio favorites modal
+ * @param {Event} event triggering event
+ * @returns {void}
+ */
+//eslint-disable-next-line no-unused-vars
+function showAddToWebradioFavorites(event) {
+ event.preventDefault();
+ showEditRadioFavorite(getDataId('modalWebradiodbDetailTitle', 'webradio'));
+}
+
/**
* Shows the details of a webradioDB entry
* @param {string} uri webradio uri
@@ -12,9 +23,8 @@
*/
//eslint-disable-next-line no-unused-vars
function showWebradiodbDetails(uri) {
- elShowId('modalRadiobrowserDetailsAddToFavoriteBtn');
- //reuse the radiobrowser modal
- const table = elGetById('modalRadiobrowserDetailsList');
+ elShowId('modalWebradiodbDetailAddToFavoriteBtn');
+ const table = elGetById('modalWebradiodbDetailList');
const tbody = table.querySelector('tbody');
elClear(tbody);
const m3u = isStreamUri(uri)
@@ -25,13 +35,13 @@ function showWebradiodbDetails(uri) {
tbody.appendChild(errorMsgEl({'error': {'message':'Webradio not found'}}, 1, 'table'));
}
if (result.Image !== '') {
- elGetById('modalRadiobrowserDetailsImage').style.backgroundImage = getCssImageUri(webradioDbPicsUri + result.Image);
+ elGetById('modalWebradiodbDetailImage').style.backgroundImage = getCssImageUri(webradioDbPicsUri + result.Image);
}
else {
- elGetById('modalRadiobrowserDetailsImage').style.backgroundImage = 'url("' + subdir + '/assets/coverimage-notavailable")';
+ elGetById('modalWebradiodbDetailImage').style.backgroundImage = 'url("' + subdir + '/assets/coverimage-notavailable")';
}
- elGetById('RadiobrowserDetailsTitle').textContent = result.Name;
- setDataId('RadiobrowserDetailsTitle', 'webradio', result);
+ elGetById('modalWebradiodbDetailTitle').textContent = result.Name;
+ setDataId('modalWebradiodbDetailTitle', 'webradio', result);
const showFields = [
'StreamUri',
'Homepage',
@@ -85,5 +95,5 @@ function showWebradiodbDetails(uri) {
])
);
}
- uiElements.modalRadiobrowserDetails.show();
+ uiElements.modalWebradiodbDetail.show();
}
diff --git a/htdocs/js/modalSettings.js b/htdocs/js/modalSettings.js
index c63143904..65c61b737 100644
--- a/htdocs/js/modalSettings.js
+++ b/htdocs/js/modalSettings.js
@@ -23,7 +23,7 @@ function initModalSettings() {
//set featWhence feature detection for default actions
for (const sel of ['modalSettingsClickQuickPlayInput', 'modalSettingsClickFilesystemPlaylistInput',
'modalSettingsClickPlaylistInput', 'modalSettingsClickSongInput',
- 'modalSettingsClickRadioFavoritesInput', 'modalSettingsClickRadiobrowserInput'])
+ 'modalSettingsClickRadioFavoritesInput'])
{
const options = document.querySelectorAll('#' + sel + ' > option');
for (const opt of options) {
diff --git a/htdocs/js/router.js b/htdocs/js/router.js
index 8de7ee32d..5de8b0d3d 100644
--- a/htdocs/js/router.js
+++ b/htdocs/js/router.js
@@ -22,7 +22,7 @@ function appPrepare() {
'cardQueue', 'tabQueueCurrent', 'tabQueueLastPlayed',
'tabQueueJukebox', 'viewQueueJukeboxSong', 'viewQueueJukeboxAlbum',
'cardBrowse', 'tabBrowseFilesystem',
- 'tabBrowseRadio', 'viewBrowseRadioFavorites', 'viewBrowseRadioWebradiodb', 'viewBrowseRadioRadiobrowser',
+ 'tabBrowseRadio', 'viewBrowseRadioFavorites', 'viewBrowseRadioWebradiodb',
'tabBrowsePlaylist', 'viewBrowsePlaylistDetail', 'viewBrowsePlaylistList',
'tabBrowseDatabase', 'viewBrowseDatabaseTagList', 'viewBrowseDatabaseAlbumDetail', 'viewBrowseDatabaseAlbumList'];
for (const card of cards) {
@@ -271,7 +271,6 @@ function appRoute(card, tab, view, offset, limit, filter, sort, tag, search) {
case 'BrowseDatabaseAlbumDetail': handleBrowseDatabaseAlbumDetail(); break;
case 'BrowseRadioFavorites': handleBrowseRadioFavorites(); break;
case 'BrowseRadioWebradiodb': handleBrowseRadioWebradiodb(); break;
- case 'BrowseRadioRadiobrowser': handleBrowseRadioRadiobrowser(); break;
case 'Search': handleSearch(); break;
default: {
let initialStartupView = settings.webuiSettings.startupView;
diff --git a/htdocs/js/selectActions.js b/htdocs/js/selectActions.js
index db33c7d99..684625dbe 100644
--- a/htdocs/js/selectActions.js
+++ b/htdocs/js/selectActions.js
@@ -22,7 +22,6 @@ function initSelectActions() {
'BrowsePlaylistDetailSelectionDropdown',
'BrowseRadioFavoritesSelectionDropdown',
'BrowseRadioWebradiodbSelectionDropdown',
- 'BrowseRadioRadiobrowserSelectionDropdown',
'SearchSelectionDropdown'
]) {
const el = document.querySelector('#' + dropdownId + '> div');
diff --git a/htdocs/js/settings.js b/htdocs/js/settings.js
index f970319bc..ada6f1f17 100644
--- a/htdocs/js/settings.js
+++ b/htdocs/js/settings.js
@@ -346,7 +346,7 @@ function parseMPDSettings() {
}
}
}
- for (const table of ['Home', 'BrowseRadioFavorites', 'BrowseRadioWebradiodb', 'BrowseRadioRadiobrowser', 'BrowsePlaylistList']) {
+ for (const table of ['Home', 'BrowseRadioFavorites', 'BrowseRadioWebradiodb', 'BrowsePlaylistList']) {
setView(table);
if (settings['view' + table].mode === 'table') {
setCols(table);
@@ -448,7 +448,6 @@ function parseMPDSettings() {
addTagList('BrowseFilesystemNavDropdown', 'tagListBrowse');
addTagList('BrowseRadioFavoritesNavDropdown', 'tagListBrowse');
addTagList('BrowseRadioWebradiodbNavDropdown', 'tagListBrowse');
- addTagList('BrowseRadioRadiobrowserNavDropdown', 'tagListBrowse');
addTagList('QueueCurrentSearchTags', 'tagListSearch');
addTagList('QueueCurrentSortTagsList', 'tagList');
diff --git a/htdocs/js/tags.js b/htdocs/js/tags.js
index 8832b8148..baa09ed7d 100644
--- a/htdocs/js/tags.js
+++ b/htdocs/js/tags.js
@@ -85,8 +85,7 @@ function addTagList(elId, list) {
if (elId === 'BrowseFilesystemNavDropdown' ||
elId === 'BrowsePlaylistListNavDropdown' ||
elId === 'BrowseRadioFavoritesNavDropdown' ||
- elId === 'BrowseRadioWebradiodbNavDropdown' ||
- elId === 'BrowseRadioRadiobrowserNavDropdown')
+ elId === 'BrowseRadioWebradiodbNavDropdown')
{
elClear(stack);
stack.appendChild(
@@ -98,8 +97,7 @@ function addTagList(elId, list) {
elId === 'BrowseFilesystemNavDropdown' ||
elId === 'BrowsePlaylistListNavDropdown' ||
elId === 'BrowseRadioFavoritesNavDropdown' ||
- elId === 'BrowseRadioWebradiodbNavDropdown' ||
- elId === 'BrowseRadioRadiobrowserNavDropdown')
+ elId === 'BrowseRadioWebradiodbNavDropdown')
{
if (elId === 'BrowseDatabaseAlbumListTagDropdown' ||
elId === 'BrowseDatabaseTagListTagDropdown')
@@ -126,8 +124,7 @@ function addTagList(elId, list) {
elCreateTextTn('button', {"class": ["btn", "btn-secondary", "btn-sm"], "data-tag": "Radio"}, 'Webradios')
);
if (elId === 'BrowseRadioFavoritesNavDropdown' ||
- elId === 'BrowseRadioWebradiodbNavDropdown' ||
- elId === 'BrowseRadioRadiobrowserNavDropdown')
+ elId === 'BrowseRadioWebradiodbNavDropdown')
{
stack.lastChild.classList.add('active');
}
@@ -397,11 +394,6 @@ function printValue(key, value) {
return document.createTextNode(
value.join(', ')
);
- case 'tags':
- //radiobrowser.info
- return document.createTextNode(
- value.replace(/,(\S)/g, ', $1')
- );
case 'homepage':
case 'Homepage':
case 'StreamUri':
@@ -415,11 +407,6 @@ function printValue(key, value) {
return document.createTextNode(
value.join(', ')
);
- case 'lastcheckok':
- //radiobrowser.info
- return elCreateText('span', {"class": ["mi"]},
- (value === 1 ? 'check_circle' : 'error')
- );
case 'Bitrate':
return document.createTextNode(value + ' ' + tn('kbit'));
case 'SongCount':
diff --git a/htdocs/js/viewBrowseRadioRadiobrowser.js b/htdocs/js/viewBrowseRadioRadiobrowser.js
deleted file mode 100644
index e1a035eb1..000000000
--- a/htdocs/js/viewBrowseRadioRadiobrowser.js
+++ /dev/null
@@ -1,180 +0,0 @@
-"use strict";
-// SPDX-License-Identifier: GPL-3.0-or-later
-// myMPD (c) 2018-2024 Juergen Mang
-// https://github.com/jcorporation/mympd
-
-/** @module viewBrowseRadioRadiobrowser_js */
-
-/**
- * Browse Radiobrowser handler
- * @returns {void}
- */
-function handleBrowseRadioRadiobrowser() {
- setFocusId('BrowseRadioRadiobrowserSearchStr');
- elGetById('BrowseRadioRadiobrowserTagsInput').value = app.current.filter['tags'];
- elGetById('BrowseRadioRadiobrowserCountryInput').value = app.current.filter['country'];
- elGetById('BrowseRadioRadiobrowserLanguageInput').value = app.current.filter['language'];
- if (app.current.search === '') {
- sendAPI("MYMPD_API_CLOUD_RADIOBROWSER_NEWEST", {
- "offset": app.current.offset,
- "limit": app.current.limit,
- }, parseRadiobrowserList, true);
- }
- else {
- sendAPI("MYMPD_API_CLOUD_RADIOBROWSER_SEARCH", {
- "offset": app.current.offset,
- "limit": app.current.limit,
- "tags": app.current.filter['tags'],
- "country": app.current.filter['country'],
- "language": app.current.filter['language'],
- "searchstr": app.current.search
- }, parseRadiobrowserList, true);
- }
-}
-
-/**
- * Initializes the radiobrowser elements
- * @returns {void}
- */
-function initViewBrowseRadioRadiobrowser() {
- elGetById('BrowseRadioRadiobrowserSearchStr').addEventListener('keydown', function(event) {
- //handle Enter key on keydown for IME composing compatibility
- if (event.key !== 'Enter') {
- return;
- }
- clearSearchTimer();
- searchTimer = setTimeout(function() {
- searchRadiobrowser();
- }, searchTimerTimeout);
- }, false);
-
- // Android does not support search on type
- if (userAgentData.isAndroid === false) {
- elGetById('BrowseRadioRadiobrowserSearchStr').addEventListener('keyup', function(event) {
- if (ignoreKeys(event) === true) {
- return;
- }
- clearSearchTimer();
- searchTimer = setTimeout(function() {
- searchRadiobrowser();
- }, searchTimerTimeout);
- }, false);
- }
-
- elGetById('BrowseRadioRadiobrowserFilter').addEventListener('show.bs.collapse', function() {
- elGetById('BrowseRadioRadiobrowserFilterBtn').classList.add('active');
- }, false);
-
- elGetById('BrowseRadioRadiobrowserFilter').addEventListener('hide.bs.collapse', function() {
- elGetById('BrowseRadioRadiobrowserFilterBtn').classList.remove('active');
- }, false);
-
- setView('BrowseRadioRadiobrowser');
-}
-
-/**
- * Click event handler for Radiobrowser list
- * @param {MouseEvent} event click event
- * @param {HTMLElement} target calculated target
- * @returns {void}
- */
-function viewBrowseRadioRadiobrowserListClickHandler(event, target) {
- const uri = getData(target, 'uri');
- if (settings.webuiSettings.clickRadiobrowser === 'add') {
- showEditRadioFavorite({
- "Name": getData(target, 'name'),
- "Genre": getData(target, 'genre'),
- "Image": getData(target, 'image'),
- "StreamUri": uri
- });
- }
- else {
- clickRadiobrowser(uri, getData(target, 'RADIOBROWSERUUID'), event);
- }
-}
-
-/**
- * Sends a click count message to the radiobrowser api
- * @param {string} uuid station uuid
- * @returns {void}
- */
-function countClickRadiobrowser(uuid) {
- if (uuid !== '' &&
- settings.webuiSettings.radiobrowserStationclicks === true)
- {
- sendAPI("MYMPD_API_CLOUD_RADIOBROWSER_CLICK_COUNT", {
- "uuid": uuid
- }, null, false);
- }
-}
-
-/**
- * Searches the radiobrowser
- * @returns {void}
- */
-function searchRadiobrowser() {
- app.current.filter['tags'] = elGetById('BrowseRadioRadiobrowserTagsInput').value;
- app.current.filter['country'] = elGetById('BrowseRadioRadiobrowserCountryInput').value;
- app.current.filter['language'] = elGetById('BrowseRadioRadiobrowserLanguageInput').value;
- appGoto(app.current.card, app.current.tab, app.current.view,
- 0, app.current.limit, app.current.filter, '-', '-', elGetById('BrowseRadioRadiobrowserSearchStr').value);
-}
-
-/**
- * Parses the MYMPD_API_CLOUD_RADIOBROWSER_NEWEST and
- * MYMPD_API_CLOUD_RADIOBROWSER_SEARCH jsonrpc response
- * @param {object} obj jsonrpc response
- * @returns {void}
- */
-function parseRadiobrowserList(obj) {
- if (app.current.filter['tags'] === '' &&
- app.current.filter['country'] === '' &&
- app.current.filter['language'] === '')
- {
- elGetById('BrowseRadioRadiobrowserFilterBtn').textContent = 'filter_list_off';
- }
- else {
- elGetById('BrowseRadioRadiobrowserFilterBtn').textContent = 'filter_list';
- }
-
- if (checkResultId(obj, 'BrowseRadioRadiobrowserList', undefined) === false) {
- return;
- }
-
- const rowTitle = tn(settingsWebuiFields.clickRadiobrowser.validValues[settings.webuiSettings.clickRadiobrowser]);
- if (settings['view' + app.id].mode === 'table') {
- //set result keys for pagination
- obj.result.returnedEntities = obj.result.data.length;
- obj.result.totalEntities = -1;
-
- updateTable(obj, app.id, function(row, data) {
- setData(row, 'uri', data.url_resolved);
- setData(row, 'name', data.name);
- setData(row, 'genre', data.tags);
- setData(row, 'image', data.favicon);
- setData(row, 'homepage', data.homepage);
- setData(row, 'country', data.country);
- setData(row, 'language', data.language);
- setData(row, 'codec', data.codec);
- setData(row, 'bitrate', data.bitrate);
- setData(row, 'RADIOBROWSERUUID', data.stationuuid);
- setData(row, 'type', 'stream');
- row.setAttribute('title', rowTitle);
- });
- return;
- }
- updateGrid(obj, app.id, function(card, data) {
- setData(card, 'uri', data.url_resolved);
- setData(card, 'name', data.name);
- setData(card, 'genre', data.tags);
- setData(card, 'image', data.favicon);
- setData(card, 'homepage', data.homepage);
- setData(card, 'country', data.country);
- setData(card, 'language', data.language);
- setData(card, 'codec', data.codec);
- setData(card, 'bitrate', data.bitrate);
- setData(card, 'RADIOBROWSERUUID', data.stationuuid);
- setData(card, 'type', 'stream');
- card.setAttribute('title', rowTitle);
- });
-}
diff --git a/htdocs/js/viewBrowseRadioWebradiodb.js b/htdocs/js/viewBrowseRadioWebradiodb.js
index 9ece37650..09f605441 100644
--- a/htdocs/js/viewBrowseRadioWebradiodb.js
+++ b/htdocs/js/viewBrowseRadioWebradiodb.js
@@ -93,7 +93,7 @@ function initViewBrowseRadioWebradiodb() {
*/
function viewBrowseRadioWebradiodbListClickHandler(event, target) {
const uri = getData(target, 'uri');
- if (settings.webuiSettings.clickRadiobrowser === 'add') {
+ if (settings.webuiSettings.clickWebradiodb === 'add') {
showEditRadioFavorite({
"Name": getData(target, 'name'),
"Genre": getData(target, 'genre'),
@@ -296,7 +296,7 @@ function parseSearchWebradiodb(obj) {
return;
}
- const rowTitle = tn(settingsWebuiFields.clickRadiobrowser.validValues[settings.webuiSettings.clickRadiobrowser]);
+ const rowTitle = tn(settingsWebuiFields.clickWebradiodb.validValues[settings.webuiSettings.clickWebradiodb]);
if (settings['view' + app.id].mode === 'table') {
const tfoot = table.querySelector('tfoot');
elClear(tfoot);
diff --git a/htdocs/js/views.js b/htdocs/js/views.js
index 96ac42f52..1e82e62c4 100644
--- a/htdocs/js/views.js
+++ b/htdocs/js/views.js
@@ -124,9 +124,6 @@ function viewClickHandler(event) {
case 'BrowseRadioFavorites':
viewBrowseRadioFavoritesListClickHandler(event, target);
break;
- case 'BrowseRadioRadiobrowser':
- viewBrowseRadioRadiobrowserListClickHandler(event, target);
- break;
case 'BrowseRadioWebradiodb':
viewBrowseRadioWebradiodbListClickHandler(event, target);
break;
@@ -499,8 +496,6 @@ function setFields(tableName) {
case 'BrowseRadioFavorites':
case 'BrowseRadioWebradiodb':
return ["Country", "Description", "Genre", "Homepage", "Languages", "Name", "State", "StreamUri", "Codec", "Bitrate", "Thumbnail"];
- case 'BrowseRadioRadiobrowser':
- return ["clickcount", "country", "homepage", "language", "lastchangetime", "lastcheckok", "tags", "url_resolved", "votes"];
case 'BrowseDatabaseTagList':
return ["Value", "Thumbnail"];
case 'BrowseDatabaseAlbumList': {
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 6f3ab816a..2b3523770 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -142,7 +142,6 @@ target_sources(mympd
web_server/folderart.c
web_server/request_handler.c
web_server/proxy.c
- web_server/radiobrowser.c
web_server/sessions.c
web_server/playlistart.c
web_server/tagart.c
diff --git a/src/compile_time.h.in b/src/compile_time.h.in
index 0945a7bda..23d6dacb2 100644
--- a/src/compile_time.h.in
+++ b/src/compile_time.h.in
@@ -199,7 +199,6 @@ extern struct t_mympd_queue *mympd_api_queue;
#define MYMPD_VIEW_QUEUE_JUKEBOX_SONG "{\"mode\":\"table\",\"fields\":[\"Pos\",\"Title\",\"Artist\",\"Album\"]}"
#define MYMPD_VIEW_QUEUE_JUKEBOX_ALBUM "{\"mode\":\"table\",\"fields\":[\"Pos\",\"Album\",\"AlbumArtist\"]}"
#define MYMPD_VIEW_BROWSE_RADIO_WEBRADIODB "{\"mode\":\"table\",\"fields\":[\"Name\",\"Country\",\"Language\",\"Genre\"]}"
-#define MYMPD_VIEW_BROWSE_RADIO_RADIOBROWSER "{\"mode\":\"table\",\"fields\":[\"name\",\"country\",\"language\",\"tags\"]}"
#define MYMPD_VIEW_BROWSE_RADIO_FAVORITES "{\"mode\":\"grid\",\"fields\":[\"Name\",\"Genre\",\"Country\"]}"
#define MYMPD_VOLUME_MIN 0 //prct
#define MYMPD_VOLUME_MAX 100 //prct
@@ -411,7 +410,6 @@ extern struct t_mympd_queue *mympd_api_queue;
#define PADDING_LENGTH 12
//cloud api hosts
-#define RADIOBROWSER_HOST "all.api.radio-browser.info"
#define WEBRADIODB_HOST "jcorporation.github.io"
#endif
diff --git a/src/i18n/json/bg-BG.json b/src/i18n/json/bg-BG.json
index 212668c26..f0d8a0663 100644
--- a/src/i18n/json/bg-BG.json
+++ b/src/i18n/json/bg-BG.json
@@ -90,7 +90,6 @@
"Browse": "Разгледай",
"Browse WebradioDB": "Разгледай WebradioDB",
"Browse directories": "Разгледай папки",
- "Browse radio-browser.info": "Разгледай radio-browser.info",
"Browser default": "Разгледай по подразбиране",
"Browser has no MediaSession support": "",
"Browser specific setting": "Разгледай конкретни настройки",
@@ -145,7 +144,6 @@
"Click webradio": "Щракни онлайн радио",
"Click webradio favorite": "Щракни избрано онлайн радио",
"Close": "Затвори",
- "Cloud": "Облак",
"Codec": "Кодек",
"Color": "Цвят",
"Comment": "Коментар",
@@ -405,7 +403,6 @@
"Invalid pin": "",
"Invalid playlist directory": "",
"Invalid response": "",
- "Invalid response from radio-browser.info": "",
"Invalid response from webradiodb backend": "",
"Invalid scale ratio": "",
"Invalid script API request": "",
@@ -874,7 +871,6 @@
"Stream": "",
"Stream URI": "",
"Stream port": "",
- "Submit station clicks to radiobrowser.info": "",
"Successfully added random songs to queue": "",
"Successfully renamed playlist": "",
"Sun": "",
@@ -1080,7 +1076,6 @@
"helpSettingsNotifyWeb": "",
"helpSettingsQuickPlay": "",
"helpSettingsQuickRemove": "",
- "helpSettingsRadiobrowserStationclicks": "",
"helpSettingsSearchTags": "",
"helpSettingsSmallWidthTagRows": "",
"helpSettingsSmartplsInterval": "",
@@ -1204,4 +1199,4 @@
"url_resolved": "",
"votes": "",
"wasapi": ""
-}
\ No newline at end of file
+}
diff --git a/src/i18n/json/de-DE.json b/src/i18n/json/de-DE.json
index 837f40fc1..a829ea147 100644
--- a/src/i18n/json/de-DE.json
+++ b/src/i18n/json/de-DE.json
@@ -90,7 +90,6 @@
"Browse": "Durchsuchen",
"Browse WebradioDB": "Suche in der WebradioDB",
"Browse directories": "Verzeichnisse anzeigen",
- "Browse radio-browser.info": "Suche auf radio-browser.info",
"Browser default": "Browsereinstellung",
"Browser has no MediaSession support": "Browser unterstützt keine MediaSession",
"Browser specific setting": "Browserspezifische Einstellung",
@@ -145,7 +144,6 @@
"Click webradio": "Klick auf Webradio",
"Click webradio favorite": "Klick auf Webradio Favorit",
"Close": "Schließen",
- "Cloud": "Cloud",
"Codec": "Codec",
"Color": "Farbe",
"Comment": "Kommentar",
@@ -405,7 +403,6 @@
"Invalid pin": "Ungültige Pin",
"Invalid playlist directory": "Ungültiges Wiedergabelisten Verzeichnis",
"Invalid response": "Ungültige Antwort",
- "Invalid response from radio-browser.info": "Ungültige Antwort von radio-browser.info",
"Invalid response from webradiodb backend": "Ungültige Antwort vom WebradioDB Backend",
"Invalid scale ratio": "Ungültiger Skalierungswert",
"Invalid script API request": "Ungültiger Script-API Aufruf",
@@ -874,7 +871,6 @@
"Stream": "Stream",
"Stream URI": "Stream URL",
"Stream port": "Stream Port",
- "Submit station clicks to radiobrowser.info": "Sende Webradio-Klicks zu radiobrowser.info",
"Successfully added random songs to queue": "Zufällige Lieder wurden zur Warteschlange hinzugefügt",
"Successfully renamed playlist": "Wiedergabeliste erfolgreich umbenannt",
"Sun": "So",
@@ -1080,7 +1076,6 @@
"helpSettingsNotifyWeb": "Aktiviert die Unterstützung für die Web Notification API.",
"helpSettingsQuickPlay": "Zeigt einen Play-Button neben dem Aktionen-Button an.",
"helpSettingsQuickRemove": "Zeigt einen Entfernen-Button neben dem Aktionen-Button an.",
- "helpSettingsRadiobrowserStationclicks": "Deaktiviert für mehr Datenschutz.",
"helpSettingsSearchTags": "Nach diesen Tags kann gesucht werden. Voreinstellung: Artist, Album, Albumartist, Title, Genre",
"helpSettingsSmallWidthTagRows": "Zeigt für schmale Displays jeden Tag in einer eigenen Zeile an, anstatt in Spalten.",
"helpSettingsSmartplsInterval": "Die intelligenten Wiedergabelisten werden in diesem Interval aktualisiert.",
@@ -1204,4 +1199,4 @@
"url_resolved": "URL",
"votes": "Stimmen",
"wasapi": "Windows Audio Session API"
-}
\ No newline at end of file
+}
diff --git a/src/i18n/json/en-US.json b/src/i18n/json/en-US.json
index dc9b43ff7..0b7c56481 100644
--- a/src/i18n/json/en-US.json
+++ b/src/i18n/json/en-US.json
@@ -102,7 +102,6 @@
"helpJukeboxFilterExclude": "MPD search expression to exclude matching songs.",
"helpJukeboxMinSongDuration": "Only songs with this minimum length will be considered.",
"helpJukeboxMaxSongDuration": "If greater then zero: Only songs with this maximum length will be considered.",
- "helpSettingsRadiobrowserStationclicks": "Disable this for enhanced privacy.",
"helpSettingsBookletName": "Filename for booklets residing in the same folder as the album.",
"helpSettingsInfoTxtName": "Filename for informational textfile residing in the same folder as the album.",
"helpSettingsFeedback": "Rate songs by love/hate or with 5 stars.",
diff --git a/src/i18n/json/es-AR.json b/src/i18n/json/es-AR.json
index ed10a4291..48c9543f2 100644
--- a/src/i18n/json/es-AR.json
+++ b/src/i18n/json/es-AR.json
@@ -90,7 +90,6 @@
"Browse": "Navegar",
"Browse WebradioDB": "Navegar por WebradioDB",
"Browse directories": "Navegar directorios",
- "Browse radio-browser.info": "Navegar por radio-browser.info",
"Browser default": "Navegador predeterminado",
"Browser has no MediaSession support": "El navegador no tiene soporte para sesión multimedia",
"Browser specific setting": "Configuraciones específicas del navegador",
@@ -145,7 +144,6 @@
"Click webradio": "Al pulsar radio web",
"Click webradio favorite": "Al pulsar la radio web favorita",
"Close": "Cerrar",
- "Cloud": "Nube",
"Codec": "Códec",
"Color": "Color",
"Comment": "Comentario",
@@ -405,7 +403,6 @@
"Invalid pin": "PIN inválido",
"Invalid playlist directory": "Directorio de lista de reproducción inválido",
"Invalid response": "Respuesta inválida",
- "Invalid response from radio-browser.info": "Respuesta inválida de radio-browser.info",
"Invalid response from webradiodb backend": "Respuesta inválida del backend WebradioDB",
"Invalid scale ratio": "Relación de escala inválida",
"Invalid script API request": "Solicitud de API script inválida",
@@ -874,7 +871,6 @@
"Stream": "Stream",
"Stream URI": "URI de stream",
"Stream port": "Puerto de stream",
- "Submit station clicks to radiobrowser.info": "Enviar clics en estaciones a radiobrowser.info",
"Successfully added random songs to queue": "Canciones aleatorias agregadas con éxito a la fila",
"Successfully renamed playlist": "Lista de reproducción renombrada con éxito",
"Sun": "Dom",
@@ -1080,7 +1076,6 @@
"helpSettingsNotifyWeb": "Habilita el soporte del API de notificaciones web.",
"helpSettingsQuickPlay": "Muestra un botón de reproducción rápida al lado del botón de acciones.",
"helpSettingsQuickRemove": "Muestra un botón de eliminación rápida al lado del botón de acciones.",
- "helpSettingsRadiobrowserStationclicks": "Deshabilite esta opción para mejorar la privacidad.",
"helpSettingsSearchTags": "Etiquetas que se pueden seleccionar para utilizar como filtro al buscar. Por defecto: artista, álbum, artista del álbum, título y género (Artist, Album, AlbumArtist, Title, Genre)",
"helpSettingsSmallWidthTagRows": "Muestra las etiquetas en líneas en vez de columnas para las pantallas pequeñas.",
"helpSettingsSmartplsInterval": "Intervalo por el cual se actualizan las listas de reproducción inteligentes.",
@@ -1204,4 +1199,4 @@
"url_resolved": "url_resuelto",
"votes": "votos",
"wasapi": "Windows Audio Session API"
-}
\ No newline at end of file
+}
diff --git a/src/i18n/json/es-ES.json b/src/i18n/json/es-ES.json
index c94f3ae41..a0bd77a0e 100644
--- a/src/i18n/json/es-ES.json
+++ b/src/i18n/json/es-ES.json
@@ -90,7 +90,6 @@
"Browse": "Navegar",
"Browse WebradioDB": "Navegar por WebradioDB",
"Browse directories": "Navegar por los directorios",
- "Browse radio-browser.info": "Navegar por radio-browser.info",
"Browser default": "Navegación por defecto",
"Browser has no MediaSession support": "",
"Browser specific setting": "Configuraciones específicas del Navegador",
@@ -145,7 +144,6 @@
"Click webradio": "Pulsa webradio",
"Click webradio favorite": "Pulsa la webradio favorita",
"Close": "Cerrar",
- "Cloud": "Nube",
"Codec": "Codec",
"Color": "Color",
"Comment": "Comentario",
@@ -405,7 +403,6 @@
"Invalid pin": "PIN inválido",
"Invalid playlist directory": "",
"Invalid response": "Respuesta inválida",
- "Invalid response from radio-browser.info": "",
"Invalid response from webradiodb backend": "",
"Invalid scale ratio": "Razón de escalado inválida",
"Invalid script API request": "",
@@ -874,7 +871,6 @@
"Stream": "",
"Stream URI": "",
"Stream port": "",
- "Submit station clicks to radiobrowser.info": "",
"Successfully added random songs to queue": "",
"Successfully renamed playlist": "",
"Sun": "",
@@ -1080,7 +1076,6 @@
"helpSettingsNotifyWeb": "",
"helpSettingsQuickPlay": "",
"helpSettingsQuickRemove": "",
- "helpSettingsRadiobrowserStationclicks": "",
"helpSettingsSearchTags": "",
"helpSettingsSmallWidthTagRows": "",
"helpSettingsSmartplsInterval": "",
@@ -1204,4 +1199,4 @@
"url_resolved": "",
"votes": "",
"wasapi": ""
-}
\ No newline at end of file
+}
diff --git a/src/i18n/json/es-VE.json b/src/i18n/json/es-VE.json
index b9574bbe4..4b4cbd111 100644
--- a/src/i18n/json/es-VE.json
+++ b/src/i18n/json/es-VE.json
@@ -90,7 +90,6 @@
"Browse": "Explorar",
"Browse WebradioDB": "",
"Browse directories": "Explorar directorios",
- "Browse radio-browser.info": "",
"Browser default": "Por defecto del navegador",
"Browser has no MediaSession support": "",
"Browser specific setting": "",
@@ -145,7 +144,6 @@
"Click webradio": "",
"Click webradio favorite": "",
"Close": "Cerrar",
- "Cloud": "",
"Codec": "",
"Color": "",
"Comment": "Comentario",
@@ -405,7 +403,6 @@
"Invalid pin": "",
"Invalid playlist directory": "",
"Invalid response": "",
- "Invalid response from radio-browser.info": "",
"Invalid response from webradiodb backend": "",
"Invalid scale ratio": "",
"Invalid script API request": "",
@@ -874,7 +871,6 @@
"Stream": "",
"Stream URI": "URL Streaming",
"Stream port": "",
- "Submit station clicks to radiobrowser.info": "",
"Successfully added random songs to queue": "Agregadas canciones aleatorias a la cola de reproducción exitosamente",
"Successfully renamed playlist": "Lista de reproducción renombrada exitosamente",
"Sun": "Dom",
@@ -1080,7 +1076,6 @@
"helpSettingsNotifyWeb": "",
"helpSettingsQuickPlay": "",
"helpSettingsQuickRemove": "",
- "helpSettingsRadiobrowserStationclicks": "",
"helpSettingsSearchTags": "",
"helpSettingsSmallWidthTagRows": "",
"helpSettingsSmartplsInterval": "",
@@ -1204,4 +1199,4 @@
"url_resolved": "",
"votes": "",
"wasapi": ""
-}
\ No newline at end of file
+}
diff --git a/src/i18n/json/fi-FI.json b/src/i18n/json/fi-FI.json
index 2d7aa379f..3db9d6acd 100644
--- a/src/i18n/json/fi-FI.json
+++ b/src/i18n/json/fi-FI.json
@@ -90,7 +90,6 @@
"Browse": "Selaa",
"Browse WebradioDB": "",
"Browse directories": "Selaa kansioita",
- "Browse radio-browser.info": "",
"Browser default": "Selaimen asetus",
"Browser has no MediaSession support": "",
"Browser specific setting": "",
@@ -145,7 +144,6 @@
"Click webradio": "",
"Click webradio favorite": "",
"Close": "Sulje",
- "Cloud": "",
"Codec": "",
"Color": "",
"Comment": "Kommenttti",
@@ -405,7 +403,6 @@
"Invalid pin": "",
"Invalid playlist directory": "",
"Invalid response": "",
- "Invalid response from radio-browser.info": "",
"Invalid response from webradiodb backend": "",
"Invalid scale ratio": "",
"Invalid script API request": "",
@@ -874,7 +871,6 @@
"Stream": "",
"Stream URI": "Stream URI",
"Stream port": "",
- "Submit station clicks to radiobrowser.info": "",
"Successfully added random songs to queue": "Satunnaisten kappaleiden lisääminen jonoon onnistui",
"Successfully renamed playlist": "Soittolista nimeäminen onnistui",
"Sun": "Sun",
@@ -1080,7 +1076,6 @@
"helpSettingsNotifyWeb": "",
"helpSettingsQuickPlay": "",
"helpSettingsQuickRemove": "",
- "helpSettingsRadiobrowserStationclicks": "",
"helpSettingsSearchTags": "",
"helpSettingsSmallWidthTagRows": "",
"helpSettingsSmartplsInterval": "",
@@ -1204,4 +1199,4 @@
"url_resolved": "",
"votes": "",
"wasapi": ""
-}
\ No newline at end of file
+}
diff --git a/src/i18n/json/fr-FR.json b/src/i18n/json/fr-FR.json
index 4c2786279..9bcee8794 100644
--- a/src/i18n/json/fr-FR.json
+++ b/src/i18n/json/fr-FR.json
@@ -90,7 +90,6 @@
"Browse": "Parcourir",
"Browse WebradioDB": "Parcourir la base de webradio",
"Browse directories": "Parcourir les dossiers",
- "Browse radio-browser.info": "Parcourir radio-browser.info",
"Browser default": "Paramètre par défaut du navigateur",
"Browser has no MediaSession support": "Le navigateur ne supporte pas les sessions média",
"Browser specific setting": "Paramètre spécifique au navigateur",
@@ -145,7 +144,6 @@
"Click webradio": "Click sur une webradio",
"Click webradio favorite": "Click sur une webradio favorite",
"Close": "Fermer",
- "Cloud": "Cloud",
"Codec": "Codec",
"Color": "Couleur",
"Comment": "Commentaire",
@@ -405,7 +403,6 @@
"Invalid pin": "Code PIN invalide",
"Invalid playlist directory": "Répertoire de liste de lecture non valide",
"Invalid response": "Réponse non valide",
- "Invalid response from radio-browser.info": "Réponse non valide de radio-browser.info",
"Invalid response from webradiodb backend": "Réponse non valide du backend webradiodb",
"Invalid scale ratio": "Ratio d'échelle non valide",
"Invalid script API request": "Requête d'API des scripts non valide",
@@ -874,7 +871,6 @@
"Stream": "Flux",
"Stream URI": "URL du flux",
"Stream port": "Port du flux",
- "Submit station clicks to radiobrowser.info": "Transmettre les clicks des stations radios à radiobrowser.info",
"Successfully added random songs to queue": "Chansons aléatoires ajoutées à la file de lecture",
"Successfully renamed playlist": "Liste de lexture renommée",
"Sun": "Dim",
@@ -1080,7 +1076,6 @@
"helpSettingsNotifyWeb": "Active le support de l'API de Notification Web.",
"helpSettingsQuickPlay": "Afficher un bouton lecture à côté du bouton d'action.",
"helpSettingsQuickRemove": "Afficher un bouton retrait à côté du bouton d'action.",
- "helpSettingsRadiobrowserStationclicks": "Désactivez ceci pour une meilleure confidentialité.",
"helpSettingsSearchTags": "Liste des tags utilisables pour la fonction recheche. Liste standard: Artist, Album, Albumartist, Title, Genre",
"helpSettingsSmallWidthTagRows": "Enumérer les Tags en ligne au lieu de colonnes pour les écrans fins.",
"helpSettingsSmartplsInterval": "Intervalle de mise à jour des listes de lectures intelligentes.",
@@ -1204,4 +1199,4 @@
"url_resolved": "url_résolue",
"votes": "votes",
"wasapi": "Windows Audio Session API"
-}
\ No newline at end of file
+}
diff --git a/src/i18n/json/it-IT.json b/src/i18n/json/it-IT.json
index c4c8ab84f..2cf955824 100644
--- a/src/i18n/json/it-IT.json
+++ b/src/i18n/json/it-IT.json
@@ -90,7 +90,6 @@
"Browse": "Navigazione",
"Browse WebradioDB": "Sfoglia il WebradioDB",
"Browse directories": "Sfoglia le cartelle",
- "Browse radio-browser.info": "Sfoglia radio-browser.info",
"Browser default": "Predefinito del browser",
"Browser has no MediaSession support": "Mancanza del supporto MediaSession nel browser",
"Browser specific setting": "Impostazione specifica del browser",
@@ -145,7 +144,6 @@
"Click webradio": "Premi webradio",
"Click webradio favorite": "Premi i preferiti webradio",
"Close": "Chiudi",
- "Cloud": "Cloud",
"Codec": "Codec",
"Color": "Colore",
"Comment": "Commento",
@@ -405,7 +403,6 @@
"Invalid pin": "Pin non valido",
"Invalid playlist directory": "Cartella playlist non valida",
"Invalid response": "Risposta non valida",
- "Invalid response from radio-browser.info": "Risposta non valida da radio-browser.info",
"Invalid response from webradiodb backend": "Risposta non valida dal backend del db webradio",
"Invalid scale ratio": "Rapporto di scala non valido",
"Invalid script API request": "Richiesta API dello script non valida",
@@ -874,7 +871,6 @@
"Stream": "Flusso",
"Stream URI": "URI del flusso",
"Stream port": "Porta del fliusso",
- "Submit station clicks to radiobrowser.info": "Invia click sulla stazione a radiobrowser.info",
"Successfully added random songs to queue": "Brani casuali aggiunti con successo alla coda",
"Successfully renamed playlist": "Playlist rinominata con successo",
"Sun": "Dom",
@@ -1080,7 +1076,6 @@
"helpSettingsNotifyWeb": "Abilita il supporto per le API Web Notification.",
"helpSettingsQuickPlay": "Mostra un pulsante di riproduzione oltre al pulsante di azione.",
"helpSettingsQuickRemove": "Mostra un pulsante di rimozione oltre al pulsante di azione.",
- "helpSettingsRadiobrowserStationclicks": "Disabilitare per una maggiore privacy.",
"helpSettingsSearchTags": "Questi tag sono selezionabili come tag di ricerca. Standard: Artista, Album, Artista dell'album, Titolo, Genere.",
"helpSettingsSmallWidthTagRows": "Elenca i tag in riga, anziché in colonna, per gli schermi piccoli.",
"helpSettingsSmartplsInterval": "Le playlist smart sono aggiornate con questo intervallo.",
@@ -1204,4 +1199,4 @@
"url_resolved": "url_resolved",
"votes": "voti",
"wasapi": "wasapi"
-}
\ No newline at end of file
+}
diff --git a/src/i18n/json/ja-JP.json b/src/i18n/json/ja-JP.json
index fb8495629..5a722c889 100644
--- a/src/i18n/json/ja-JP.json
+++ b/src/i18n/json/ja-JP.json
@@ -90,7 +90,6 @@
"Browse": "参照",
"Browse WebradioDB": "WebradioDBを参照",
"Browse directories": "ディレクトリを参照",
- "Browse radio-browser.info": "radio-browser.infoを参照",
"Browser default": "ブラウザーの設定に従う",
"Browser has no MediaSession support": "このブラウザーはMediaSessionに対応していません",
"Browser specific setting": "ブラウザー特有の設定",
@@ -145,7 +144,6 @@
"Click webradio": "ウェブラジオをクリック",
"Click webradio favorite": "ウェブラジオのお気に入りをクリック",
"Close": "閉じる",
- "Cloud": "クラウド",
"Codec": "コーデック",
"Color": "色",
"Comment": "コメント",
@@ -405,7 +403,6 @@
"Invalid pin": "無効なPINです",
"Invalid playlist directory": "無効なプレイリストディレクトリです",
"Invalid response": "無効なレスポンスです",
- "Invalid response from radio-browser.info": "radio-browser.infoからのレスポンスが無効です",
"Invalid response from webradiodb backend": "Webradiodbバックエンドからのレスポンスが無効です",
"Invalid scale ratio": "無効なスケール比です",
"Invalid script API request": "無効なスクリプトAPIリクエストです",
@@ -874,7 +871,6 @@
"Stream": "ストリーム",
"Stream URI": "ストリームURI",
"Stream port": "ストリームポート",
- "Submit station clicks to radiobrowser.info": "ステーションのクリックをradiobrowser.infoに送信する",
"Successfully added random songs to queue": "ランダムな楽曲を再生待ちに追加しました",
"Successfully renamed playlist": "プレイリストの名前を変更しました",
"Sun": "日",
@@ -1080,7 +1076,6 @@
"helpSettingsNotifyWeb": "Web Notification APIのサポートを有効にします。",
"helpSettingsQuickPlay": "アクションボタンの隣に再生ボタンを表示します。",
"helpSettingsQuickRemove": "アクションボタンの隣に削除ボタンを表示します。",
- "helpSettingsRadiobrowserStationclicks": "プライバシーを強化するにはこれを無効にしてください。",
"helpSettingsSearchTags": "ここで指定したタグが検索項目として選択できます。標準: アーティスト、アルバム、アルバムアーティスト、タイトル、ジャンル",
"helpSettingsSmallWidthTagRows": "細長いディスプレイ向けにタグを列ではなく行で表示します。",
"helpSettingsSmartplsInterval": "スマートプレイリストはこの間隔で更新されます。",
@@ -1204,4 +1199,4 @@
"url_resolved": "URL",
"votes": "票数",
"wasapi": "Windows Audio Session API"
-}
\ No newline at end of file
+}
diff --git a/src/i18n/json/ko-KR.json b/src/i18n/json/ko-KR.json
index c5fb32a27..7efa2a5d9 100644
--- a/src/i18n/json/ko-KR.json
+++ b/src/i18n/json/ko-KR.json
@@ -90,7 +90,6 @@
"Browse": "찾아보기",
"Browse WebradioDB": "웹라디오 DB 찾아보기",
"Browse directories": "디렉터리 찾아보기",
- "Browse radio-browser.info": "radio-browser.info 찾아보기",
"Browser default": "기본 찾아보기",
"Browser has no MediaSession support": "브라우저에는 MediaSession 지원 안 됨",
"Browser specific setting": "브라우저별 설정",
@@ -145,7 +144,6 @@
"Click webradio": "웹라디오 누름",
"Click webradio favorite": "웹라디오 즐겨찾기 누름",
"Close": "닫기",
- "Cloud": "클라우드",
"Codec": "코덱",
"Color": "색상",
"Comment": "설명",
@@ -405,7 +403,6 @@
"Invalid pin": "잘못된 Pin",
"Invalid playlist directory": "잘못된 연주목록 디렉터리",
"Invalid response": "잘못된 응답",
- "Invalid response from radio-browser.info": "radio-browser.info의 잘못된 응답",
"Invalid response from webradiodb backend": "webradiodb 백엔드의 잘못된 응답",
"Invalid scale ratio": "잘못된 크기 비율",
"Invalid script API request": "잘못된 스크립트 API 요청",
@@ -874,7 +871,6 @@
"Stream": "스트림",
"Stream URI": "스트림 주소",
"Stream port": "스트림 포트",
- "Submit station clicks to radiobrowser.info": "방송국 클릭을 radiobrowser.info로 보내지 않음",
"Successfully added random songs to queue": "무작위 곡을 순서에 추가함",
"Successfully renamed playlist": "연주목록 이름 바꿈",
"Sun": "일",
@@ -1080,7 +1076,6 @@
"helpSettingsNotifyWeb": "웹 알림 API 지원을 사용합니다",
"helpSettingsQuickPlay": "동작 단추 옆에 연주 단추를 표시합니다",
"helpSettingsQuickRemove": "작업 단추 옆에 제거 단추를 표시합니다",
- "helpSettingsRadiobrowserStationclicks": "개인정보 보호를 강화하려면 이 기능을 사용하지 않습니다",
"helpSettingsSearchTags": "검색할 태그를 선택할 수 있습니다. 기본: 연주자, 음반, 음반연주자, 제목, 장르",
"helpSettingsSmallWidthTagRows": "좁은 디스플레이를 위해 열이 아닌 줄로 태그를 나열합니다",
"helpSettingsSmartplsInterval": "스마트 연주 목록은 이 간격으로 업데이트됩니다",
@@ -1204,4 +1199,4 @@
"url_resolved": "URL",
"votes": "투표",
"wasapi": "Windows Audio Session API"
-}
\ No newline at end of file
+}
diff --git a/src/i18n/json/nl-NL.json b/src/i18n/json/nl-NL.json
index d2afe0401..f8f81739f 100644
--- a/src/i18n/json/nl-NL.json
+++ b/src/i18n/json/nl-NL.json
@@ -90,7 +90,6 @@
"Browse": "Browse",
"Browse WebradioDB": "Zoeken in WebradioDB",
"Browse directories": "Browse bestanden",
- "Browse radio-browser.info": "Zoek in radio-browser.info",
"Browser default": "Browserinstelling",
"Browser has no MediaSession support": "Browser ondersteuning MdiaSession niet",
"Browser specific setting": "Browserspecifieke instellingen",
@@ -145,7 +144,6 @@
"Click webradio": "Klik op webradio",
"Click webradio favorite": "Klik op favoriet Webradio",
"Close": "Sluit",
- "Cloud": "Cloud",
"Codec": "Codec",
"Color": "Kleur",
"Comment": "Commentaar",
@@ -405,7 +403,6 @@
"Invalid pin": "Ongeldige pinn",
"Invalid playlist directory": "Map afspeellijsten ongeldig",
"Invalid response": "Ongeldig antwoord",
- "Invalid response from radio-browser.info": "Ongeldige antwoord van radio-browser.info",
"Invalid response from webradiodb backend": "Ongeldige antwoord van webradiodb-backend",
"Invalid scale ratio": "Ongeldige schaalverhouding",
"Invalid script API request": "Ongeldige script-API-verzoek",
@@ -874,7 +871,6 @@
"Stream": "Stream",
"Stream URI": "Streaming url",
"Stream port": "Stream poort",
- "Submit station clicks to radiobrowser.info": "Station clicks doorsturen naar radiobrowser.info",
"Successfully added random songs to queue": "Willekeurig nummer aan wachtrij toegevoegd",
"Successfully renamed playlist": "Afspeellijst hernoemd",
"Sun": "Zo",
@@ -1080,7 +1076,6 @@
"helpSettingsNotifyWeb": "Activeert ondersteuning voor de Web Notification API.",
"helpSettingsQuickPlay": "Geeft een afspeelknop weer naast de actieknop.",
"helpSettingsQuickRemove": "Geeft een knop Verwijderen weer naast de knop Acties.",
- "helpSettingsRadiobrowserStationclicks": "Uitschakelen voor betere privacy.",
"helpSettingsSearchTags": "Je kunt zoeken op deze tags. Standaard: Artist, Album, Albumartist, Title, Genre",
"helpSettingsSmallWidthTagRows": "Voor smalle schermen wordt elke dag in een aparte rij weergegeven in plaats van in kolommen.",
"helpSettingsSmartplsInterval": "De slimme afspeellijsten worden met dit interval bijgewerkt.",
@@ -1204,4 +1199,4 @@
"url_resolved": "URL",
"votes": "stemmen",
"wasapi": "Windows Audio Session API"
-}
\ No newline at end of file
+}
diff --git a/src/i18n/json/phrases.json b/src/i18n/json/phrases.json
index 7ecfe7ad1..9fe75c710 100644
--- a/src/i18n/json/phrases.json
+++ b/src/i18n/json/phrases.json
@@ -90,7 +90,6 @@
{"term":"Browse"},
{"term":"Browse WebradioDB"},
{"term":"Browse directories"},
-{"term":"Browse radio-browser.info"},
{"term":"Browser default"},
{"term":"Browser has no MediaSession support"},
{"term":"Browser specific setting"},
@@ -145,7 +144,6 @@
{"term":"Click webradio"},
{"term":"Click webradio favorite"},
{"term":"Close"},
-{"term":"Cloud"},
{"term":"Codec"},
{"term":"Color"},
{"term":"Comment"},
@@ -405,7 +403,6 @@
{"term":"Invalid pin"},
{"term":"Invalid playlist directory"},
{"term":"Invalid response"},
-{"term":"Invalid response from radio-browser.info"},
{"term":"Invalid response from webradiodb backend"},
{"term":"Invalid scale ratio"},
{"term":"Invalid script API request"},
@@ -874,7 +871,6 @@
{"term":"Stream"},
{"term":"Stream URI"},
{"term":"Stream port"},
-{"term":"Submit station clicks to radiobrowser.info"},
{"term":"Successfully added random songs to queue"},
{"term":"Successfully renamed playlist"},
{"term":"Sun"},
@@ -1080,7 +1076,6 @@
{"term":"helpSettingsNotifyWeb"},
{"term":"helpSettingsQuickPlay"},
{"term":"helpSettingsQuickRemove"},
-{"term":"helpSettingsRadiobrowserStationclicks"},
{"term":"helpSettingsSearchTags"},
{"term":"helpSettingsSmallWidthTagRows"},
{"term":"helpSettingsSmartplsInterval"},
diff --git a/src/i18n/json/pl-PL.json b/src/i18n/json/pl-PL.json
index c0184bbdf..73dedced6 100644
--- a/src/i18n/json/pl-PL.json
+++ b/src/i18n/json/pl-PL.json
@@ -90,7 +90,6 @@
"Browse": "Przeglądaj",
"Browse WebradioDB": "Przegląldaj bazę radiową",
"Browse directories": "Przeglądaj foldery",
- "Browse radio-browser.info": "Przeglądaj radio-browser.info",
"Browser default": "Przeglądaj domyślne",
"Browser has no MediaSession support": "Przeglądarka nie obsługuje MediaSession",
"Browser specific setting": "Ustawienie specyficzne dla przeglądarki",
@@ -145,7 +144,6 @@
"Click webradio": "Kliknij stację radiową",
"Click webradio favorite": "Kliknij ulubioną stację",
"Close": "Zamknij",
- "Cloud": "Chmura",
"Codec": "Kodek",
"Color": "Kolor",
"Comment": "Komentarz",
@@ -405,7 +403,6 @@
"Invalid pin": "Niewłaściwy PIN",
"Invalid playlist directory": "Niewłaściwy folder playlist",
"Invalid response": "Niewłaściwa odpowiedź",
- "Invalid response from radio-browser.info": "Nieprawidłowa odpowiedź z radio-browser.info",
"Invalid response from webradiodb backend": "Nieprawidłowa odpowiedź z serwera webradiodb",
"Invalid scale ratio": "Niewłaściwy współczynnik skali",
"Invalid script API request": "Niewłaściwe wywołanie API",
@@ -874,7 +871,6 @@
"Stream": "Strumień",
"Stream URI": "URL strumienia",
"Stream port": "Port strumienia",
- "Submit station clicks to radiobrowser.info": "Prześlij kliknięcia stacji do radiobrowser.info",
"Successfully added random songs to queue": "Pomyślnie dodano losowe utwory",
"Successfully renamed playlist": "Nazwa playlisty pomyślnie zmieniona",
"Sun": "Nd",
@@ -1080,7 +1076,6 @@
"helpSettingsNotifyWeb": "Włącza obsługę Web Notification API.",
"helpSettingsQuickPlay": "Wyświetla przycisk odtwarzania obok przycisku akcji.",
"helpSettingsQuickRemove": "Wyświetla przycisk usuwania obok przycisku akcji.",
- "helpSettingsRadiobrowserStationclicks": "Wyłączenie tej opcji zwiększa prywatność.",
"helpSettingsSearchTags": "Te tagi można wybrać jako tagi do wyszukiwania. Standard: Wykonawca, Album, Wykonawca albumu, Tytuł, Gatunek.",
"helpSettingsSmallWidthTagRows": "Wyświetla znaczniki w wierszach zamiast w kolumnach, co ułatwia ich wyświetlanie.",
"helpSettingsSmartplsInterval": "Czas, po którym playlisty dynamiczne są automatycznie aktualizowane, 0 = nigdy.",
@@ -1204,4 +1199,4 @@
"url_resolved": "url_resolved",
"votes": "głosy",
"wasapi": "wasapi"
-}
\ No newline at end of file
+}
diff --git a/src/i18n/json/ru-RU.json b/src/i18n/json/ru-RU.json
index ec84d1648..809446d7d 100644
--- a/src/i18n/json/ru-RU.json
+++ b/src/i18n/json/ru-RU.json
@@ -90,7 +90,6 @@
"Browse": "Обзор",
"Browse WebradioDB": "Обзор webradiodb",
"Browse directories": "Обзор каталогов",
- "Browse radio-browser.info": "Обзор Radio-Browser.info",
"Browser default": "Браузер по умолчанию",
"Browser has no MediaSession support": "У браузера нет поддержки MediaSession",
"Browser specific setting": "Специфическая настройка браузера",
@@ -145,7 +144,6 @@
"Click webradio": "Нажатие на Webradio",
"Click webradio favorite": "Нажатие на избранное Webradio",
"Close": "Закрыть",
- "Cloud": "Облако",
"Codec": "Кодек",
"Color": "Цвет",
"Comment": "Комментарий",
@@ -405,7 +403,6 @@
"Invalid pin": "Неверный PIN-код",
"Invalid playlist directory": "Неверный каталог плейлиста",
"Invalid response": "Неверный ответ",
- "Invalid response from radio-browser.info": "Неверный ответ от radio-browser.info",
"Invalid response from webradiodb backend": "Неверный ответ от серверной части WebradioDB",
"Invalid scale ratio": "Неверное соотношение шкалы",
"Invalid script API request": "Неверный запрос API скрипта",
@@ -874,7 +871,6 @@
"Stream": "Поток",
"Stream URI": "URL потока",
"Stream port": "Порт потока",
- "Submit station clicks to radiobrowser.info": "",
"Successfully added random songs to queue": "Успешно добавлены случайные песни в очередь",
"Successfully renamed playlist": "Плейлист успешно переименован ",
"Sun": "Вс",
@@ -1080,7 +1076,6 @@
"helpSettingsNotifyWeb": "Включает поддержку API веб-уведомлений.",
"helpSettingsQuickPlay": "Отображает кнопку воспроизведения рядом с кнопкой действий.",
"helpSettingsQuickRemove": "Отображает кнопку удаления рядом с кнопкой действий.",
- "helpSettingsRadiobrowserStationclicks": "",
"helpSettingsSearchTags": "Эти теги можно искать. По умолчанию: Исполнитель, Альбом, Исполнитель альбома, Название, Жанр.",
"helpSettingsSmallWidthTagRows": "Отображает каждый тег в отдельной строке вместо столбцов для узкого отображения.",
"helpSettingsSmartplsInterval": "Интеллектуальные плейлисты обновляются через этот интервал.",
@@ -1204,4 +1199,4 @@
"url_resolved": "URL",
"votes": "голоса",
"wasapi": "wasapi"
-}
\ No newline at end of file
+}
diff --git a/src/i18n/json/zh-Hans.json b/src/i18n/json/zh-Hans.json
index 72495999f..45aa81189 100644
--- a/src/i18n/json/zh-Hans.json
+++ b/src/i18n/json/zh-Hans.json
@@ -90,7 +90,6 @@
"Browse": "浏览",
"Browse WebradioDB": "浏览网络电台数据",
"Browse directories": "浏览目录",
- "Browse radio-browser.info": "浏览 radio-browser.info",
"Browser default": "浏览器默认",
"Browser has no MediaSession support": "浏览器不支持多媒体会话",
"Browser specific setting": "浏览器指定设置",
@@ -145,7 +144,6 @@
"Click webradio": "点击网络电台",
"Click webradio favorite": "点击网络电台收藏夹",
"Close": "关闭",
- "Cloud": "云",
"Codec": "编码",
"Color": "颜色",
"Comment": "注释",
@@ -405,7 +403,6 @@
"Invalid pin": "无效 Pin",
"Invalid playlist directory": "无效播放列表目录",
"Invalid response": "无效响应",
- "Invalid response from radio-browser.info": "radio-browser.info 无效响应",
"Invalid response from webradiodb backend": "网络电台后台无效响应",
"Invalid scale ratio": "无效比例",
"Invalid script API request": "无效脚本 API 请求",
@@ -874,7 +871,6 @@
"Stream": "流媒体",
"Stream URI": "流媒体 URI",
"Stream port": "流媒体端口",
- "Submit station clicks to radiobrowser.info": "提交点击到 radiobrowser.info.",
"Successfully added random songs to queue": "成功添加随机曲目到播放队列",
"Successfully renamed playlist": "成功重命名播放列表",
"Sun": "日",
@@ -1080,7 +1076,6 @@
"helpSettingsNotifyWeb": "启用网络通知 API 支持.",
"helpSettingsQuickPlay": "在动作按钮旁边显示播放按钮.",
"helpSettingsQuickRemove": "在动作按钮旁边显示移除按钮.",
- "helpSettingsRadiobrowserStationclicks": "禁用此项加强隐私.",
"helpSettingsSearchTags": "可选择用于搜索的标签. 默认: 艺术家, 专辑, 专辑艺术家, 标题, 流派",
"helpSettingsSmallWidthTagRows": "窄屏幕里标签显示为行而不是列.",
"helpSettingsSmartplsInterval": "智能播放列表更新频率.",
@@ -1204,4 +1199,4 @@
"url_resolved": "url_resolved",
"votes": "投票",
"wasapi": "wasapi"
-}
\ No newline at end of file
+}
diff --git a/src/i18n/json/zh-Hant.json b/src/i18n/json/zh-Hant.json
index 75ccc2370..c69af320b 100644
--- a/src/i18n/json/zh-Hant.json
+++ b/src/i18n/json/zh-Hant.json
@@ -90,7 +90,6 @@
"Browse": "瀏覽",
"Browse WebradioDB": "瀏覽網絡電台資料庫",
"Browse directories": "瀏覽目錄",
- "Browse radio-browser.info": "瀏覽 radio-browser.info",
"Browser default": "瀏覽器預設",
"Browser has no MediaSession support": "瀏覽器不支援多媒體會話",
"Browser specific setting": "瀏覽器指定設定",
@@ -145,7 +144,6 @@
"Click webradio": "點選網路電台",
"Click webradio favorite": "點選網路電台最愛",
"Close": "關閉",
- "Cloud": "雲端",
"Codec": "編碼",
"Color": "顏色",
"Comment": "註釋",
@@ -405,7 +403,6 @@
"Invalid pin": "無效 Pin",
"Invalid playlist directory": "無效播放列表目錄",
"Invalid response": "無效反應",
- "Invalid response from radio-browser.info": "radio-browser.info 無效反應",
"Invalid response from webradiodb backend": "網路電台後臺無效反應",
"Invalid scale ratio": "無效比例",
"Invalid script API request": "無效指令碼 API 請求",
@@ -874,7 +871,6 @@
"Stream": "串流",
"Stream URI": "串流 URI",
"Stream port": "串流埠",
- "Submit station clicks to radiobrowser.info": "提交點選到 radiobrowser.info.",
"Successfully added random songs to queue": "成功新增隨機曲目到播放佇列",
"Successfully renamed playlist": "成功重新命名播放列表",
"Sun": "日",
@@ -1080,7 +1076,6 @@
"helpSettingsNotifyWeb": "啟用網路通知 API 支援.",
"helpSettingsQuickPlay": "在動作按鈕旁邊顯示播放按鈕.",
"helpSettingsQuickRemove": "在動作按鈕旁邊顯示移除按鈕.",
- "helpSettingsRadiobrowserStationclicks": "禁用此項加強隱私.",
"helpSettingsSearchTags": "可選擇用於搜尋的標籤. 預設: 藝人, 專輯, 專輯藝人, 標題, 流派",
"helpSettingsSmallWidthTagRows": "窄螢幕裡標籤顯示為行而不是列.",
"helpSettingsSmartplsInterval": "智慧型播放列表更新頻率.",
@@ -1204,4 +1199,4 @@
"url_resolved": "url_resolved",
"votes": "票數",
"wasapi": "wasapi"
-}
\ No newline at end of file
+}
diff --git a/src/lib/api.h b/src/lib/api.h
index e40e46a7d..c3a2a4484 100644
--- a/src/lib/api.h
+++ b/src/lib/api.h
@@ -48,11 +48,6 @@
X(MYMPD_API_CHANNEL_LIST) \
X(MYMPD_API_CHANNEL_MESSAGE_SEND) \
X(MYMPD_API_CHANNEL_MESSAGES_READ) \
- X(MYMPD_API_CLOUD_RADIOBROWSER_NEWEST) \
- X(MYMPD_API_CLOUD_RADIOBROWSER_SEARCH) \
- X(MYMPD_API_CLOUD_RADIOBROWSER_SERVERLIST) \
- X(MYMPD_API_CLOUD_RADIOBROWSER_STATION_DETAIL) \
- X(MYMPD_API_CLOUD_RADIOBROWSER_CLICK_COUNT) \
X(MYMPD_API_CLOUD_WEBRADIODB_COMBINED_GET) \
X(MYMPD_API_CONNECTION_SAVE) \
X(MYMPD_API_CACHE_DISK_CLEAR) \
diff --git a/src/lib/mympd_state.c b/src/lib/mympd_state.c
index 62e6c10ec..1d150c9e6 100644
--- a/src/lib/mympd_state.c
+++ b/src/lib/mympd_state.c
@@ -86,7 +86,6 @@ void mympd_state_default(struct t_mympd_state *mympd_state, struct t_config *con
mympd_state->view_queue_jukebox_song = sdsnew(MYMPD_VIEW_QUEUE_JUKEBOX_SONG);
mympd_state->view_queue_jukebox_album = sdsnew(MYMPD_VIEW_QUEUE_JUKEBOX_ALBUM);
mympd_state->view_browse_radio_webradiodb = sdsnew(MYMPD_VIEW_BROWSE_RADIO_WEBRADIODB);
- mympd_state->view_browse_radio_radiobrowser = sdsnew(MYMPD_VIEW_BROWSE_RADIO_RADIOBROWSER);
mympd_state->view_browse_radio_favorites = sdsnew(MYMPD_VIEW_BROWSE_RADIO_FAVORITES);
mympd_state->volume_min = MYMPD_VOLUME_MIN;
mympd_state->volume_max = MYMPD_VOLUME_MAX;
@@ -172,7 +171,6 @@ void mympd_state_free(struct t_mympd_state *mympd_state) {
FREE_SDS(mympd_state->view_queue_jukebox_song);
FREE_SDS(mympd_state->view_queue_jukebox_album);
FREE_SDS(mympd_state->view_browse_radio_webradiodb);
- FREE_SDS(mympd_state->view_browse_radio_radiobrowser);
FREE_SDS(mympd_state->view_browse_radio_favorites);
FREE_SDS(mympd_state->coverimage_names);
FREE_SDS(mympd_state->thumbnail_names);
diff --git a/src/lib/mympd_state.h b/src/lib/mympd_state.h
index cd2c525df..82436c8bf 100644
--- a/src/lib/mympd_state.h
+++ b/src/lib/mympd_state.h
@@ -246,7 +246,6 @@ struct t_mympd_state {
sds view_queue_jukebox_song; //!< view settings for the jukebox queue view for songs
sds view_queue_jukebox_album; //!< view settings for the jukebox queue view for albums
sds view_browse_radio_webradiodb; //!< view settings for the webradiodb view
- sds view_browse_radio_radiobrowser; //!< view settings for the radiobrowser view
sds view_browse_radio_favorites; //!< view settings for the radio favorites view
sds music_directory; //!< mpd music directory setting (real value is in mpd_state)
sds playlist_directory; //!< mpd playlist directory (real value is in mpd_state)
diff --git a/src/lib/validate.c b/src/lib/validate.c
index da6b5ac12..c738f6a2d 100644
--- a/src/lib/validate.c
+++ b/src/lib/validate.c
@@ -36,9 +36,6 @@ static const char *mympd_fields[]={
// Columns for webradiodb
"Country", "State", "Description", "Genre", "Homepage", "Language", "Name", "StreamUri",
"Codec", "Bitrate",
- // Columns for radiobrowser
- "clickcount", "country", "homepage", "language", "lastchangetime", "lastcheckok",
- "tags", "url_resolved", "votes",
// Columns for albums
"Discs", "SongCount",
// End
diff --git a/src/mympd_api/settings.c b/src/mympd_api/settings.c
index c0ff36f19..29b2364c7 100644
--- a/src/mympd_api/settings.c
+++ b/src/mympd_api/settings.c
@@ -286,9 +286,6 @@ bool mympd_api_settings_view_save(struct t_mympd_state *mympd_state, sds view, s
else if (strcmp(view, "viewBrowseRadioWebradiodb") == 0) {
mympd_state->view_browse_radio_webradiodb = sds_replace(mympd_state->view_browse_radio_webradiodb, def);
}
- else if (strcmp(view, "viewBrowseRadioRadiobrowser") == 0) {
- mympd_state->view_browse_radio_radiobrowser = sds_replace(mympd_state->view_browse_radio_radiobrowser, def);
- }
else if (strcmp(view, "viewBrowseRadioFavorites") == 0) {
mympd_state->view_browse_radio_favorites = sds_replace(mympd_state->view_browse_radio_favorites, def);
}
@@ -874,7 +871,6 @@ void mympd_api_settings_statefiles_global_read(struct t_mympd_state *mympd_state
mympd_state->view_queue_jukebox_song = state_file_rw_string_sds(workdir, DIR_WORK_STATE, "view_queue_jukebox_song", mympd_state->view_queue_jukebox_song, vcb_isname, true);
mympd_state->view_queue_jukebox_album = state_file_rw_string_sds(workdir, DIR_WORK_STATE, "view_queue_jukebox_album", mympd_state->view_queue_jukebox_album, vcb_isname, true);
mympd_state->view_browse_radio_webradiodb = state_file_rw_string_sds(workdir, DIR_WORK_STATE, "view_browse_radio_webradiodb", mympd_state->view_browse_radio_webradiodb, vcb_isname, true);
- mympd_state->view_browse_radio_radiobrowser = state_file_rw_string_sds(workdir, DIR_WORK_STATE, "view_browse_radio_radiobrowser", mympd_state->view_browse_radio_radiobrowser, vcb_isname, true);
mympd_state->view_browse_radio_favorites = state_file_rw_string_sds(workdir, DIR_WORK_STATE, "view_browse_radio_favorites", mympd_state->view_browse_radio_favorites, vcb_isname, true);
mympd_state->coverimage_names = state_file_rw_string_sds(workdir, DIR_WORK_STATE, "coverimage_names", mympd_state->coverimage_names, vcb_isfilename, true);
mympd_state->thumbnail_names = state_file_rw_string_sds(workdir, DIR_WORK_STATE, "thumbnail_names", mympd_state->thumbnail_names, vcb_isfilename, true);
@@ -987,7 +983,6 @@ sds mympd_api_settings_get(struct t_mympd_state *mympd_state, struct t_partition
buffer = tojson_raw(buffer, "viewQueueJukeboxSong", mympd_state->view_queue_jukebox_song, true);
buffer = tojson_raw(buffer, "viewQueueJukeboxAlbum", mympd_state->view_queue_jukebox_album, true);
buffer = tojson_raw(buffer, "viewBrowseRadioWebradiodb", mympd_state->view_browse_radio_webradiodb, true);
- buffer = tojson_raw(buffer, "viewBrowseRadioRadiobrowser", mympd_state->view_browse_radio_radiobrowser, true);
buffer = tojson_raw(buffer, "viewBrowseRadioFavorites", mympd_state->view_browse_radio_favorites, true);
buffer = tojson_raw(buffer, "navbarIcons", mympd_state->navbar_icons, true);
buffer = tojson_bool(buffer, "tagDiscEmptyIsFirst", mympd_state->tag_disc_empty_is_first, true);
diff --git a/src/web_server/radiobrowser.c b/src/web_server/radiobrowser.c
deleted file mode 100644
index 851da4393..000000000
--- a/src/web_server/radiobrowser.c
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- SPDX-License-Identifier: GPL-3.0-or-later
- myMPD (c) 2018-2024 Juergen Mang
- https://github.com/jcorporation/mympd
-*/
-
-#include "compile_time.h"
-#include "src/web_server/radiobrowser.h"
-
-#include "src/lib/jsonrpc.h"
-#include "src/lib/log.h"
-#include "src/lib/mg_str_utils.h"
-#include "src/lib/sds_extras.h"
-#include "src/web_server/proxy.h"
-#include "src/web_server/utility.h"
-
-/**
- * Private definitions
- */
-static bool radiobrowser_send(struct mg_connection *nc, struct mg_connection *backend_nc,
- enum mympd_cmd_ids cmd_id, const char *path);
-static void radiobrowser_handler(struct mg_connection *nc, int ev, void *ev_data);
-
-/**
- * Public functions
- */
-
-/**
- * Handles the radiobrowser api requests
- * @param nc mongoose connection
- * @param backend_nc mongoose backend connection
- * @param cmd_id jsonrpc method
- * @param body request body (jsonrpc request)
- * @param request_id jsonrpc request id
- */
-void radiobrowser_api(struct mg_connection *nc, struct mg_connection *backend_nc,
- enum mympd_cmd_ids cmd_id, sds body, unsigned request_id)
-{
- unsigned offset;
- unsigned limit;
- sds tags = NULL;
- sds country = NULL;
- sds language = NULL;
- sds searchstr = NULL;
- sds uuid = NULL;
- sds error = sdsempty();
- sds uri = sdsempty();
- const char *cmd = get_cmd_id_method_name(cmd_id);
-
- struct t_jsonrpc_parse_error parse_error;
- jsonrpc_parse_error_init(&parse_error);
-
- switch(cmd_id) {
- case MYMPD_API_CLOUD_RADIOBROWSER_CLICK_COUNT:
- if (json_get_string(body, "$.params.uuid", 0, FILEPATH_LEN_MAX, &uuid, vcb_isalnum, &parse_error) == true) {
- uri = sdscatfmt(uri, "/json/url/%S", uuid);
- }
- break;
- case MYMPD_API_CLOUD_RADIOBROWSER_NEWEST:
- if (json_get_uint(body, "$.params.offset", 0, MPD_PLAYLIST_LENGTH_MAX, &offset, &parse_error) == true &&
- json_get_uint(body, "$.params.limit", MPD_RESULTS_MIN, MPD_RESULTS_MAX, &limit, &parse_error) == true)
- {
- uri = sdscatfmt(uri, "/json/stations/lastchange?hidebroken=true&offset=%l&limit=%l", offset, limit);
- }
- break;
- case MYMPD_API_CLOUD_RADIOBROWSER_SEARCH:
- if (json_get_uint(body, "$.params.offset", 0, MPD_PLAYLIST_LENGTH_MAX, &offset, &parse_error) == true &&
- json_get_uint(body, "$.params.limit", MPD_RESULTS_MIN, MPD_RESULTS_MAX, &limit, &parse_error) == true &&
- json_get_string(body, "$.params.tags", 0, NAME_LEN_MAX, &tags, vcb_isname, &parse_error) == true &&
- json_get_string(body, "$.params.country", 0, NAME_LEN_MAX, &country, vcb_isname, &parse_error) == true &&
- json_get_string(body, "$.params.language", 0, NAME_LEN_MAX, &language, vcb_isname, &parse_error) == true &&
- json_get_string(body, "$.params.searchstr", 0, NAME_LEN_MAX, &searchstr, vcb_isname, &parse_error) == true)
- {
- sds searchstr_encoded = sds_urlencode(sdsempty(), searchstr, sdslen(searchstr));
- uri = sdscatfmt(uri, "/json/stations/search?hidebroken=true&offset=%l&limit=%l&name=%S&tag=%S&country=%S&language=%S",
- offset, limit, searchstr_encoded, tags, country, language);
- FREE_SDS(searchstr_encoded);
- }
- break;
- case MYMPD_API_CLOUD_RADIOBROWSER_SERVERLIST:
- uri = sdscat(uri, "/json/servers");
- break;
- case MYMPD_API_CLOUD_RADIOBROWSER_STATION_DETAIL:
- if (json_get_string(body, "$.params.uuid", 0, FILEPATH_LEN_MAX, &uuid, vcb_isalnum, &parse_error) == true) {
- uri = sdscatfmt(uri, "/json/stations/byuuid?uuids=%S", uuid);
- }
- break;
- default:
- error = sdscat(error, "Invalid API request");
- }
-
- if (parse_error.message != NULL) {
- // jsonrpc parsing error
- sds response = jsonrpc_respond_message_phrase(sdsempty(), cmd_id, request_id,
- JSONRPC_FACILITY_GENERAL, JSONRPC_SEVERITY_ERROR, "Parsing error: %{message}", 4, "message", parse_error.message, "path", parse_error.path);
- webserver_send_data(nc, response, sdslen(response), EXTRA_HEADERS_JSON_CONTENT);
- FREE_SDS(response);
- }
- else if (sdslen(error) > 0) {
- sds response = jsonrpc_respond_message(sdsempty(), cmd_id, request_id,
- JSONRPC_FACILITY_GENERAL, JSONRPC_SEVERITY_ERROR, error);
- MYMPD_LOG_ERROR(NULL, "Error processing method \"%s\"", cmd);
- webserver_send_data(nc, response, sdslen(response), EXTRA_HEADERS_JSON_CONTENT);
- FREE_SDS(response);
- }
- else {
- bool rc = radiobrowser_send(nc, backend_nc, cmd_id, uri);
- if (rc == false) {
- sds response = jsonrpc_respond_message(sdsempty(), cmd_id, request_id,
- JSONRPC_FACILITY_GENERAL, JSONRPC_SEVERITY_ERROR, "Error connecting to radio-browser.info");
- webserver_send_data(nc, response, sdslen(response), EXTRA_HEADERS_JSON_CONTENT);
- FREE_SDS(response);
- }
- }
- FREE_SDS(tags);
- FREE_SDS(country);
- FREE_SDS(language);
- FREE_SDS(searchstr);
- FREE_SDS(uuid);
- FREE_SDS(error);
- FREE_SDS(uri);
- jsonrpc_parse_error_clear(&parse_error);
-}
-
-/**
- * Private functions
- */
-
-/**
- * Creates the backend connection to the radiobrowser server and assigns the webradiodb_handler.
- * @param nc mongoose connection
- * @param backend_nc mongoose backend connection
- * @param cmd_id jsonrpc method
- * @param path path and query to send
- * @return true on success, else false
- */
-static bool radiobrowser_send(struct mg_connection *nc, struct mg_connection *backend_nc,
- enum mympd_cmd_ids cmd_id, const char *path)
-{
- const char *host = RADIOBROWSER_HOST;
- sds uri = sdscatfmt(sdsempty(), "https://%s%s", host, path);
- backend_nc = create_backend_connection(nc, backend_nc, uri, radiobrowser_handler, false);
- FREE_SDS(uri);
- if (backend_nc != NULL) {
- struct t_backend_nc_data *backend_nc_data = (struct t_backend_nc_data *)backend_nc->fn_data;
- backend_nc_data->cmd_id = cmd_id;
- return true;
- }
- return false;
-}
-
-/**
- * Handler for the radiobrowser backend connection
- * @param nc mongoose backend connection
- * @param ev mongoose event
- * @param ev_data mongoose ev_data (http response)
- */
-static void radiobrowser_handler(struct mg_connection *nc, int ev, void *ev_data) {
- struct t_backend_nc_data *backend_nc_data = (struct t_backend_nc_data *)nc->fn_data;
- switch(ev) {
- case MG_EV_CONNECT: {
- send_backend_request(nc);
- break;
- }
- case MG_EV_ERROR:
- MYMPD_LOG_ERROR(NULL, "HTTP connection to \"%s\", connection \"%lu\" failed", backend_nc_data->uri, nc->id);
- if (backend_nc_data->frontend_nc != NULL) {
- sds response = jsonrpc_respond_message_phrase(sdsempty(), backend_nc_data->cmd_id, 0,
- JSONRPC_FACILITY_GENERAL, JSONRPC_SEVERITY_ERROR, "Could not connect to %{host}", 2, "host", RADIOBROWSER_HOST);
- webserver_send_data(backend_nc_data->frontend_nc, response, sdslen(response), EXTRA_HEADERS_JSON_CONTENT);
- FREE_SDS(response);
- }
- break;
- case MG_EV_HTTP_MSG: {
- struct mg_http_message *hm = (struct mg_http_message *) ev_data;
- //http response code
- int response_code = mg_str_to_int(&hm->uri);
- MYMPD_LOG_DEBUG(NULL, "Got response from connection \"%lu\", response code %d: %lu bytes", nc->id, response_code, (unsigned long)hm->body.len);
- sds response = sdsempty();
- if (hm->body.len > 0 &&
- response_code == 200)
- {
- response = jsonrpc_respond_start(response, backend_nc_data->cmd_id, 0);
- response = sdscat(response, "\"data\":");
- response = sdscatlen(response, hm->body.buf, hm->body.len);
- response = jsonrpc_end(response);
- }
- else {
- response = jsonrpc_respond_message(response, backend_nc_data->cmd_id, 0,
- JSONRPC_FACILITY_GENERAL, JSONRPC_SEVERITY_ERROR, "Invalid response from radio-browser.info");
- MYMPD_LOG_ERROR(NULL, "Invalid response from connection \"%lu\", response code %d", nc->id, response_code);
- }
- if (backend_nc_data->frontend_nc != NULL) {
- webserver_send_data(backend_nc_data->frontend_nc, response, sdslen(response), EXTRA_HEADERS_JSON_CONTENT);
- }
- FREE_SDS(response);
- break;
- }
- case MG_EV_CLOSE: {
- handle_backend_close(nc);
- break;
- }
- }
-}
diff --git a/src/web_server/radiobrowser.h b/src/web_server/radiobrowser.h
deleted file mode 100644
index 0a470cfbd..000000000
--- a/src/web_server/radiobrowser.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- SPDX-License-Identifier: GPL-3.0-or-later
- myMPD (c) 2018-2024 Juergen Mang
- https://github.com/jcorporation/mympd
-*/
-
-#ifndef MYMPD_WEB_SERVER_RADIOBROWSER_H
-#define MYMPD_WEB_SERVER_RADIOBROWSER_H
-
-#include "dist/mongoose/mongoose.h"
-#include "dist/sds/sds.h"
-#include "src/lib/api.h"
-
-void radiobrowser_api(struct mg_connection *nc, struct mg_connection *backend_nc,
- enum mympd_cmd_ids cmd_id, sds body, unsigned request_id);
-#endif
diff --git a/src/web_server/request_handler.c b/src/web_server/request_handler.c
index c16149bae..8c28606bc 100644
--- a/src/web_server/request_handler.c
+++ b/src/web_server/request_handler.c
@@ -13,7 +13,6 @@
#include "src/lib/msg_queue.h"
#include "src/lib/sds_extras.h"
#include "src/web_server/proxy.h"
-#include "src/web_server/radiobrowser.h"
#include "src/web_server/sessions.h"
#include "src/web_server/utility.h"
#include "src/web_server/webradiodb.h"
@@ -108,13 +107,6 @@ bool request_handler_api(struct mg_connection *nc, sds body, struct mg_str *auth
case MYMPD_API_SESSION_VALIDATE:
webserver_session_api(nc, cmd_id, body, request_id, session, mg_user_data);
break;
- case MYMPD_API_CLOUD_RADIOBROWSER_CLICK_COUNT:
- case MYMPD_API_CLOUD_RADIOBROWSER_NEWEST:
- case MYMPD_API_CLOUD_RADIOBROWSER_SERVERLIST:
- case MYMPD_API_CLOUD_RADIOBROWSER_SEARCH:
- case MYMPD_API_CLOUD_RADIOBROWSER_STATION_DETAIL:
- radiobrowser_api(nc, backend_nc, cmd_id, body, request_id);
- break;
case MYMPD_API_CLOUD_WEBRADIODB_COMBINED_GET:
webradiodb_api(nc, backend_nc, cmd_id, request_id);
break;