created from kodorvan/neurobot
This commit is contained in:
101
author/project/system/public/telegram.php
Normal file
101
author/project/system/public/telegram.php
Normal file
@@ -0,0 +1,101 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace ${REPO_OWNER}\${REPO_NAME};
|
||||
|
||||
// Files of the project
|
||||
use ${REPO_OWNER}\${REPO_NAME}\models\account,
|
||||
${REPO_OWNER}\${REPO_NAME}\models\telegram\middlewares,
|
||||
${REPO_OWNER}\${REPO_NAME}\models\telegram\commands,
|
||||
${REPO_OWNER}\${REPO_NAME}\models\telegram\buttons,
|
||||
${REPO_OWNER}\${REPO_NAME}\models\telegram\chat,
|
||||
${REPO_OWNER}\${REPO_NAME}\models\telegram\account as telegram_account,
|
||||
${REPO_OWNER}\${REPO_NAME}\models\telegram\settings,
|
||||
${REPO_OWNER}\${REPO_NAME}\models\telegram\network,
|
||||
${REPO_OWNER}\${REPO_NAME}\models\telegram\tariff,
|
||||
${REPO_OWNER}\${REPO_NAME}\models\acquirings\yookassa,
|
||||
${REPO_OWNER}\${REPO_NAME}\models\enumerations\tariff as tariff_type,
|
||||
${REPO_OWNER}\${REPO_NAME}\models\telegram\processes\settings\chat\memory\messages as processes_settings_chat_memory_messages;
|
||||
|
||||
// Library for languages support
|
||||
use mirzaev\languages\language;
|
||||
|
||||
// Framework for PHP
|
||||
use mirzaev\minimal\core,
|
||||
mirzaev\minimal\route;
|
||||
|
||||
// Framework for Telegram
|
||||
use Zanzara\Zanzara as zanzara,
|
||||
Zanzara\Context as context,
|
||||
Zanzara\Config as config;
|
||||
|
||||
// Enabling debugging
|
||||
/* ini_set('error_reporting', E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
ini_set('display_startup_errors', 1); */
|
||||
|
||||
// Initializing path to the public directory
|
||||
define('INDEX', __DIR__);
|
||||
|
||||
// Initializing path to the project root directory
|
||||
define('ROOT', INDEX . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR);
|
||||
|
||||
// Initializing path to the directory of views
|
||||
define('VIEWS', INDEX . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'views');
|
||||
|
||||
// Initializing path to the directory of settings
|
||||
define('SETTINGS', INDEX . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'settings');
|
||||
|
||||
// Initializing system settings
|
||||
require SETTINGS . DIRECTORY_SEPARATOR . 'system.php';
|
||||
|
||||
// Initializing path to the directory of the storage
|
||||
define('STORAGE', INDEX . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'storage');
|
||||
|
||||
// Initializing path to the databases directory
|
||||
define('DATABASES', INDEX . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'databases');
|
||||
|
||||
// Initializing path to the localizations directory
|
||||
define('LOCALIZATIONS', INDEX . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'localizations');
|
||||
|
||||
// Initiailizing Telegram chat-robot settings
|
||||
require(SETTINGS . DIRECTORY_SEPARATOR . 'telegram.php');
|
||||
|
||||
// Initializing dependencies
|
||||
require ROOT . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||
|
||||
// Initializing the configuration
|
||||
$$config = new config();
|
||||
$$config->setParseMode(config::PARSE_MODE_MARKDOWN);
|
||||
$$config->useReactFileSystem(true);
|
||||
|
||||
// Initializing the robot
|
||||
$$robot = new Zanzara(ROBOT['key'], $$config);
|
||||
|
||||
// Initializing the updates listener
|
||||
$$robot->onUpdate(function (context $$context): void {});
|
||||
|
||||
// Initializing the robot middlewares
|
||||
$$robot->middleware([middlewares::class, 'account']);
|
||||
$$robot->middleware([middlewares::class, 'language']);
|
||||
$$robot->middleware([middlewares::class, 'localization']);
|
||||
$$robot->middleware([middlewares::class, 'authorizations']);
|
||||
$$robot->middleware([middlewares::class, 'welcome']);
|
||||
|
||||
// Initializing the robot commands handlers
|
||||
$$robot->onCommand('start', [commands::class, 'start']);
|
||||
$$robot->onCommand('menu', [commands::class, 'menu']);
|
||||
$$robot->onCommand('language', [commands::class, 'language'])->middleware([middlewares::class, 'settings']);
|
||||
$$robot->onCommand('society', [commands::class, 'society']);
|
||||
|
||||
// Initializing the robot settings language buttons handlers
|
||||
foreach (language::cases() as $$language) {
|
||||
// Iterating over languages
|
||||
|
||||
// Initializing language buttons
|
||||
$$robot->onCbQueryData(["settings_language_$$language->name"], fn(context $$context) => settings::language($$context, $$language));
|
||||
};
|
||||
|
||||
// Starting chat-robot
|
||||
$$robot->run();
|
||||
Reference in New Issue
Block a user