| 
<?php require './vendor/autoload.php';
 use App\Config\Files;
 use App\Models\Bot;
 use App\Config\StringUtils;
 
 const BOT_TOKEN = 'YOUR BOT TOKEN';
 const GITHUB    = 'https://github.com/Mateodioev/';
 const REPO      = 'rand-file';
 
 $bot = new Bot(BOT_TOKEN);
 
 $up = $bot::GetContent();
 
 if (isset($up['message'])) {
 $msg = $up['message'];
 $chat_id = $msg['chat']['id'];
 $msg_id = $msg['message_id'];
 }
 
 // Messages text
 if (isset($msg['text'])) {
 
 $message = $msg['text'];
 $name = StringUtils::QuitMarkdown(@$msg['from']['first_name'] . ' ' . @$msg['from']['last_name']);
 
 if ($bot::Cmd('start')) {
 $hi = "Hola " . $name . ", enviame un sticker, gif, foto, o un audio y yo te enviare otro archivo del mismo tipo\n\nPd: No me hago responsable de los archivos enviados por el bot, ya que estos proviene de los usuarios";
 $bot::SendMsg($chat_id, $hi, $msg_id, ['inline_keyboard' => [[['text' => 'Gihub', 'url' => GITHUB], ['text' => 'Repository', 'url' => GITHUB.REPO]]]], 'markdown');
 }
 exit;
 }
 
 $all = Files::Open('all_ids');
 
 // Stickers
 if (isset($msg['sticker'])) {
 $sticker_id = $msg['sticker']['file_id'];
 $unique = $msg['sticker']['file_unique_id'];
 
 Bot::Sticker($chat_id, SaveAndGet('sticker', $sticker_id, $unique, $all), $msg_id);
 exit;
 }
 
 // Animations (Gifs)
 if (isset($msg['animation'])) {
 $gif_id = $msg['animation']['file_id'];
 $unique = $msg['animation']['file_unique_id'];
 
 Bot::Gif($chat_id, SaveAndGet('animation', $gif_id, $unique, $all), null, $msg_id);
 exit;
 }
 
 // Photos
 if (isset($msg['photo'])) {
 $photo = $msg['photo'][count($msg['photo']) - 1];
 $photo_id = $photo['file_id'];
 $unique = $photo['file_unique_id'];
 
 Bot::Photo($chat_id, SaveAndGet('photo', $photo_id, $unique, $all), null, $msg_id);
 exit;
 }
 
 // Audio
 if (isset($msg['audio'])) {
 $audio_id = $msg['audio']['file_id'];
 $unique = $msg['audio']['file_unique_id'];
 
 Bot::Audio($chat_id, SaveAndGet('audio', $audio_id, $unique, $all), null, $msg_id);
 exit;
 }
 
 // Voice
 if (isset($msg['voice'])) {
 $voice_id = $msg['voice']['file_id'];
 $unique = $msg['voice']['file_unique_id'];
 
 Bot::Voice($chat_id, SaveAndGet('voice', $voice_id, $unique, $all), null, $msg_id);
 exit;
 }
 
 // Documents
 if (isset($msg['document'])) {
 $doc_id = $msg['document']['file_id'];
 $unique = $msg['document']['file_unique_id'];
 
 Bot::sendDocument(['chat_id' => $chat_id, 'document' => SaveAndGet('document', $doc_id, $unique, $all), 'reply_to_message_id' => $msg_id, 'allow_sending_without_reply' => true]);
 exit;
 }
 
 
 
 /**
 * Guardar el id según su tipo y obtener otro id random del mismo tipo
 */
 function SaveAndGet(string $type, string $id, string $unique, array $all): string
 {
 SaveId($type, $id, $unique, $all);
 return Files::OpenUnique($type);
 }
 
 /**
 * Guardar un id solo si no es repetido el unique_id
 */
 function SaveId(string $type, string $id, string $unique_id, array $all)
 {
 if (StringUtils::Compare($all, $unique_id)) return;
 
 Files::Save($type, $id);
 Files::Save('all_ids', $unique_id);
 }
 |