<?php 
 
use Dotenv\Dotenv; 
use Mateodioev\TgHandler\Bot; 
use App\Commands\{Purge, Start, All}; 
use App\MemoryDbAdapter; 
use Mateodioev\TgHandler\Log\{BulkStream, FileStream, Logger, TerminalStream}; 
 
if ($argv[0] === \basename(__FILE__)) { 
    fprintf(STDERR, "Do not run this file directly\n"); 
    exit(1); 
} 
 
Dotenv::createImmutable(__DIR__)->load(); 
 
$logger = new Logger( 
    new BulkStream( // Log to both terminal and file 
        new TerminalStream(), 
        new FileStream(env('PWD_PATH', __DIR__) . '/info.log') 
    ), 
); 
// $logger->setLevel(Logger::DEBUG, false); // Disable debug logs 
 
$bot = new Bot(env('BOT_TOKEN'), $logger); 
$bot->setDb(new MemoryDbAdapter()); 
 
$bot->setLogger($logger) 
    ->onEvent(Purge::get()) 
    ->onEvent(Start::get()) 
    ->onEvent(new All()); 
 
return $bot; 
 
 |