kemoverse/bot/fediverse_factory.py
2025-06-13 13:36:38 +09:00

45 lines
No EOL
1.5 KiB
Python

from fediverse_service import FediverseService
from misskey_service import MisskeyService
from pleroma_service import PleromaService
import config
class FediverseServiceFactory:
"""Factory for creating FediverseService implementations based on configuration"""
@staticmethod
def create_service(instance_type: str = None) -> FediverseService:
"""
Create a FediverseService implementation based on the instance type.
Args:
instance_type: The type of instance ("misskey" or "pleroma").
If None, reads from config.INSTANCE_TYPE
Returns:
FediverseService implementation (MisskeyService or PleromaService)
Raises:
ValueError: If the instance type is not supported
"""
if instance_type is None:
instance_type = config.INSTANCE_TYPE
instance_type = instance_type.lower()
if instance_type == "misskey":
return MisskeyService()
elif instance_type == "pleroma":
return PleromaService()
else:
raise ValueError(f"Unsupported instance type: {instance_type}")
def get_fediverse_service(instance_type: str = None) -> FediverseService:
"""
Convenience function to get a FediverseService instance
Args:
instance_type: Optional instance type override for testing
"""
return FediverseServiceFactory.create_service(instance_type)