<?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); 
}
 
 |