fix(telegram): escape '(' in URLs for MarkdownV2 compatibility#1196
Closed
usvimal wants to merge 1 commit intoNousResearch:mainfrom
Closed
fix(telegram): escape '(' in URLs for MarkdownV2 compatibility#1196usvimal wants to merge 1 commit intoNousResearch:mainfrom
usvimal wants to merge 1 commit intoNousResearch:mainfrom
Conversation
Telegram's MarkdownV2 requires both '(' and ')' to be escaped in URLs.
The previous code only escaped ')', causing parse failures for URLs
containing '(' characters (common in query strings).
Changes:
- Added .replace('(', '\(') to URL escaping
- Updated comment to reflect correct escaping requirements
Fixes MarkdownV2 parse failures that caused messages to fall back to plain text.
97f2e32 to
91ff48f
Compare
Contributor
|
Thanks for the fix attempt here. I'm closing this because current main already matches Telegram's MarkdownV2 spec for inline-link URLs: inside the part, and must be escaped, but is not required. Telegram allows escaping extra ASCII characters, so escaping is permitted, but it isn't needed for correctness, and the updated comment in this PR would actually be less accurate than the current code. I also verified the current Telegram formatter tests pass on main. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Telegram's MarkdownV2 requires both '(' and ')' to be escaped in URLs. The previous code only escaped ')', causing parse failures for URLs containing '(' characters (common in query strings like ).
This resulted in messages falling back to plain text with warnings like:
Solution
Added to the URL escaping logic.
Changes
This ensures URLs with parentheses are properly formatted and messages display with correct Markdown formatting instead of falling back to plain text.