mirror of
https://github.com/Alishahryar1/free-claude-code.git
synced 2026-04-28 19:40:54 +00:00
56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
"""Messaging platform factory.
|
|
|
|
Creates the appropriate messaging platform adapter based on configuration.
|
|
To add a new platform (e.g. Discord, Slack):
|
|
1. Create a new class implementing MessagingPlatform in messaging/platforms/
|
|
2. Add a case to create_messaging_platform() below
|
|
"""
|
|
|
|
from loguru import logger
|
|
|
|
from .base import MessagingPlatform
|
|
|
|
|
|
def create_messaging_platform(
|
|
platform_type: str,
|
|
**kwargs,
|
|
) -> MessagingPlatform | None:
|
|
"""Create a messaging platform instance based on type.
|
|
|
|
Args:
|
|
platform_type: Platform identifier ("telegram", "discord", etc.)
|
|
**kwargs: Platform-specific configuration passed to the constructor.
|
|
|
|
Returns:
|
|
Configured MessagingPlatform instance, or None if not configured.
|
|
"""
|
|
if platform_type == "telegram":
|
|
bot_token = kwargs.get("bot_token")
|
|
if not bot_token:
|
|
logger.info("No Telegram bot token configured, skipping platform setup")
|
|
return None
|
|
|
|
from .telegram import TelegramPlatform
|
|
|
|
return TelegramPlatform(
|
|
bot_token=bot_token,
|
|
allowed_user_id=kwargs.get("allowed_user_id"),
|
|
)
|
|
|
|
if platform_type == "discord":
|
|
bot_token = kwargs.get("discord_bot_token")
|
|
if not bot_token:
|
|
logger.info("No Discord bot token configured, skipping platform setup")
|
|
return None
|
|
|
|
from .discord import DiscordPlatform
|
|
|
|
return DiscordPlatform(
|
|
bot_token=bot_token,
|
|
allowed_channel_ids=kwargs.get("allowed_discord_channels"),
|
|
)
|
|
|
|
logger.warning(
|
|
f"Unknown messaging platform: '{platform_type}'. Supported: 'telegram', 'discord'"
|
|
)
|
|
return None
|