Сбой Onebox с ошибкой 429 всё равно должен создавать валидные теги <img>

На моём форуме Discourse пользователям рекомендуется по возможности использовать внешние хостинги изображений. Наиболее распространён Imgur, который со временем начинает ограничивать частоту запросов к серверу Discourse, возвращая ошибку 429. Хотя это неразрешимая проблема со стороны Imgur, сам Discourse также не обрабатывает её оптимально. В настоящее время, когда Imgur возвращает ошибку 429, Discourse интерпретирует её как некорректную ссылку на изображение и просто отображает URL изображения, оборачивая его в теги <a>. Однако ничто не мешает отдельным пользователям просматривать эти изображения прямо в интерфейсе Discourse, поскольку их браузер и IP-адрес отличаются. Discourse должен по-прежнему генерировать валидный HTML для отображения изображения. Например:

https://i.imgur.com/eHltaVt.jpeg
Этот URL получает ограничение частоты запросов на моём сервере, и Discourse просто создаёт ссылку:
<a href="https://i.imgur.com/eHltaVt.jpeg" target="_blank" rel="noopener noreferrer" tabindex="-1">https://i.imgur.com/eHltaVt.jpeg</a>

Однако следующий HTML отлично работает для отображения изображения в браузере конечного пользователя как в предпросмотре поста, так и в готовом посте:
<img src="https://i.imgur.com/eHltaVt.jpeg">
Именно такой HTML должен генерировать Discourse, даже если при обращении сервера к URL возвращается ошибка 429. Оставлять «голый» URL следует только в случае получения ошибки 404.

3 лайка