Files
radiola-android/app/src/main/java/com/radiola/data/local/StationLogos.kt
nk b2aff51c62 feat(stations): оживить главный «Радио Романтика» в разделе Romantika
В разделе Romantika были только саб-каналы (Piano Covers, Love Songs,
Акустика, Прикосновение, Easy Listening), а главный «Romantika» (711) был
отключён — мёртвый поток srv21.gpmradio (и в offline-ids бэкенда). Включил
главный на рабочем HLS (hls-01-gpm.hostingradio.ru/romantika495) + фирменный
логотип Романтики (применяется ко всем каналам сети). Прод-БД: 711 → online.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 15:18:21 +03:00

59 lines
2.6 KiB
Kotlin
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.radiola.data.local
/**
* Кураторские логотипы станций по домену сайта — для сетей, у которых нет
* своего API обложек. Пополняется по мере проработки сетей.
* Ключ — хост сайта (без www), значение — прямой URL квадратного логотипа.
*/
object StationLogos {
// Локальные обложки в ресурсах (res/drawable) — ключ: имя станции в нижнем регистре.
private fun res(name: String) = "android.resource://com.radiola/drawable/$name"
// Логотипы каналов Love Radio (сгенерены из их SVG на фирменном цвете, захостены у нас)
private fun love(id: Int) = "http://121.127.37.212:3000/covers/love_${id}_s.webp"
private val byName: Map<String, String> = mapOf(
"comedy fm" to res("cover_comedy_fm"),
"comedy spa" to res("cover_comedy_spa"),
"standup" to res("cover_standup"),
"женский standup" to res("cover_standup_women"),
"love radio" to love(28),
"love rnb" to love(2),
"love top40" to love(3),
"love dance" to love(4),
"love chill" to love(5),
"love gold" to love(6),
"love russian" to love(7),
"love kpop" to love(10),
"love power" to love(11),
"love summer" to love(1),
)
private val byDomain: Map<String, String> = mapOf(
// Comedy Radio (Comedy Club и пр.) — платформа 101.ru
"comedy-radio.ru" to "https://comedy-radio.ru/design/images/logo/apple-touch-icon-180.png?v=2",
// Like FM (GPM Radio)
"likefm.ru" to "https://www.likefm.ru/apple-touch-icon.png",
// Радио Романтика (GPM Radio)
"radioromantika.ru" to "https://radioromantika.ru/design/images/new_romantika_images/img_for_design/icons/touch-icon-iphone-retina.png",
)
/** Обложка по точному имени станции, либо null. */
fun forName(name: String?): String? =
name?.trim()?.lowercase()?.let { byName[it] }
/** Логотип станции по её сайту, либо null. */
fun forSite(site: String?): String? {
val host = site
?.substringAfter("://", site)
?.removePrefix("www.")
?.substringBefore("/")
?.trim()
?.lowercase()
?.takeIf { it.isNotEmpty() }
?: return null
return byDomain[host]
}
}