From 86d84eb0d3fbf2c3defbba493ef4907743b0c9ba Mon Sep 17 00:00:00 2001 From: Nirvana Date: Wed, 26 Nov 2025 14:49:41 +0100 Subject: [PATCH] Add provider logos --- lib/streaming_providers/base/provider.py | 5 +++++ lib/streaming_providers/providers/joyn/provider.py | 4 ++++ lib/streaming_providers/providers/magenta2/constants.py | 2 ++ lib/streaming_providers/providers/magenta2/provider.py | 8 ++++++-- lib/streaming_providers/providers/magentaeu/provider.py | 4 ++++ lib/streaming_providers/providers/rtlplus/constants.py | 3 +++ lib/streaming_providers/providers/rtlplus/provider.py | 3 +++ resources/settings.xml | 1 + service.py | 2 ++ 9 files changed, 30 insertions(+), 2 deletions(-) diff --git a/lib/streaming_providers/base/provider.py b/lib/streaming_providers/base/provider.py index 73aa625..7f84c00 100644 --- a/lib/streaming_providers/base/provider.py +++ b/lib/streaming_providers/base/provider.py @@ -49,6 +49,11 @@ class StreamingProvider(ABC): """Return the provider label (e.g., 'JOYN', 'ZDF', 'RTL+')""" pass + @property + @abstractmethod + def provider_logo(self) -> str: + """Return the provider logo (e.g., 'https://www.domain.com/logo')""" + pass @property @abstractmethod diff --git a/lib/streaming_providers/providers/joyn/provider.py b/lib/streaming_providers/providers/joyn/provider.py index 6757a82..df3cac3 100644 --- a/lib/streaming_providers/providers/joyn/provider.py +++ b/lib/streaming_providers/providers/joyn/provider.py @@ -164,6 +164,10 @@ class JoynProvider(StreamingProvider): def provider_label(self) -> str: return f'Joyn ({self.country})' + @property + def provider_logo(self) -> str: + return '' + @property def uses_dynamic_manifests(self) -> bool: return False diff --git a/lib/streaming_providers/providers/magenta2/constants.py b/lib/streaming_providers/providers/magenta2/constants.py index f5a0b9e..94a6f43 100644 --- a/lib/streaming_providers/providers/magenta2/constants.py +++ b/lib/streaming_providers/providers/magenta2/constants.py @@ -9,6 +9,8 @@ SUPPORTED_COUNTRIES = ['de'] # Default country DEFAULT_COUNTRY = 'de' +MAGENTA2_LOGO = 'https://upload.wikimedia.org/wikipedia/commons/thumb/1/13/Magenta_TV_Logo_%282021%29.svg/2560px-Magenta_TV_Logo_%282021%29.svg.png' + # Platform configuration DEFAULT_PLATFORM = 'android-tv' MAGENTA2_PLATFORMS = { diff --git a/lib/streaming_providers/providers/magenta2/provider.py b/lib/streaming_providers/providers/magenta2/provider.py index 8cdc248..6cba971 100644 --- a/lib/streaming_providers/providers/magenta2/provider.py +++ b/lib/streaming_providers/providers/magenta2/provider.py @@ -35,7 +35,7 @@ from .constants import ( DEFAULT_REQUEST_TIMEOUT, DEFAULT_MAX_RETRIES, DEFAULT_EPG_WINDOW_HOURS, - ERROR_CODES + ERROR_CODES, MAGENTA2_LOGO ) @@ -386,7 +386,11 @@ class Magenta2Provider(StreamingProvider): @property def provider_label(self) -> str: - return f'Magenta2 ({self.country})' + return 'Magenta TV 2.0' + + @property + def provider_logo(self) -> str: + return MAGENTA2_LOGO @property def uses_dynamic_manifests(self) -> bool: diff --git a/lib/streaming_providers/providers/magentaeu/provider.py b/lib/streaming_providers/providers/magentaeu/provider.py index 547726e..bf128e3 100644 --- a/lib/streaming_providers/providers/magentaeu/provider.py +++ b/lib/streaming_providers/providers/magentaeu/provider.py @@ -97,6 +97,10 @@ class MagentaProvider(StreamingProvider): def provider_label(self) -> str: return f'Magenta TV ({self.country.upper()})' + @property + def provider_logo(self) -> str: + return '' + @property def uses_dynamic_manifests(self) -> bool: return False diff --git a/lib/streaming_providers/providers/rtlplus/constants.py b/lib/streaming_providers/providers/rtlplus/constants.py index b4a08df..93e499f 100644 --- a/lib/streaming_providers/providers/rtlplus/constants.py +++ b/lib/streaming_providers/providers/rtlplus/constants.py @@ -6,6 +6,7 @@ RTL+ provider constants and default configurations class RTLPlusDefaults: """Default values for RTL+ provider""" + RTLPLUS_LOGO = 'https://upload.wikimedia.org/wikipedia/commons/thumb/f/f4/RTL%2B_Logo_2021.svg/2560px-RTL%2B_Logo_2021.svg.png' # Client and version information CLIENT_VERSION = '2025.6.26.0' @@ -110,6 +111,8 @@ class RTLPlusConfig: """Initialize with optional configuration overrides""" config = config_dict or {} + self.logo = config.get('logo', RTLPlusDefaults.RTLPLUS_LOGO) + # Core settings (can be overridden) self.client_version = config.get('client_version', RTLPlusDefaults.CLIENT_VERSION) self.chrome_version = config.get('chrome_version', RTLPlusDefaults.CHROME_VERSION) diff --git a/lib/streaming_providers/providers/rtlplus/provider.py b/lib/streaming_providers/providers/rtlplus/provider.py index ad4310e..cb34f0b 100644 --- a/lib/streaming_providers/providers/rtlplus/provider.py +++ b/lib/streaming_providers/providers/rtlplus/provider.py @@ -60,6 +60,9 @@ class RTLPlusProvider(StreamingProvider): def provider_label(self) -> str: return 'RTL+' + @property + def provider_logo(self) -> str: + return self.rtl_config.logo @property def uses_dynamic_manifests(self) -> bool: diff --git a/resources/settings.xml b/resources/settings.xml index dc1a2a3..6c7892d 100644 --- a/resources/settings.xml +++ b/resources/settings.xml @@ -48,6 +48,7 @@ + 0 diff --git a/service.py b/service.py index 1aa8ae9..dedfdf3 100644 --- a/service.py +++ b/service.py @@ -363,10 +363,12 @@ class UltimateService: if provider_instance: provider_label = getattr(provider_instance, 'provider_label', provider_name) country = getattr(provider_instance, 'country', default_country) + provider_logo = getattr(provider_instance, 'provider_logo', '') providers_details.append({ 'name': provider_name, 'label': provider_label, + 'logo': provider_logo, 'country': country })