Bot Discord - Commit completo con todos los cambios
This commit is contained in:
58
common/helpers/sender_factory.php
Executable file
58
common/helpers/sender_factory.php
Executable file
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
/**
|
||||
* Factory para crear Senders según la plataforma
|
||||
*
|
||||
* Este factory simplifica la creación de senders para diferentes plataformas
|
||||
* usando la nueva estructura de directorios.
|
||||
*
|
||||
* Ubicación: /common/helpers/sender_factory.php
|
||||
* Fecha de creación: 2025-11-25
|
||||
*/
|
||||
|
||||
class SenderFactory {
|
||||
|
||||
/**
|
||||
* Crea un sender para la plataforma especificada
|
||||
*
|
||||
* @param string $platform 'telegram' o 'discord'
|
||||
* @param PDO $pdo Conexión a base de datos (requerida para Telegram)
|
||||
* @return TelegramSender|DiscordSender
|
||||
* @throws Exception Si la plataforma no es soportada
|
||||
*/
|
||||
public static function create($platform, $pdo = null) {
|
||||
switch(strtolower($platform)) {
|
||||
case 'telegram':
|
||||
if ($pdo === null) {
|
||||
throw new Exception("PDO es requerido para TelegramSender");
|
||||
}
|
||||
require_once __DIR__ . '/../../telegram/TelegramSender.php';
|
||||
return new TelegramSender(TELEGRAM_BOT_TOKEN, $pdo);
|
||||
|
||||
case 'discord':
|
||||
require_once __DIR__ . '/../../discord/DiscordSender.php';
|
||||
return new DiscordSender(DISCORD_BOT_TOKEN);
|
||||
|
||||
default:
|
||||
throw new Exception("Plataforma no soportada: $platform. Use 'telegram' o 'discord'");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifica si una plataforma es soportada
|
||||
*
|
||||
* @param string $platform
|
||||
* @return bool
|
||||
*/
|
||||
public static function isSupported($platform) {
|
||||
return in_array(strtolower($platform), ['telegram', 'discord']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Obtiene lista de plataformas soportadas
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getSupportedPlatforms() {
|
||||
return ['telegram', 'discord'];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user