# Поддержка oEmbed onebox для Photobucket

**URL:** https://meta.discourse.org/t/oembed-onebox-support-for-photobucket/340926
**Category:** Support
**Created:** [06.Декабрь.2024 15:16:55 UTC](https://meta.discourse.org/t/oembed-onebox-support-for-photobucket/340926 "2024-12-06T15:16:55Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![wendellverli](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/wendellverli/32/280396_2.png) [@wendellverli](https://meta.discourse.org/u/wendellverli)
#### Post date: [06.Декабрь.2024 15:16:55 UTC](https://meta.discourse.org/t/oembed-onebox-support-for-photobucket/340926/1 "2024-12-06T15:16:55Z")

</div>

У нас есть форум о фотографии, который существует с 2004 года, и многие его участники используют **Photobucket** … однако на старых сообщениях с **Photobucket** изображения не отображаются… ([Metrô de NYC - #3 de fotografosonline - Galeria de Fotos - Fotógrafos Online](https://forum.fotografos.online/t/metro-de-nyc/222752/3))

Есть ли у **Photobucket** поддержка или способ добавить этот домен в список разрешённых для onebox?

 ![Screenshot 2024-12-06 at 9.11.10 AM](https://global.discourse-cdn.com/meta/original/4X/e/1/8/e18ec1c79c8d45c27951087ba5d413bef16bdfba.jpeg)

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [06.Декабрь.2024 16:13:30 UTC](https://meta.discourse.org/t/oembed-onebox-support-for-photobucket/340926/2 "2024-12-06T16:13:30Z")

</div>

Photobucket не хочет, чтобы вы встраивали эти изображения:

 ![](https://global.discourse-cdn.com/meta/original/4X/9/e/4/9e49f1f25c28e7076f7f1639b1dbfd89ecbcaa57.jpeg)

НО ПОДОЖДИТЕ!! Если вы сделаете так:

```plaintext
![](https://hosting.photobucket.com/images/af237/atpaula/tempImageuaxhM1.heic?width=1920&height=1080&fit=bounds
)

```

Вы получите это:

 ![](https://global.discourse-cdn.com/meta/original/4X/9/e/4/9e49f1f25c28e7076f7f1639b1dbfd89ecbcaa57.jpeg)

Это не позволит Discourse загрузить эти изображения, поэтому они останутся у вас, даже если они больше не будут доступны на Photobucket, но при этом они будут отображаться.

Так что вам нужно будет зайти в Rails, найти все сообщения, содержащие `^https://hosting.photobucket.com`, и выполнить gsub, чтобы заменить эти простые URL на `![](url)`.

Подождите. Когда я писал это в первый раз, верхний URL не отображался, но позже, похоже, Discourse всё же удалось его загрузить! (И это работало на моём тестовом сервере тоже!)

Возможно, вам просто нужно переобработать сообщения?

Но на вашем сайте это не работает: [https://forum.fotografos.online/t/esta-imagem-do-photobucket-sera-renderizada/226420](https://forum.fotografos.online/t/esta-imagem-do-photobucket-sera-renderizada/226420)

У вас отключена загрузка на локальный сервер?

---

<div class="post-metadata">

### Author: ![wendellverli](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/wendellverli/32/280396_2.png) [@wendellverli](https://meta.discourse.org/u/wendellverli)
#### Post date: [06.Декабрь.2024 16:26:06 UTC](https://meta.discourse.org/t/oembed-onebox-support-for-photobucket/340926/3 "2024-12-06T16:26:06Z")

</div>

Скачать на локальный компьютер — я бы не знал об этом 😕

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [06.Декабрь.2024 16:27:23 UTC](https://meta.discourse.org/t/oembed-onebox-support-for-photobucket/340926/4 "2024-12-06T16:27:23Z")

</div>

Если вы администратор, вы можете перейти по ссылке:

[https://forum.fotografos.online/admin/site\_settings/category/all\_results?filter=download%20remote%20images](https://forum.fotografos.online/admin/site_settings/category/all_results?filter=download%20remote%20images)

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

---

<div class="post-metadata">

### Author: ![wendellverli](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/wendellverli/32/280396_2.png) [@wendellverli](https://meta.discourse.org/u/wendellverli)
#### Post date: [06.Декабрь.2024 16:43:58 UTC](https://meta.discourse.org/t/oembed-onebox-support-for-photobucket/340926/5 "2024-12-06T16:43:58Z")

</div>

Я только что включил это в админке… и перешел к исходному посту, чтобы пересобрать… но это не сработало…

Хотя на вашем посте **это** сработало.

---

<div class="post-metadata">

### Author: ![wendellverli](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/wendellverli/32/280396_2.png) [@wendellverli](https://meta.discourse.org/u/wendellverli)
#### Post date: [06.Декабрь.2024 16:47:50 UTC](https://meta.discourse.org/t/oembed-onebox-support-for-photobucket/340926/6 "2024-12-06T16:47:50Z")

</div>

В исходном посте я просто добавил URL в сыром виде:

[https://hosting.photobucket.com/images/af237/atpaula/tempImageRLm0iR.heic?width=1920&height=1080&fit=bounds](https://hosting.photobucket.com/images/af237/atpaula/tempImageRLm0iR.heic?width=1920&height=1080&fit=bounds)

(похоже, в Discourse это отключено)

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [06.Декабрь.2024 16:51:47 UTC](https://meta.discourse.org/t/oembed-onebox-support-for-photobucket/340926/7 "2024-12-06T16:51:47Z")

</div>

Это потому, что в оригинальном посте они закодированы как URL: [https://forum.fotografos.online/posts/1579128.json](https://forum.fotografos.online/posts/1579128.json)

например:

```plaintext

1
[URL=https://hosting.photobucket.com/images/af237/atpaula/tempImage7XmEb0.heic?width=1920&height=1080&fit=bounds]
https://hosting.photobucket.com/images/af237/atpaula/tempImage7XmEb0.heic?width=1920&height=1080&fit=bounds
[/URL]

```

Так что вы действительно хотели исправить их при миграции, но всё ещё можно запустить задачу в Rails, которая их исправит.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [06.Декабрь.2024 16:53:42 UTC](https://meta.discourse.org/t/oembed-onebox-support-for-photobucket/340926/8 "2024-12-06T16:53:42Z")

</div>

Я обратился по этому вопросу на [https://ask.discourse.com/](https://ask.discourse.com/), и после одной неудачной попытки получил следующее:

> **Замена тегов \[URL\] в постах Discourse
ИИ**
>
> **pfaffman** :
> 
> У меня есть множество постов, которые выглядят так:
> 
> ```plaintext
> 1
> [URL=https://hosting.photobucket.com/images/af237/atpaula/tempImage7XmEb0.heic?width=1920&height=1080&fit=bounds]
> https://hosting.photobucket.com/images/af237/atpaula/tempImage7XmEb0.heic?width=1920&height=1080&fit=bounds
> [/URL]
> 
> ```
> 
> Мне нужно выполнить команду Rails, чтобы найти все такие посты, а затем использовать gsub для замены [URL…][/URL] на саму ссылку, чтобы она отображалась в виде одного блока.
> 
> **DiscourseHelper** :
> 
> > **Поиск**
> >
> > Поиск по запросу: Как использовать команду Rails или код консоли для поиска всех постов, содержащих определенный формат строки, например теги [URL], а затем заменить эти теги просто на содержащийся URL в Discourse?
> 
> Чтобы найти все вхождения `[URL]...[/URL]` и заменить их только на содержащийся URL в ваших постах Discourse, вы можете сделать это с помощью Rails в консоли Discourse. Вот как это сделать:
> 
> ### Шаги:
> 
> 1. **Доступ к консоли Rails** :  
> Вам нужен SSH-доступ к вашему серверу. Выполните следующую команду для доступа к консоли Rails Discourse:
> 
> 2. **Выполнение команды поиска и замены** :  
> Используйте следующий фрагмент кода для поиска постов, содержащих `[URL]...[/URL]`, и их замены.
> 
> 3. **Тестирование скрипта** :  
> Перед массовой заменой содержимого запустите логику `gsub` для одного поста, чтобы убедиться, что она работает как ожидалось.
> 
> 4. **Выполнение скрипта и мониторинг** :  
> Запустите полный скрипт, отслеживайте вывод и при необходимости исправляйте ошибки.
> 
> **Примечания** :
> 
> - Этот скрипт использует регулярное выражение (`\[URL=.*?\](.*?)\[\/URL\]`) для сопоставления и замены указанного шаблона. Убедитесь, что шаблон точно соответствует вашим требованиям.
> - Используется `PostRevisor`, чтобы изменения были зафиксированы в истории редактирования поста.
> - Обязательно тщательно протестируйте и сделайте резервную копию базы данных перед выполнением любых массовых изменений.
> 
> Для дополнительной помощи ознакомьтесь с соответствующей документацией на [meta.discourse.org](https://meta.discourse.org). Если возникнут проблемы, не стесняйтесь делиться деталями здесь!
> 
> **pfaffman** :
> 
> Нужно заменить их в поле `raw`, а не в `cooked`.
> 
> **DiscourseHelper** :
> 
> Спасибо за уточнение! Поскольку изменения нужно внести в поле `raw` (исходное содержимое поста), мы можем модифицировать скрипт для работы с полем `raw`. Вот как это сделать:
> 
> ### Обновленная команда Rails для поля `raw`
> 
> 1. **Модификация и запуск скрипта** :  
> Ниже приведен обновленный скрипт для обработки и замены тегов `[URL]...[/URL]` в поле `raw` постов:
> 
> 2. **Объяснение изменений** :
> 
> 3. **Тестирование gsub для содержимого raw** :  
> Протестируйте подстановку регулярного выражения для одного поста, чтобы убедиться, что она работает корректно:
> 
> 4. **Выполнение массового обновления** :  
> Как только вы подтвердите, что это работает как задумано, вы можете запустить скрипт для обработки всех постов, содержащих теги `[URL]`.
> 
> 5. **Мониторинг и проверка** :  
> Отслеживайте вывод скрипта. Для каждого обновленного поста его `id` будет выведен в консоль. После завершения проверьте несколько постов на сайте, чтобы убедиться, что изменения отображаются корректно.
> 
> * * *
> 
> **Напоминание о резервном копировании** :  
> Перед запуском скрипта убедитесь, что у вас есть полная резервная копия базы данных, особенно при работе с массовыми обновлениями.
> 
> Если у вас есть дополнительные вопросы или возникнут проблемы, не стесняйтесь спрашивать!

И мне нравится, что здесь используется `PostRevisor`, так что если что-то пойдет не так, у вас будет запись об редактировании.

---

<div class="post-metadata">

### Author: ![wendellverli](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/wendellverli/32/280396_2.png) [@wendellverli](https://meta.discourse.org/u/wendellverli)
#### Post date: [06.Декабрь.2024 16:56:19 UTC](https://meta.discourse.org/t/oembed-onebox-support-for-photobucket/340926/9 "2024-12-06T16:56:19Z")

</div>

Аааах… Я посмотрю на это!!! Большое спасибо!!!

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [06.Декабрь.2024 16:57:56 UTC](https://meta.discourse.org/t/oembed-onebox-support-for-photobucket/340926/10 "2024-12-06T16:57:56Z")

</div>

Вам определенно стоит протестировать это на нескольких постах, прежде чем запускать в работу — а также посмотреть, сколько постов будет исправлено и кто получит уведомления обо всех них (есть что-то вроде bypass\_bump или аналогичное, что пропускает уведомления, кажется).
