Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[3.2][3.3] Official Extensions: phpBB Media Embed PlugIn

Поддержка расширений, созданных авторами не из нашего сообщества, а также любые вопросы, связанные с расширениями для phpBB, кроме относящихся к форуму Для авторов.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.2.x | FAQ | Внимание! Прежде чем создать тему - прочти! | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Gubkin
phpBB 2.0.16
Сообщения: 1085
Стаж: 8 лет 11 месяцев
Благодарил (а): 225 раз
Поблагодарили: 107 раз

[3.2][3.3] Official Extensions: phpBB Media Embed PlugIn

Сообщение Gubkin »

Страница https://www.phpbb.com/customise/db/exte ... ediaembed/
гитхаб https://github.com/phpbb-extensions/mediaembed/

перевод [Русский перевод расширения] phpBB Media Embed PlugIn

Странно, ставил версию 1.0.1 ещё в августе Re: [3.1/3.2] videobbredy - адаптивный bb код видео
теперь эта же самая версия уже не работат

пишет
Выбранное расширение не может быть включено, проверьте требования к установке

смотрю там правка была какая-то недавно
может в этом причина
у меня 3.2.1 и php 7.0
какие требования не выполнены ?
ЗЫ. Как не релиз оф.расширения, так сразу проблемы :)

FAQ

Вопрос: как добавить собственный сайт?
Ответ: на примере одноклассников
Устаревшее: 

Код: Выделить всё

OPEN
\ext\phpbb\mediaembed\event\main_listener.php

FIND
		/** @var \s9e\TextFormatter\Configurator $configurator */
		$configurator = $event['configurator'];

AFTER, ADD
		$configurator->MediaEmbed->add(
			'ok',
			[
				'host'    => 'ok.ru',
				'extract' => [
					'!ok.ru/video/(?<id>\\d+)!',
					'!ok.ru/live/(?<id>\\d+)!',
				],
				'iframe'  => ['src' => 'https://ok.ru/videoembed/{@id}']
			]
		);
Очистить кэш конференции. Пользоваться.
Начиная с версии 1.1.0:
Определения дополнительных сайтов расположены в файлах YAML с расширением yml в директории ext/phpbb/mediaembed/collection/sites/. Создавать собственные определения сайтов можно по примеру тех, что находятся в данной директории (скопировать, переименовать, отредактировать в соответствии с инструкциями ниже).
Структура файла на примере YouTube:

Код: Выделить всё

name: YouTube
host: youtube.com
example: https://youtube.com/watch?v=123456789
extract: "!youtube\\.com/watch\\?v=(?'id'[-0-9A-Z_a-z]+)!"
iframe:
    width: 560
    height: 315
    src: http://www.youtube.com/embed/{@id}
  • Создайте файл с расширением yml и именем латинскими буквами в нижнем регистре, например youtube.yml
  • Заполните необходимые поля:
    • name: имя сайта, отображаемое в администраторском разделе в разделе "Управление сайтами" в закладке "Сообщения".
    • host: основной домен сайта.
    • example: необязательное но полезное поле - пример ссылки на встраиваемый контент сайта.
    • extract: регулярное выражение для экстракции идентификатора встраиваемого контента из ссылки.
    • iframe: параметры элемента iframe, в котором будет размещен встраиваемый контент сайта:
      • src: исходная ссылка, используемая сайтом для встраивания контента в другие ресурсы. Обратите внимание, что идентификатор {@id} должен находиться в правильном месте ссылки.
      • ширина и высота элемента - необязательные поля.
Полезные инструменты для проверки правильности синтаксиса YAML:
YAML Validator
The YAML Format
Complete idiot's intro to yaml

Как использовать новый сайт:
  • скопируйте новый файл .yml в папку ext/phpbb/mediaembed/collection/sites/
  • имя сайта должно отобразиться в администраторском разделе в разделе "Управление сайтами" в закладке "Сообщения".
  • поставьте "галочку" напротив имени нового сайта и сохраните изменения.
Если файл .yml содержит ошибки синтаксиса, вы получите ошибку в работе конференции. Если регулярное выражение неверное и идентификатор контента не определяется, вставка не произойдет.
Ещё один тупой вопрос и будете забанены. К гуру надо приходить подготовленными, а не как Вы. Вчера создали форум с парой постов, а сегодня уже 20 вопросов )))
Аватара пользователя
ReXtor
phpBB 2.0.0
Сообщения: 232
Стаж: 1 год 9 месяцев
Откуда: Сибирь
Благодарил (а): 66 раз
Поблагодарили: 75 раз

Re: [3.2][3.3] Official Extensions: phpBB Media Embed PlugIn

Сообщение ReXtor »

