67 lines
1.7 KiB
Python
67 lines
1.7 KiB
Python
"""Rinse FM: London's station family, a proxy mount each."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from ...models import Station
|
|
from .base import CommunityProvider
|
|
|
|
#: (station id, title, genre, mount, description)
|
|
_STATIONS: tuple[tuple[str, str, str, str, str], ...] = (
|
|
(
|
|
"rinse_uk",
|
|
"Rinse UK",
|
|
"electronic|house",
|
|
"rinse_uk",
|
|
"London's underground dance station, on air since 1994",
|
|
),
|
|
(
|
|
"kool",
|
|
"Kool London",
|
|
"jungle|drum & bass",
|
|
"kool",
|
|
"Kool London: jungle, drum & bass and roots",
|
|
),
|
|
(
|
|
"swu",
|
|
"SWU",
|
|
"soul|eclectic",
|
|
"swu",
|
|
"SWU: soul, funk and everything south west",
|
|
),
|
|
)
|
|
|
|
|
|
class RinseProvider(CommunityProvider):
|
|
id = "rinse"
|
|
name = "Rinse FM"
|
|
homepage = "rinse.fm"
|
|
brand = "RINSE"
|
|
tagline = "london · since 1994"
|
|
station_source = "rinse.fm streams"
|
|
history_source = ""
|
|
|
|
station_genre = "electronic"
|
|
|
|
wordmark = "RINSE"
|
|
hero_lines = ("LONDON", "SINCE 1994")
|
|
|
|
def stations(self) -> list[Station]:
|
|
return [
|
|
Station(
|
|
id=station_id,
|
|
title=title,
|
|
description=description,
|
|
genre=genre,
|
|
playlists=[
|
|
{
|
|
"url": f"https://admin.stream.rinse.fm/proxy/{mount}/stream",
|
|
"format": "aacp",
|
|
"quality": "high",
|
|
"bitrate": "128",
|
|
}
|
|
],
|
|
provider=self.id,
|
|
)
|
|
for station_id, title, genre, mount, description in _STATIONS
|
|
]
|