Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 4caaa2e

Browse filesBrowse files
committed
bug #51721 [Notifier][Telegram] Add escaping for slashes (igrizzli)
This PR was merged into the 6.3 branch. Discussion ---------- [Notifier][Telegram] Add escaping for slashes | Q | A | ------------- | --- | Branch? | 6.3 | Bug fix? | yes | New feature? | no | Deprecations? | no | Tickets | | License | MIT | Doc PR | symfony/symfony-docs#... <!-- required for new features --> If source message contains slash and reserved symbol after it Telegram handle escape incorrect. Actual behavior: `Hello\World\{closure}` will be escaped as `Hello\World\\{closure\}` ``` In TelegramTransport.php line 107: [Symfony\Component\Notifier\Exception\TransportException] Unable to post the Telegram message: Bad Request: can't parse entities: Character '{' is reserved and must be escaped with the preceding '\' (code 400). Exception trace: at /app/vendor/symfony/telegram-notifier/TelegramTransport.php:107 Symfony\Component\Notifier\Bridge\Telegram\TelegramTransport->doSend() at /app/vendor/symfony/notifier/Transport/AbstractTransport.php:80 Symfony\Component\Notifier\Transport\AbstractTransport->send() at /app/vendor/symfony/notifier/Transport/Transports.php:60 Symfony\Component\Notifier\Transport\Transports->send() at /app/vendor/symfony/notifier/Messenger/MessageHandler.php:32 Symfony\Component\Notifier\Messenger\MessageHandler->__invoke() at /app/vendor/symfony/messenger/Middleware/HandleMessageMiddleware.php:157 Symfony\Component\Messenger\Middleware\HandleMessageMiddleware->callHandler() at /app/vendor/symfony/messenger/Middleware/HandleMessageMiddleware.php:96 Symfony\Component\Messenger\Middleware\HandleMessageMiddleware->handle() at /app/vendor/symfony/messenger/Middleware/SendMessageMiddleware.php:77 Symfony\Component\Messenger\Middleware\SendMessageMiddleware->handle() at /app/vendor/symfony/messenger/Middleware/FailedMessageProcessingMiddleware.php:34 Symfony\Component\Messenger\Middleware\FailedMessageProcessingMiddleware->handle() at /app/vendor/symfony/messenger/Middleware/DispatchAfterCurrentBusMiddleware.php:68 Symfony\Component\Messenger\Middleware\DispatchAfterCurrentBusMiddleware->handle() at /app/vendor/symfony/messenger/Middleware/RejectRedeliveredMessageMiddleware.php:41 Symfony\Component\Messenger\Middleware\RejectRedeliveredMessageMiddleware->handle() at /app/vendor/symfony/messenger/Middleware/AddBusNameStampMiddleware.php:37 Symfony\Component\Messenger\Middleware\AddBusNameStampMiddleware->handle() at /app/vendor/symfony/messenger/Middleware/TraceableMiddleware.php:40 Symfony\Component\Messenger\Middleware\TraceableMiddleware->handle() at /app/vendor/symfony/messenger/MessageBus.php:70 Symfony\Component\Messenger\MessageBus->dispatch() at /app/vendor/symfony/messenger/TraceableMessageBus.php:38 Symfony\Component\Messenger\TraceableMessageBus->dispatch() at /app/vendor/symfony/notifier/Chatter.php:55 ``` Expected behavior: Slashes should be also escaped - `Hello\\World\\\{closure\}` Commits ------- 9a426ff [Notifier] Telegram Bridge add escaping for \
2 parents 93afb42 + 9a426ff commit 4caaa2e
Copy full SHA for 4caaa2e

File tree

Expand file treeCollapse file tree

2 files changed

+3
-4
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+3
-4
lines changed

‎src/Symfony/Component/Notifier/Bridge/Telegram/TelegramTransport.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Notifier/Bridge/Telegram/TelegramTransport.php
+1-2Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
namespace Symfony\Component\Notifier\Bridge\Telegram;
1313

14-
use Symfony\Component\Notifier\Exception\LogicException;
1514
use Symfony\Component\Notifier\Exception\TransportException;
1615
use Symfony\Component\Notifier\Exception\UnsupportedMessageTypeException;
1716
use Symfony\Component\Notifier\Message\ChatMessage;
@@ -74,7 +73,7 @@ protected function doSend(MessageInterface $message): SentMessage
7473

7574
if (!isset($options['parse_mode']) || TelegramOptions::PARSE_MODE_MARKDOWN_V2 === $options['parse_mode']) {
7675
$options['parse_mode'] = TelegramOptions::PARSE_MODE_MARKDOWN_V2;
77-
$options['text'] = preg_replace('/([_*\[\]()~`>#+\-=|{}.!])/', '\\\\$1', $message->getSubject());
76+
$options['text'] = preg_replace('/([_*\[\]()~`>#+\-=|{}.!\\\\])/', '\\\\$1', $message->getSubject());
7877
}
7978

8079
if (isset($options['photo'])) {

‎src/Symfony/Component/Notifier/Bridge/Telegram/Tests/TelegramTransportTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Notifier/Bridge/Telegram/Tests/TelegramTransportTest.php
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ public function testSendWithMarkdownShouldEscapeSpecialCharacters()
316316

317317
$expectedBody = [
318318
'chat_id' => 'testChannel',
319-
'text' => 'I contain special characters \_ \* \[ \] \( \) \~ \` \> \# \+ \- \= \| \{ \} \. \! to send\.',
319+
'text' => 'I contain special characters \_ \* \[ \] \( \) \~ \` \> \# \+ \- \= \| \{ \} \. \! \\\\ to send\.',
320320
'parse_mode' => 'MarkdownV2',
321321
];
322322

@@ -328,7 +328,7 @@ public function testSendWithMarkdownShouldEscapeSpecialCharacters()
328328

329329
$transport = self::createTransport($client, 'testChannel');
330330

331-
$transport->send(new ChatMessage('I contain special characters _ * [ ] ( ) ~ ` > # + - = | { } . ! to send.'));
331+
$transport->send(new ChatMessage('I contain special characters _ * [ ] ( ) ~ ` > # + - = | { } . ! \\ to send.'));
332332
}
333333

334334
public function testSendPhotoWithOptions()

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.