Visually makeover

This commit is contained in:
2026-07-03 21:05:07 +02:00
parent 10a239a155
commit c7fceee11f
40 changed files with 6851 additions and 1201 deletions
+2 -1
View File
@@ -2,7 +2,8 @@
/**
* Managed catalog API endpoint.
* Served at /api/managed-stations.json via .htaccess rewrite.
* Returns the same JSON envelope as the Node backend: { schemaVersion, updatedAt, stations }.
* Returns the same JSON envelope used by the Vite dev/preview middleware:
* { schemaVersion, updatedAt, stations }.
*/
header('Content-Type: application/json; charset=utf-8');
+51
View File
@@ -51139,6 +51139,57 @@
"source": "radio-browser",
"sourceStationUuid": "b3efdf8f-dba0-11e9-a8ba-52543be04c81"
},
{
"id": "a3e4b1b3-0e4c-4fd6-9f69-6a4c0b4f7e01",
"name": "Aktual Dalmacija",
"country": "Slovenia",
"countryCode": "SI",
"language": "slovenian",
"tags": [],
"codec": "MP3",
"bitrate": 0,
"streamUrl": "https://live.radio.si/AktualDalmacija",
"homepage": "https://radio.svet24.si/",
"logoUrl": "https://datacache.radio.si/api/radiostations/logo/aktual.svg",
"votes": 0,
"clickcount": 0,
"source": "radio-browser",
"sourceStationUuid": "a3e4b1b3-0e4c-4fd6-9f69-6a4c0b4f7e01"
},
{
"id": "b1d6a9d8-0d3d-49be-9c7b-9a7f2d52b5bc",
"name": "Aktual Galama - Fešta",
"country": "Slovenia",
"countryCode": "SI",
"language": "slovenian",
"tags": [],
"codec": "MP3",
"bitrate": 0,
"streamUrl": "https://live.radio.si/AktualGalama",
"homepage": "https://radio.svet24.si/",
"logoUrl": "https://datacache.radio.si/api/radiostations/logo/aktual.svg",
"votes": 0,
"clickcount": 0,
"source": "radio-browser",
"sourceStationUuid": "b1d6a9d8-0d3d-49be-9c7b-9a7f2d52b5bc"
},
{
"id": "c8e0a7d4-2ce1-4a1e-a1bc-2fbb1c40d8f9",
"name": "Aktual Nostalgija",
"country": "Slovenia",
"countryCode": "SI",
"language": "slovenian",
"tags": [],
"codec": "MP3",
"bitrate": 0,
"streamUrl": "https://live.radio.si/AktualNostalgija",
"homepage": "https://radio.svet24.si/",
"logoUrl": "https://datacache.radio.si/api/radiostations/logo/aktual.svg",
"votes": 0,
"clickcount": 0,
"source": "radio-browser",
"sourceStationUuid": "c8e0a7d4-2ce1-4a1e-a1bc-2fbb1c40d8f9"
},
{
"id": "3cd65080-c8b5-4d06-86bb-62481e5d6e06",
"name": "Radio1",
+51
View File
@@ -51139,6 +51139,57 @@
"source": "radio-browser",
"sourceStationUuid": "b3efdf8f-dba0-11e9-a8ba-52543be04c81"
},
{
"id": "a3e4b1b3-0e4c-4fd6-9f69-6a4c0b4f7e01",
"name": "Aktual Dalmacija",
"country": "Slovenia",
"countryCode": "SI",
"language": "slovenian",
"tags": [],
"codec": "MP3",
"bitrate": 0,
"streamUrl": "https://live.radio.si/AktualDalmacija",
"homepage": "https://radio.svet24.si/",
"logoUrl": "https://datacache.radio.si/api/radiostations/logo/aktual.svg",
"votes": 0,
"clickcount": 0,
"source": "radio-browser",
"sourceStationUuid": "a3e4b1b3-0e4c-4fd6-9f69-6a4c0b4f7e01"
},
{
"id": "b1d6a9d8-0d3d-49be-9c7b-9a7f2d52b5bc",
"name": "Aktual Galama - Fešta",
"country": "Slovenia",
"countryCode": "SI",
"language": "slovenian",
"tags": [],
"codec": "MP3",
"bitrate": 0,
"streamUrl": "https://live.radio.si/AktualGalama",
"homepage": "https://radio.svet24.si/",
"logoUrl": "https://datacache.radio.si/api/radiostations/logo/aktual.svg",
"votes": 0,
"clickcount": 0,
"source": "radio-browser",
"sourceStationUuid": "b1d6a9d8-0d3d-49be-9c7b-9a7f2d52b5bc"
},
{
"id": "c8e0a7d4-2ce1-4a1e-a1bc-2fbb1c40d8f9",
"name": "Aktual Nostalgija",
"country": "Slovenia",
"countryCode": "SI",
"language": "slovenian",
"tags": [],
"codec": "MP3",
"bitrate": 0,
"streamUrl": "https://live.radio.si/AktualNostalgija",
"homepage": "https://radio.svet24.si/",
"logoUrl": "https://datacache.radio.si/api/radiostations/logo/aktual.svg",
"votes": 0,
"clickcount": 0,
"source": "radio-browser",
"sourceStationUuid": "c8e0a7d4-2ce1-4a1e-a1bc-2fbb1c40d8f9"
},
{
"id": "3cd65080-c8b5-4d06-86bb-62481e5d6e06",
"name": "Radio1",
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

+8
View File
@@ -0,0 +1,8 @@
User-agent: facebookexternalhit
Allow: /
User-agent: Facebot
Allow: /
User-agent: *
Allow: /
-24
View File
@@ -595,30 +595,6 @@
"lastSongs": "http://data.radio.si/api/lastsongsxml/velenje/json"
}
},
{
"id": "AktualK",
"name": "Radio Aktual Kum",
"slogan": "Narejen za vaša ušesa",
"category": "Regional",
"country": "SI",
"language": "sl",
"region": "Zasavje",
"tags": [
"regional",
"aktual"
],
"website": null,
"enabled": true,
"assets": {
"logo": "http://datacache.radio.si/api/radiostations/logo/aktualk.svg"
},
"streams": {
"audio": "http://live.radio.si/AktualK"
},
"metadata": {
"lastSongs": "http://data.radio.si/api/lastsongsxml/aktualk/json"
}
},
{
"id": "AktualRomantika",
"name": "Radio Aktual - Romantika",
+10 -54
View File
@@ -1,67 +1,23 @@
// NOTE: This service worker is for the web/PWA build.
// For development we aggressively unregister SWs in `src/player.js`.
//
// This value is rewritten automatically before each build so deployed clients
// refresh to the newest shell and cached assets.
const CACHE_NAME = 'radioplayer-pwa-v5-1777474420392';
const STATION_SYNC_CACHE_NAME = 'radioplayer-station-sync-v1';
// This checked-in file stays stable. The build stamps the token below into
// `dist/sw.js` so deployed clients still refresh to the newest shell.
const CACHE_NAME = 'radioplayer-pwa-v5-__APP_BUILD_ID__';
const STATION_SYNC_CACHE_NAME = 'radioplayer-station-sync-v1-__APP_BUILD_ID__';
const MANAGED_CATALOG_CACHE_NAME = 'radioplayer-managed-catalog-v1';
const RADIO_BROWSER_API_ENDPOINT = 'https://de1.api.radio-browser.info/json/stations/search';
const STATION_SYNC_TAG = 'radio-stations-refresh';
const STATION_PERIODIC_SYNC_TAG = 'radio-stations-periodic-refresh';
const MANAGED_CATALOG_PERIODIC_SYNC_TAG = 'radioplayer-managed-catalog-refresh';
const STATION_SYNC_TAG = '__SW_STATION_SYNC_TAG__';
const STATION_PERIODIC_SYNC_TAG = '__SW_STATION_PERIODIC_SYNC_TAG__';
const MANAGED_CATALOG_PERIODIC_SYNC_TAG = '__SW_MANAGED_CATALOG_PERIODIC_SYNC_TAG__';
const STATION_SYNC_HEADERS = {
'content-type': 'application/json; charset=utf-8',
};
const MANAGED_CATALOG_SOURCE_HEADER = 'x-radioplayer-managed-source';
const RADIO_COUNTRIES = [
{ name: 'Austria', code: 'AT' },
{ name: 'Belgium', code: 'BE' },
{ name: 'Bulgaria', code: 'BG' },
{ name: 'Cyprus', code: 'CY' },
{ name: 'Czechia', code: 'CZ' },
{ name: 'Denmark', code: 'DK' },
{ name: 'Estonia', code: 'EE' },
{ name: 'Finland', code: 'FI' },
{ name: 'France', code: 'FR' },
{ name: 'Germany', code: 'DE' },
{ name: 'Greece', code: 'GR' },
{ name: 'Russia', code: 'RU' },
{ name: 'Hungary', code: 'HU' },
{ name: 'Ireland', code: 'IE' },
{ name: 'Italy', code: 'IT' },
{ name: 'Japan', code: 'JP' },
{ name: 'Latvia', code: 'LV' },
{ name: 'Lithuania', code: 'LT' },
{ name: 'Luxembourg', code: 'LU' },
{ name: 'Malta', code: 'MT' },
{ name: 'Mexico', code: 'MX' },
{ name: 'Netherlands', code: 'NL' },
{ name: 'Poland', code: 'PL' },
{ name: 'Brazil', code: 'BR' },
{ name: 'Portugal', code: 'PT' },
{ name: 'Romania', code: 'RO' },
{ name: 'Croatia', code: 'HR' },
{ name: 'Serbia', code: 'RS' },
{ name: 'Montenegro', code: 'ME' },
{ name: 'Bosnia & Herzegovina', code: 'BA' },
{ name: 'Argentina', code: 'AR' },
{ name: 'United Kingdom', code: 'GB' },
{ name: 'Slovenia', code: 'SI' },
{ name: 'Slovakia', code: 'SK' },
{ name: 'Spain', code: 'ES' },
{ name: 'USA', code: 'US' },
{ name: 'Canada', code: 'CA' },
{ name: 'Australia', code: 'AU' },
{ name: 'China', code: 'CN' },
{ name: 'Sweden', code: 'SE' },
{ name: 'Switzerland', code: 'CH' },
{ name: 'Turkey', code: 'TR' },
{ name: 'Ukraine', code: 'UA' },
];
const RADIO_COUNTRIES = __RADIO_COUNTRIES_JSON__;
const DEFAULT_SYNC_COUNTRY_CODES = RADIO_COUNTRIES.map((country) => country.code);
const MANAGED_COUNTRY_CODE = 'SI';
const MANAGED_COUNTRY_CODE = '__MANAGED_COUNTRY_CODE__';
const MAX_TAGS = 12;
const OBVIOUSLY_UNSUPPORTED_CODECS = new Set([
'wma',
@@ -97,7 +53,7 @@ const DATA_PATHS = new Set([
const IMAGE_FALLBACK_PATH = new URL('images/radio-placeholder.svg', self.registration.scope).pathname;
const SYNC_CATALOG_URL = new URL('data/radio-stations-sync.json', self.registration.scope).href;
const SYNC_CATALOG_PATH = new URL('data/radio-stations-sync.json', self.registration.scope).pathname;
const SYNC_META_URL = new URL('data/radio-stations-sync-meta.json', self.registration.scope).href;
const SYNC_META_URL = new URL('__SW_STATION_SYNC_META_PATH__', self.registration.scope).href;
const SYNC_SETTINGS_URL = new URL('data/radio-stations-sync-settings.json', self.registration.scope).href;
const SYNC_COUNTRY_PREFIX_PATH = new URL('data/countries/', self.registration.scope).pathname;
const BUNDLED_MANAGED_CATALOG_URL = new URL('stations.json', self.registration.scope).href;