diff --git a/lib/streaming_providers/base/provider_registry.py b/lib/streaming_providers/base/provider_registry.py index c0f38c3..ca7a142 100644 --- a/lib/streaming_providers/base/provider_registry.py +++ b/lib/streaming_providers/base/provider_registry.py @@ -23,8 +23,12 @@ class ProviderMetadata: if self.plugin_class.supports_multiple_countries(): self.name = f"{self.plugin_name}_{self.country}" + # For multi-country providers, include country in label + self.label = self.plugin_class.get_static_label(self.country) else: - self.name = self.plugin_name + self.name = self.plugin_name # e.g., "hrti" (no country suffix) + # For single-country providers, don't include country in label + self.label = self.plugin_class.get_static_label() # ← Call WITHOUT country! self.label = self.plugin_class.get_static_label(self.country) self.supported_auth_types = self.plugin_class.get_static_auth_types() diff --git a/resources/web/config.js b/resources/web/config.js index 89e9e3a..2d80b72 100644 --- a/resources/web/config.js +++ b/resources/web/config.js @@ -983,4 +983,5 @@ async function clearAllConfigurations() { // Make functions available globally window.saveCredentials = saveCredentials; window.deleteCredentials = deleteCredentials; -window.testAuth = testAuth; \ No newline at end of file +window.testAuth = testAuth; +window.loadProviders = loadProviders; // Export for provider toggle reload \ No newline at end of file diff --git a/resources/web/provider_enable.js b/resources/web/provider_enable.js index e6ee7a7..9a8b16a 100644 --- a/resources/web/provider_enable.js +++ b/resources/web/provider_enable.js @@ -245,17 +245,21 @@ async function handleProviderToggle(providerName, checkbox) { const success = await window.providerEnableManager.toggleProvider(providerName, newState); if (success) { - // Update card appearance + // If enabling a provider, reload providers data to get full auth details if (newState) { - card.classList.remove('disabled'); - showAlert('success', `${providerName} enabled`); + showAlert('success', `${providerName} enabled - reloading provider details...`); + + // Reload providers to get complete auth information + if (typeof loadProviders === 'function') { + await loadProviders(); + } } else { card.classList.add('disabled'); showAlert('success', `${providerName} disabled`); - } - // Update filter info - window.providerEnableManager.applyFilter(); + // Just update filter info for disabled + window.providerEnableManager.applyFilter(); + } } else { // Revert checkbox on failure checkbox.checked = !newState; diff --git a/service.py b/service.py index e47ee95..db5423f 100644 --- a/service.py +++ b/service.py @@ -2036,43 +2036,6 @@ class UltimateService: response.status = 500 return {'error': f'Internal server error: {str(api_err)}'} - @self.app.route('/api/providers/enabled', method='GET') - def get_all_enabled_status(): - """Get enabled status for all providers""" - try: - manager = self.manager # ProviderManager - enable_manager = ProviderEnableManager() # Our new class - - all_providers = manager.list_providers() - result = {} - - for provider in all_providers: - # Get current status (following precedence) - status = enable_manager.is_provider_enabled(provider) - - # Get source information - source = enable_manager.get_enabled_source(provider) - - # FIX: Convert enum to string value for JSON serialization - source_value = source.value if hasattr(source, 'value') else str(source) - - result[provider] = { - 'enabled': status, - 'source': source_value, # Now a string, not an enum - 'can_modify': source != 'kodi' # Can't modify if set in Kodi - } - - return { - 'success': True, - 'providers': result, - 'count': len(result) - } - - except Exception as e: - logger.error(f"Error getting enabled status: {e}") - response.status = 500 - return {'error': str(e)} - @self.app.route('/api/providers//enabled', method='GET') def get_provider_enabled(provider): """Get enabled status for specific provider"""