Skip to content

Conversation

@google-labs-jules
Copy link
Contributor

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

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.
@google-labs-jules
Copy link
Contributor Author

👋 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 @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@julwrites julwrites marked this pull request as ready for review January 5, 2026 07:07
@julwrites julwrites merged commit 602f434 into staging Jan 5, 2026
1 check passed
@julwrites julwrites deleted the migrate-client-html-parsing-7338505798009705932 branch January 5, 2026 07:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants