mirror of
https://github.com/UrloMythus/UnHided.git
synced 2026-04-11 03:40:54 +00:00
29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
from typing import Dict, Optional, Type
|
|
|
|
from .models import SpeedTestProvider
|
|
from .providers.all_debrid import AllDebridSpeedTest
|
|
from .providers.base import BaseSpeedTestProvider
|
|
from .providers.real_debrid import RealDebridSpeedTest
|
|
|
|
|
|
class SpeedTestService:
|
|
"""Service for managing speed test provider configurations."""
|
|
|
|
def __init__(self):
|
|
# Provider mapping
|
|
self._providers: Dict[SpeedTestProvider, Type[BaseSpeedTestProvider]] = {
|
|
SpeedTestProvider.REAL_DEBRID: RealDebridSpeedTest,
|
|
SpeedTestProvider.ALL_DEBRID: AllDebridSpeedTest,
|
|
}
|
|
|
|
def get_provider(self, provider: SpeedTestProvider, api_key: Optional[str] = None) -> BaseSpeedTestProvider:
|
|
"""Get the appropriate provider implementation."""
|
|
provider_class = self._providers.get(provider)
|
|
if not provider_class:
|
|
raise ValueError(f"Unsupported provider: {provider}")
|
|
|
|
if provider == SpeedTestProvider.ALL_DEBRID and not api_key:
|
|
raise ValueError("API key required for AllDebrid")
|
|
|
|
return provider_class(api_key) if provider == SpeedTestProvider.ALL_DEBRID else provider_class()
|