Refactor passage HTML parsing for Telegram compatibility#179
Refactor passage HTML parsing for Telegram compatibility#179
Conversation
Updated `ScriptureBot` to perform server-side HTML preprocessing for Telegram messages. - Replaced `FilterTree` logic in `pkg/app/passage.go` with a recursive `ParseNodesForPassage` function that walks the entire HTML tree. - Implemented robust HTML tag conversion: - `<h1>`-`<h6>` -> `<b>` (bold with newlines) - `<ul>`/`<li>` -> Bullet points (`•`) - `div` -> Recurse children (stripping tag) - `b`/`strong` -> `<b>` - `i`/`em` -> `<i>` - `sup` -> Unicode superscripts (via `platform.TelegramSuperscript`) - Added explicit HTML escaping for all text content to prevent injection or broken tags. - Configured `env.Res.ParseMode = "HTML"` for `GetBiblePassage` responses. - Updated unit tests in `pkg/app/passage_test.go` to verify new HTML output formats and correct handling of lists, headers, and superscripts.
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
Implemented server-side HTML preprocessing to support the new Bible API response format for Telegram. This change ensures that complex HTML (lists, divs, headers) is converted into Telegram-supported HTML tags or plain text formatting (unicode superscripts, bullet points), and that all text content is properly escaped. This addresses the requirement to handle structure-rich API responses without breaking Telegram's limited HTML parser.
PR created automatically by Jules for task 7338505798009705932 started by @julwrites