feat(stations): кураторские логотипы по домену сайта (Comedy Radio)
StationLogos: карта домен -> URL логотипа для сетей без своего API обложек. Comedy Radio (Comedy FM/Club/Spa, comedy-radio.ru) -> официальный apple-touch логотип. Расширяемо по сетям.
This commit is contained in:
27
app/src/main/java/com/radiola/data/local/StationLogos.kt
Normal file
27
app/src/main/java/com/radiola/data/local/StationLogos.kt
Normal file
@@ -0,0 +1,27 @@
|
||||
package com.radiola.data.local
|
||||
|
||||
/**
|
||||
* Кураторские логотипы станций по домену сайта — для сетей, у которых нет
|
||||
* своего API обложек. Пополняется по мере проработки сетей.
|
||||
* Ключ — хост сайта (без www), значение — прямой URL квадратного логотипа.
|
||||
*/
|
||||
object StationLogos {
|
||||
|
||||
private val byDomain: Map<String, String> = mapOf(
|
||||
// Comedy Radio (Comedy FM / Comedy Club / Comedy Spa) — платформа 101.ru
|
||||
"comedy-radio.ru" to "https://comedy-radio.ru/design/images/logo/apple-touch-icon-180.png?v=2",
|
||||
)
|
||||
|
||||
/** Логотип станции по её сайту, либо null. */
|
||||
fun forSite(site: String?): String? {
|
||||
val host = site
|
||||
?.substringAfter("://", site)
|
||||
?.removePrefix("www.")
|
||||
?.substringBefore("/")
|
||||
?.trim()
|
||||
?.lowercase()
|
||||
?.takeIf { it.isNotEmpty() }
|
||||
?: return null
|
||||
return byDomain[host]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user