Add provider logos

This commit is contained in:
Nirvana
2025-11-26 14:49:41 +01:00
parent bc6ae6b8c8
commit 86d84eb0d3
9 changed files with 30 additions and 2 deletions
+5
View File
@@ -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
@@ -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
@@ -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 = {
@@ -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:
@@ -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
@@ -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)
@@ -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:
+1
View File
@@ -48,6 +48,7 @@
<!-- RTL+ Provider Settings -->
<category id="rtlplus" label="30100">
<setting id="enable_rtlplus" type="bool" label="Enable RTL+" default="false" />
<setting id="rtlplus_username" type="text" label="30101" default="">
<level>0</level>
<constraints>
+2
View File
@@ -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
})