Nekstati писал(а): 07.02.2024 19:28 с модификатором u
Кажется я понял о чем речь - это про флаг u, а не модификатор.
Я регулярками нечасто занимаюсь и последний раз с ними имел дело год назад, когда для яндекс.музыки лепил поддержку. Модификаторы и флаги - разные штуки :)

extract: "!prostopleer\\.com\\/track\\/(?'tid'\\d+)\\/(?'tname'[\\w-]+)!u"
Да, работает. Благодарю за подсказку, а то мало ли какие извращения с кириллицей (и не только) могут попасться...
rxu писал(а): 07.02.2024 19:31 Внутри квадратных скобок дефис используется для обозначения диапазонов.
Внутри квадратных скобок мы делаем перечисление (возможных вариантов этой части выражения - символьные классы, набор символов).
wiki писал(а):Набор символов в квадратных скобках [ ] именуется символьным классом и позволяет указать интерпретатору регулярных выражений, что на данном месте в строке может стоять один из перечисленных символов.
У нас стоит [\\w-]+ (такие-то символы ИЛИ дефис, повторенные столько-то раз) и мы не можем тут дефис всунуть еще в одни квадратные скобки (я проверял:)

Если дефис стоит последним - то все в порядке. Но если сильно хочется заэкранировать его, то тогда вот так [\\w\\-]+

[\[\]] - вот этим мы лишь добавим к нашему набору символов еще и квадратные скобки, а не экранирование. Только применительно к данному расширению нужно делать [\\[\\]] :)
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]
Аватара пользователя
Perfecthus
phpBB 2.0.11
Сообщения: 809
Стаж: 13 лет 7 месяцев
Откуда: Оттуда
Благодарил (а): 51 раз
Поблагодарили: 86 раз

Re: [3.2][3.3] Official Extensions: phpBB Media Embed PlugIn

Сообщение Perfecthus »

Работает с кириллицей и с латиницей такая регулярка /^[\- \p{Ll}\p{Lu}\p{N}]{3,70}$/u в расширении RH Topic Tags, возможно поможет или адаптируете. До этого перепробовал кучу всяких разных - работает только данная.
Аватара пользователя
Perfecthus
phpBB 2.0.11
Сообщения: 809
Стаж: 13 лет 7 месяцев
Откуда: Оттуда
Благодарил (а): 51 раз
Поблагодарили: 86 раз

Re: [3.2][3.3] Official Extensions: phpBB Media Embed PlugIn

Сообщение Perfecthus »

{3,70} ну этот момент точно не нужен в данном случае :)
Остальное дорабатывайте.
Аватара пользователя
ReXtor
phpBB 2.0.0
Сообщения: 232
Стаж: 1 год 9 месяцев
Откуда: Сибирь
Благодарил (а): 66 раз
Поблагодарили: 75 раз

Re: [3.2][3.3] Official Extensions: phpBB Media Embed PlugIn

Сообщение ReXtor »

А кто-нибудь пытался сделать плагин для поддержки встраивания чего-нибудь с использованием scrape?

Для образца у нас тут есть moddb.yml:

Код: Выделить всё

name: Mod DB
host: moddb.com
example: https://www.moddb.com/games/crimson-spires/videos/crimson-spires-story-trailer
scrape:
    - match: "!moddb\\.com/(?:mods|games)/[^/]+/videos!"
    - extract: "!moddb.com/media/iframe/(?'id'[0-9]+)!"
iframe:
    src: https://www.moddb.com/media/iframe/{@id}
Как мы помним, host: нам обеспечивает подключение этого плагина при обработке всех ссылок на moddb.com. Далее в дело вступает scrape: в котором через match: обеспечивается обработка уже конкретных ссылок по регулярке. В данном случае это moddb.com/mods/что-то-там/videos и moddb.com/games/что-то-там/videos. А, например, moddb.com/photos/что-то-там уже будут проигнорированы. После этого через extract: происходит извлечение нужной прямой ссылки и ее подстановка далее в iframe:. И это все вполне работает. Похожим образом обстоит дело и со встраиванием видео из VK (это реализовано в самом textformatter, но суть там такая же).

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

Я попытался реализовать поддержку для встраивания видео с dzen.ru. Там тоже необходим поиск ссылки на айфрейм в теле исходной страницы (ссылку на которую мы размещаем в своем сообщении):

Код: Выделить всё

name: "Dzen"
host: dzen.ru
example: https://dzen.ru/video/watch/639af70a4cb0c65b51c4b724
scrape:
    - match: "!dzen\\.ru/video/watch/(?'id'[\\w]+)!"
    - extract: "!dzen.ru/embed/(?'id'[\\w]+)!"
