mirror of
https://github.com/discourse/discourse.git
synced 2026-08-12 05:37:26 +08:00
Two issues with Twitter/X oneboxes: 1. Adding `x.com` or `twitter.com` to `blocked_onebox_domains` had no effect. In `FinalDestination#resolve`, domains in the `ignore_redirects` list (which includes x.com, twitter.com, youtube.com, etc.) trigger an early return with `:resolved` status before `blocked_domain?` is ever checked. This made it impossible to block oneboxes for any of these domains. The fix adds the blocked domain check before the `ignore_redirects` shortcut in `resolve()`. 2. When X/Twitter returns no useful Open Graph metadata (which is the current real-world behavior without API credentials), the onebox rendered an empty shell — an `<aside>` with blank title, empty tweet div, and no timestamp. `TwitterStatusOnebox` had no field validation unlike other engines (e.g. `AmazonOnebox`). The fix adds a `verified_data` method that requires `title` and `tweet` to be present, returning empty HTML when they're missing. This causes Discourse to fall back to a plain link instead of rendering a broken onebox. https://meta.discourse.org/t/397516 |
||
|---|---|---|
| .. | ||
| engine | ||
| mixins | ||
| templates | ||
| domain_checker.rb | ||
| engine.rb | ||
| file_type_finder.rb | ||
| helpers.rb | ||
| json_ld.rb | ||
| layout.rb | ||
| layout_support.rb | ||
| matcher.rb | ||
| movie.rb | ||
| normalizer.rb | ||
| oembed.rb | ||
| open_graph.rb | ||
| preview.rb | ||
| sanitize_config.rb | ||
| status_check.rb | ||
| template_support.rb | ||
| view.rb | ||