From f700b0c3c3be04c29bbf126bbded7a4627158641 Mon Sep 17 00:00:00 2001 From: Alexey Skobkin Date: Sun, 26 Mar 2023 14:50:42 +0300 Subject: [PATCH] Ported TelegramWebHookCommand. Needs migration to another library. --- composer.json | 3 +- composer.lock | 460 +++++++++++++++++- .../Command/TelegramWebHookCommand.php | 91 ---- src/Command/TelegramWebhookCommand.php | 67 +++ 4 files changed, 528 insertions(+), 93 deletions(-) delete mode 100644 old/src/PointToolsBundle/Command/TelegramWebHookCommand.php create mode 100644 src/Command/TelegramWebhookCommand.php diff --git a/composer.json b/composer.json index 8c00c73..58437c3 100644 --- a/composer.json +++ b/composer.json @@ -41,7 +41,8 @@ "symfony/web-link": "6.2.*", "symfony/yaml": "6.2.*", "twig/extra-bundle": "^2.12|^3.0", - "twig/twig": "^2.12|^3.0" + "twig/twig": "^2.12|^3.0", + "unreal4u/telegram-api": "*" }, "config": { "allow-plugins": { diff --git a/composer.lock b/composer.lock index ae36560..3663260 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "75085b03a22620e56812fd6d68ace9bb", + "content-hash": "630e498c2cbe2ce8e03d2395688f46d1", "packages": [ { "name": "doctrine/annotations", @@ -1457,6 +1457,315 @@ ], "time": "2023-01-14T14:17:03+00:00" }, + { + "name": "guzzlehttp/guzzle", + "version": "6.5.8", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a52f0440530b54fa079ce76e8c5d196a42cad981", + "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.0", + "guzzlehttp/psr7": "^1.9", + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.17" + }, + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", + "psr/log": "^1.1" + }, + "suggest": { + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/6.5.8" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2022-06-20T22:16:07+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "1.5.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "b94b2807d85443f9719887892882d0329d1e2598" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", + "reference": "b94b2807d85443f9719887892882d0329d1e2598", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.4 || ^5.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.5.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2022-08-28T14:55:35+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "1.9.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", + "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0", + "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "ext-zlib": "*", + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/1.9.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2022-06-20T21:43:03+00:00" + }, { "name": "monolog/monolog", "version": "3.3.1", @@ -1920,6 +2229,59 @@ }, "time": "2019-01-08T18:20:26+00:00" }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "time": "2016-08-06T14:39:51+00:00" + }, { "name": "psr/link", "version": "2.0.1", @@ -2026,6 +2388,50 @@ }, "time": "2021-07-14T16:46:02+00:00" }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, { "name": "sensio/framework-extra-bundle", "version": "v6.2.10", @@ -7216,6 +7622,58 @@ ], "time": "2023-02-08T07:49:20+00:00" }, + { + "name": "unreal4u/telegram-api", + "version": "v1.1.1", + "source": { + "type": "git", + "url": "https://github.com/unreal4u/telegram-api.git", + "reference": "501a02062942fb533bbcdf6f9f538368208db65a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/unreal4u/telegram-api/zipball/501a02062942fb533bbcdf6f9f538368208db65a", + "reference": "501a02062942fb533bbcdf6f9f538368208db65a", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "~6.0", + "php": ">=7.0.0" + }, + "require-dev": { + "phpmd/phpmd": "@stable", + "phpunit/phpunit": "@stable", + "squizlabs/php_codesniffer": "@stable" + }, + "type": "library", + "autoload": { + "psr-4": { + "unreal4u\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Camilo Sperberg", + "email": "me@unreal4u.com", + "homepage": "https://github.com/unreal4u/telegram-api/graphs/contributors" + } + ], + "description": "Complete implementation used to communicate with the open-source Telegram API", + "keywords": [ + "api", + "telegram", + "telegram bot" + ], + "support": { + "issues": "https://github.com/unreal4u/telegram-api/issues", + "source": "https://github.com/unreal4u/telegram-api/tree/master" + }, + "time": "2016-01-26T21:46:33+00:00" + }, { "name": "webmozart/assert", "version": "1.11.0", diff --git a/old/src/PointToolsBundle/Command/TelegramWebHookCommand.php b/old/src/PointToolsBundle/Command/TelegramWebHookCommand.php deleted file mode 100644 index 4893653..0000000 --- a/old/src/PointToolsBundle/Command/TelegramWebHookCommand.php +++ /dev/null @@ -1,91 +0,0 @@ -client = $client; - $this->router = $router; - $this->token = $telegramToken; - $this->maxConnections = $telegramWebhookMaxConnections; - } - - /** - * {@inheritdoc} - */ - protected function configure() - { - $this - ->setName('telegram:webhook') - ->setDescription('Set webhook') - ->addArgument('mode', InputArgument::REQUIRED, 'Command mode (set or delete)') - ; - } - - /** - * {@inheritdoc} - */ - protected function execute(InputInterface $input, OutputInterface $output) - { - if (self::MODE_SET === strtolower($input->getArgument('mode'))) { - - $url = $this->router->generate( - 'telegram_webhook', - ['token' => $this->token], - UrlGeneratorInterface::ABSOLUTE_URL - ); - - $output->writeln('Setting webhook: '.$url); - - $setWebHook = new SetWebhook(); - $setWebHook->url = $url; - $setWebHook->max_connections = $this->maxConnections; - - $this->client->performApiRequest($setWebHook); - - $output->writeln('Done'); - } elseif (self::MODE_DELETE === strtolower($input->getArgument('mode'))) { - $output->writeln('Deleting webhook'); - - $deleteWebHook = new DeleteWebhook(); - - $this->client->performApiRequest($deleteWebHook); - - $output->writeln('Done'); - } else { - throw new \InvalidArgumentException(sprintf('Mode must be exactly one of: %s', implode(', ', [self::MODE_SET, self::MODE_DELETE]))); - } - - return 0; - } -} diff --git a/src/Command/TelegramWebhookCommand.php b/src/Command/TelegramWebhookCommand.php new file mode 100644 index 0000000..26a9b43 --- /dev/null +++ b/src/Command/TelegramWebhookCommand.php @@ -0,0 +1,67 @@ +addArgument('mode', InputArgument::REQUIRED, 'Command mode (set or delete)') + ; + } + + protected function execute(InputInterface $input, OutputInterface $output): int + { + $io = new SymfonyStyle($input, $output); + + if (self::MODE_SET === strtolower($input->getArgument('mode'))) { + + $url = $this->router->generate( + 'telegram_webhook', + ['token' => $this->telegramToken], + UrlGeneratorInterface::ABSOLUTE_URL + ); + + $io->info('Setting webhook: ' . $url); + + $setWebHook = new SetWebhook(); + $setWebHook->url = $url; + $setWebHook->max_connections = $this->telegramWebhookMaxConnections; + + $this->client->performApiRequest($setWebHook); + + $output->writeln('Done'); + } elseif (self::MODE_DELETE === strtolower($input->getArgument('mode'))) { + $io->warning('Unsupported until moving to another library.'); + } else { + throw new \InvalidArgumentException(sprintf('Mode must be exactly one of: %s', implode(', ', [self::MODE_SET, self::MODE_DELETE]))); + } + + return Command::SUCCESS; + } +}