iframe:
    width: "100%"
    height: "270"
    src: //dzen.ru/embed/{@id}
Но это не работает. Пытался также варианты с экранированием (слешей в первой регулярке и точки и слешей во второй) - тоже безрезультатно.

Не могу сообразить в чем проблема - тут в коде или же это сам dzen как-то препятствует?

В данном случае нам в коде страницы через scrape: необходимо отыскать dzen.ru/embed/vj_7LeHg1QEA (встречается два раза, в meta и в script/json), вычленить из строки айдишник vj_7LeHg1QEA и подставить его далее в наш iframe.
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16452
Стаж: 18 лет 1 месяц
Откуда: Красноярск
Благодарил (а): 531 раз
Поблагодарили: 1772 раза

Re: [3.2][3.3] Official Extensions: phpBB Media Embed PlugIn

Сообщение rxu »

ReXtor писал(а): 08.02.2024 23:27 или же это сам dzen как-то препятствует
Скорее Яндекс. Попробуйте включить в настройках расширения кэширование контента, затем попытайтесь "отскрейпить" ссылку из примера, потом в папке штатного кэша конференции найдите архив с именем http.что-то-там и внутри посмотрите, что именно скачано по ссылке. Никакого вменяемого контента там нет, скорее всего, URL для "скрейпинга" должен быть какой-то другой, или надо добавлять хитрые заголовки.
При этом скачанный контент для moddb содержит все, что нужно.
Изображение
Аватара пользователя
ReXtor
phpBB 2.0.0
Сообщения: 232
Стаж: 1 год 9 месяцев
Откуда: Сибирь
Благодарил (а): 66 раз
Поблагодарили: 75 раз

Re: [3.2][3.3] Official Extensions: phpBB Media Embed PlugIn

Сообщение ReXtor »

rxu писал(а): 09.02.2024 20:45 и внутри посмотрите, что именно скачано по ссылке
Да, там не то что предполагалось.
rxu писал(а): 09.02.2024 20:45 или надо добавлять хитрые заголовки
Подумаю над этим. Судя по примерам зашитым в textformatter - это возможно.

Вот же вредный Dzen. И зачем так все усложнять. Ведь возможность встраивания они вполне предоставляют...
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]
Аватара пользователя
Michel
phpBB 2.0.1
Сообщения: 257
Стаж: 12 лет 5 месяцев
Откуда: Липецк
Благодарил (а): 74 раза
Поблагодарили: 28 раз

Re: [3.2][3.3] Official Extensions: phpBB Media Embed PlugIn

Сообщение Michel »

Ребят с Рутубом не дружит, пишет не верная ссылка. Не подскажите где поправить?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12475
Стаж: 12 лет 10 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2493 раза

Re: [3.2][3.3] Official Extensions: phpBB Media Embed PlugIn

Сообщение Татьяна5 »

rutube.zip
Загружать в \ext\phpbb\mediaembed\collection\sites\
И кеш-кеш-кеш. А лучше отключить и включить расширение
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Michel
phpBB 2.0.1
Сообщения: 257
Стаж: 12 лет 5 месяцев
Откуда: Липецк
Благодарил (а): 74 раза
Поблагодарили: 28 раз

Re: [3.2][3.3] Official Extensions: phpBB Media Embed PlugIn

Сообщение Michel »

Татьяна5 писал(а): 09.05.2024 19:24 Загружать в \ext\phpbb\mediaembed\collection\sites\
И кеш-кеш-кеш. А лучше отключить и включить расширение
Всё отлично с простыми видео, а вот с трансляциями увы...
Там ссылки отличаются :cry:
https://rutube.ru/live/video/*****/

Отправлено спустя 21 минуту 12 секунд:
Michel писал(а): 11.05.2024 14:34 Там ссылки отличаются
В общем создал аналогичный файл с названием rutubelive со следующим содержимым:

Код: Выделить всё

name: "RutubeLive"
host: rutube.ru
homepage: https://rutube.ru/
example: https://rutube.ru/live/video/0771e73d1d10eee9c43ce31decc1dfce/
extract:
    - "!//rutube.ru/(?:live/video/private/|play/embed/|tracks/.*?v=|live/video/)(?'id'\\w+)(/\\?p=)?(?'p'\\w*)!"
choose:
    when:
        test: '@p'
        iframe:
            src: //rutube.ru/play/embed/{@id}/?p={@p}
    otherwise:
        iframe:
            src: //rutube.ru/play/embed/{@id}
oembed:
    endpoint: https://rutube.ru/api/oembed/
    scheme: https://rutube.ru/live/video/{@id}/
Включил сайт в настройках и вуаля всё работает ;)

Вернуться в «Поддержка расширений для phpBB»