Отключить загрузку медиа в onebox

Здравствуйте! Я заметил, что есть возможность отключить загрузку аудио:

<audio controls #{@options[:disable_media_download_controls] ? 'controlslist="nodownload"' : ''}>

в файле onebox/lib/onebox/engine/audio_onebox.rb at main · discourse/onebox · GitHub

и

disable_media_download_controls: SiteSetting.disable_onebox_media_download_controls,

в файле discourse/lib/oneboxer.rb at 03998e0a299b7ae89678e2854e3abf84bd6ef132 · discourse/discourse · GitHub

Поэтому я попробовал настроить это следующим образом:

./launcher enter app
rails c
SiteSetting.disable_onebox_media_download_controls=true

а также здесь:

vi containers/app.yml
в разделе params:
disable_media_download_controls: true
disable_onebox_media_download_controls: true
в разделе env:
DISCOURSE_DISABLE_ONEBOX_MEDIA_DOWNLOAD_CONTROLS: true

но аудио всё равно можно загрузить через опцию «скачать» в onebox. Кто-нибудь может помочь? Большое спасибо.

Не знаю, но как тогда прослушивать аудио, если скачивание отключено?

Если нажать на три точки в конце, появится возможность загрузки: см. скриншот из этого поста:

Мне нужно скрыть или отключить явную опцию загрузки, при этом пользователи должны оставаться возможность прослушивать аудио.

Я всё ещё не понимаю. Discourse не поддерживает потоковую передачу, поэтому аудиофайл должен быть скачан для прослушивания. Или я полностью ошибаюсь?

Или вы допускаете скачивание, когда пользователь не знает, что происходит скачивание, потому что устройство не спрашивает, куда сохранить файл?

Тем не менее, это аудио всё равно можно сохранить через запись :wink:

Извините — я не помогаю, но мне бы хотелось понять, почему, что, где и вообще всё :rofl:

Моя самая слабая сторона в том, что попытки отключить такие функции редко бывают успешными или вообще нужны. Но ладно, если это возможно.

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

Подскажите, пожалуйста, как это реализовать на уровне настроек или кода. Спасибо.

Я этим не пользовался, но может что-то из этой темы вам поможет?

Что касается самого веб-сайта (на базе Discourse), важно избежать любых будущих проблем, связанных с интеллектуальной собственностью. Даже если автор использует TC или какую-либо тему, любое нарушение прав на интеллектуальную собственность может сделать веб-сайт ответственным за возможный ущерб и т. д. Даже если веб-сайт, казалось бы, не имеет к этому никакого отношения, поскольку он служит каналом обмена, некоторые юристы могут думать иначе.

Поэтому отключение явной опции загрузки должно быть весьма полезным, так как вы не увидите такой опции на большинстве крупных сайтов, таких как YouTube. Не могли бы вы помочь с кодом или настройками для реализации этого?

После этого вам нужно будет пересобрать пост или отредактировать его с локальным аудио. Вы пробовали это сделать?

Как переопубликовать или отредактировать пост?

Нажмите кнопку в посте, затем на кнопку :wrench: и, наконец, на «Пересобрать HTML»

«Восстановление HTML» завершено, но опция «Скачать» всё ещё доступна.

Давайте проверим это:

![614107_11861866-lq|audio](upload://jq0kR3R4YPrn1kM48EL33oVgjT8.mp3)

https://d11a6trkgmumsb.cloudfront.net/original/3X/8/8/8819dba2a51ca9f987e93d64dfe823161141d0f6.mp3

Второй вариант работает (нет опции загрузки), но первый всё ещё имеет.

А, я понял. Настройки сайта влияют только на onebox, поэтому это касается только второго типа аудио, а не первого, так как он технически не является onebox.

Что еще нужно сделать, чтобы первый случай заработал?

Если вы хотите углубиться в код, откуда он берётся:

Вам каким-то образом нужно получить настройку сайта в этом контексте и обработать её.

Как временное решение в коде я попробовал:

./launcher enter app
vi app/assets/javascripts/pretty-text/addon/engines/discourse-markdown-it.js

и добавить

controlsList="nodownload"

к

<audio preload="metadata" controls>

а затем

./launcher restart app

но опция «Скачать» всё ещё доступна. Мне нужно пересобрать приложение?

Это не сработает, так как JS компилируется нашим довольно сложным конвейером ресурсов.

Если вам нужно быстрое и не совсем элегантное решение, лучший вариант — компонент темы, который слушает наш обратный вызов decoratedCooked и изменяет элемент audio. Подробнее об этом вы можете узнать в Руководстве разработчика по темам Discourse