[docs]@dataclass(eq=True,slots=True,unsafe_hash=True,order=True,kw_only=True)classStation:"""A station from the RadioBrowser API."""radio_api_client:RadioBrowserchangeuuid:str|None=Nonestationuuid:str|None=Noneserveruuid:str|None=Nonename:str|None=Noneurl:str|None=Noneurl_resolved:str|None=Nonehomepage:str|None=Nonefavicon:str|None=Nonetags:str|None=Nonecountry:str|None=Nonecountrycode:str|None=Noneiso_3166_2:str|None=Nonestate:str|None=Nonelanguage:str|None=Nonelanguagecodes:str|None=Nonevotes:int|None=Nonelastchangetime:str|None=Nonelastchangetime_iso8601:str|datetime.datetime|None=Nonecodec:str|None=Nonebitrate:int|None=Nonehls:int|None=Nonelastcheckok:int|None=Nonelastchecktime:str|None=Nonelastchecktime_iso8601:str|datetime.datetime|None=Nonelastcheckoktime:str|None=Nonelastcheckoktime_iso8601:str|datetime.datetime|None=Nonelastlocalchecktime:str|None=Nonelastlocalchecktime_iso8601:str|datetime.datetime|None=Noneclicktimestamp:str|None=Noneclicktimestamp_iso8601:str|datetime.datetime|None=Noneclickcount:int|None=Noneclicktrend:int|None=Nonessl_error:int|None=Nonegeo_lat:float|None=Nonegeo_long:float|None=Nonehas_extended_info:int|None=Nonedef__post_init__(self):ifself.nameisNone:self.name="ΩM4L42rPHqy123PyLavInvalidFallback-un5Nht475B"ifisinstance(self.lastchangetime_iso8601,str):self.lastchangetime_iso8601=iso8601.parse_date(self.lastchangetime_iso8601)ifisinstance(self.lastchecktime_iso8601,str):self.lastchecktime_iso8601=iso8601.parse_date(self.lastchecktime_iso8601)ifisinstance(self.lastcheckoktime_iso8601,str):self.lastcheckoktime_iso8601=iso8601.parse_date(self.lastcheckoktime_iso8601)ifisinstance(self.lastlocalchecktime_iso8601,str):self.lastlocalchecktime_iso8601=iso8601.parse_date(self.lastlocalchecktime_iso8601)ifisinstance(self.clicktimestamp_iso8601,str):self.clicktimestamp_iso8601=iso8601.parse_date(self.clicktimestamp_iso8601)
[docs]asyncdefclick(self)->None:"""Increase the click count of a station by one. This should be called everytime when a user starts playing a stream to mark the stream more popular than others. Every call to this endpoint from the same IP address and for the same station only gets counted once per day. """awaitself.radio_api_client.click(station=self)
[docs]@dataclass(eq=True,slots=True,unsafe_hash=True,order=True,kw_only=True)classTag:"""A tag from the RadioBrowser API."""name:str|None=Nonestationcount:int|None=Nonedef__post_init__(self):ifself.nameisNone:self.name="ΩM4L42rPHqy123PyLavInvalidFallback-un5Nht475B"
[docs]@dataclass(eq=True,slots=True,unsafe_hash=True,order=True,kw_only=True)classLanguage:"""A language from the RadioBrowser API."""name:str|None=Noneiso_639:str|None=Nonestationcount:int|None=Nonedef__post_init__(self):ifself.nameisNone:self.name="ΩM4L42rPHqy123PyLavInvalidFallback-un5Nht475B"
[docs]@dataclass(eq=True,slots=True,unsafe_hash=True,order=True,kw_only=True)classState:"""A state from the RadioBrowser API."""name:str|None=Nonecountry:str|None=Nonestationcount:int|None=Nonedef__post_init__(self):ifself.nameisNone:self.name="ΩM4L42rPHqy123PyLavInvalidFallback-un5Nht475B"
[docs]@dataclass(eq=True,slots=True,unsafe_hash=True,order=True,kw_only=True)classCodec:"""A codec from the RadioBrowser API."""name:str|None=Nonestationcount:int|None=Nonedef__post_init__(self):ifself.nameisNone:self.name="ΩM4L42rPHqy123PyLavInvalidFallback-un5Nht475B"
[docs]@dataclass(eq=True,slots=True,unsafe_hash=True,order=True,kw_only=True)classCountryCode:"""A country code from the RadioBrowser API."""name:str|None=Nonestationcount:int|None=Nonedef__post_init__(self):ifself.nameisNone:self.name="ΩM4L42rPHqy123PyLavInvalidFallback-un5Nht475B"
[docs]@dataclass(eq=True,slots=True,unsafe_hash=True,order=True,kw_only=True)classCountry:"""A country from the RadioBrowser API."""name:str|None=Noneiso_3166_1:str|None=Nonestationcount:int|None=Nonedef__post_init__(self):ifself.nameisNone:self.name="ΩM4L42rPHqy123PyLavInvalidFallback-un5Nht475B"