Обработка битых изображений onebox с некорректно настроенных сайтов

Я замечаю довольно много неправильно настроенных сайтов, которые, похоже, используют различные методы для блокировки «горячих» ссылок на изображения, но при этом возвращают ссылки на такие изображения в данных для встраивания, например:

Проверив через http://debug.iframely.com/, я действительно считаю, что это не проблема самого Discourse, но выглядит это плохо.

Одна из идей: создание onebox могло бы загружать изображение при обработке поста и либо сохранять миниатюру для последующего отображения, либо, если загрузка не удалась, вести себя так, будто изображение не было указано.

Сохранение копии изображения было бы достаточно надежным и устойчивым к будущим изменениям решением. Я считаю, что это должно подпадать под понятие добросовестного использования в целях авторского права (оригинальный сайт не пострадает от повторного использования миниатюры размером 130x90, полученной из метаданных, хотя я не юрист).

Если это невозможно, я попробовал создать компонент, который перехватывал бы событие ошибки при загрузке изображений и добавлял класс для скрытия их или их обертки через display:none. У меня пока не получилось, так как я застрял в decorateCookedElement()… Не уверен, что ищу в правильном месте.

Так что, только я ли страдаю от битых изображений в onebox-ах, или у кого-то ещё есть обходное решение?

Разве мы уже не делаем этого? Проверьте свой пост ещё раз!

Очевидно, что это происходит не в момент обработки, поскольку на этот критический путь нельзя добавлять веб-запросы, но мы ставим это в очередь и загружаем изображение однобокса в фоновом режиме.

Мы ждём «период редактирования с прощением ошибок» (по умолчанию 300 секунд), чтобы загрузить его, если включена опция «загружать удалённые изображения локально» (по умолчанию true).

4 лайка

Отлично!

Я искал в настройках одного бокса, поэтому не заметил опцию «загружать удалённые изображения локально», которая была отключена.

Я включил её и пересобрал HTML для некоторых постов. Надеюсь, это поможет навести порядок.

Спасибо за подсказку :heart:

2 лайка

Спасибо!

Я как раз спрашивал об этом в другой теме.

1 лайк

Важно быть осторожным и обдумывать последствия при изменении настроек по умолчанию. Мы поставляем продукт с оптимальными настройками «из коробки», и отклонение от них может привести к непредвиденным последствиям.

1 лайк

Это справедливое замечание. Обычно я придерживаюсь настроек по умолчанию, но в данном случае, похоже, эту настройку изменил предыдущий администратор — не знаю, зачем.

Надеюсь, теперь эта настройка обеспечит сохранение изображений в onebox для Instagram.

Ещё раз спасибо и огромная любовь к Discourse :heart:

2 лайка

Да, теперь OneBox гораздо лучше реагирует, когда не может создать сниппет: он старается максимально понятно объяснить причину.

1 лайк