Посмотрите видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
и желательно под 16 версию 😀😉Аналогично, видимо структуру url поменяли в ютубе. Сможет кто пофиксить это?
https://cloud.mail.ru/public/4WkU/iDD5MrPh1Кто готов пожертвовать данный мод, для поглядеть внутрь (если там код конечно открыт). Может что и удастся изменить что бы работало как нужно.
function trailerSelectBody ($query_text, $settings) {
/******* Содержимое функции*******/
}
function trailerSelectBody ($query_text, $settings) {
if (!$query_text || !$settings['youtube_key']) return false;
// меняю кодировку, если не utf-8
$query_text = iconv_dle ($query_text);
// заменяю пробелы на %20
$query_text = preg_replace('/\s/', '%20', $query_text);
$pars_url = 'http://www.youtube.com/results?search_query=' . $query_text;
$content = parsCurl($pars_url, $settings['proxy'], $settings['proxy_auth']);
preg_match('/var\s*ytInitialData\s*=\s*(.+?)\s*;<\/script>/us', $content, $link_treiler_mass_1);
$decode = json_decode($link_treiler_mass_1[1],true);
unset($decode['responseContext']);
unset($decode['contents']['twoColumnSearchResultsRenderer']['primaryContents']['sectionListRenderer']['contents'][0]['itemSectionRenderer']['contents'][0]);
$link_treiler_mass = $decode['contents']['twoColumnSearchResultsRenderer']['primaryContents']['sectionListRenderer']['contents'][0]['itemSectionRenderer']['contents'];
foreach($link_treiler_mass[1] as $k=>$z){
$trailer_mass[] = $z['videoRenderer']['videoId'];
}
// удаляю лишний хвост, если вернулся плейлист
$trailer_mass[0] = preg_replace('#(&list=.*)#', '', $trailer_mass[0]);
return $trailer_mass[0];
}
Кто то тестил уже?Можно попробовать так.
Найти файл engine/inc/trailer_update/functions.php (Сделать его бэкап на всякие пожарные)
В файле найти функцию
и заменить на данную функциюКод:function trailerSelectBody ($query_text, $settings) { /******* Содержимое функции*******/ }
Код:function trailerSelectBody ($query_text, $settings) { if (!$query_text || !$settings['youtube_key']) return false; // меняю кодировку, если не utf-8 $query_text = iconv_dle ($query_text); // заменяю пробелы на %20 $query_text = preg_replace('/\s/', '%20', $query_text); $pars_url = 'http://www.youtube.com/results?search_query=' . $query_text; $content = parsCurl($pars_url, $settings['proxy'], $settings['proxy_auth']); preg_match('/var\s*ytInitialData\s*=\s*(.+?)\s*;<\/script>/us', $content, $link_treiler_mass_1); $decode = json_decode($link_treiler_mass_1[1],true); unset($decode['responseContext']); unset($decode['contents']['twoColumnSearchResultsRenderer']['primaryContents']['sectionListRenderer']['contents'][0]['itemSectionRenderer']['contents'][0]); $link_treiler_mass = $decode['contents']['twoColumnSearchResultsRenderer']['primaryContents']['sectionListRenderer']['contents'][0]['itemSectionRenderer']['contents']; foreach($link_treiler_mass[1] as $k=>$z){ $trailer_mass[] = $z['videoRenderer']['videoId']; } // удаляю лишний хвост, если вернулся плейлист $trailer_mass[0] = preg_replace('#(&list=.*)#', '', $trailer_mass[0]); return $trailer_mass[0]; }
Сохранить, почистить все кэши и пробовать.
По идее все должно сработать.
p/s Функция исправлена под код что выше, может версия та же о которого говорилось а возможно у кого другое, так что обращайте внимание на данный момент.
Тестирую. Работает правильно и лучше но есть нюанс. половину добавляет коректно вторую половине в ошибку падает (Кто то тестил уже?
Ну если при старом виде функции в ошибку не падал, и брал точно ссылки. То можно вернуть старую версию функции с одним маленьким изменением.Тестирую. Работает правильно и лучше но есть нюанс. половину добавляет коректно вторую половине в ошибку падает (
function trailerSelectBody ($query_text, $settings) {
if (!$query_text || !$settings['youtube_key']) return false;
// меняю кодировку, если не utf-8
$query_text = iconv_dle ($query_text);
// заменяю пробелы на %20
$query_text = preg_replace('/\s/', '%20', $query_text);
$pars_url = 'http://www.youtube.com/results?search_query=' . $query_text;
$content = parsCurl($pars_url, $settings['proxy'], $settings['proxy_auth']);
preg_match_all ('/<a\shref="\/watch\?v=(.+?)"\sclass/', $content, $link_treiler_mass);
foreach($link_treiler_mass[1] as $k=>$z){
$trailer_mass[] = $z;
}
// удаляю лишний хвост, если вернулся плейлист
$trailer_mass[0] = preg_replace('#(&list=.*|u0026.*|&.*|&pp=.*)#', '', $trailer_mass[0]);
return $trailer_mass[0];
}
Проверил либо я что-то делаю не правильно либо я не понимаю в чем проблема. Если с твоим кодом то есть новости которые перезаписываются коректно и без проблеммно. а потом доходит до новостей на которых сбоит. Попробовал вернуть файлик который оригинальный с новостью которая глючит перезаписывает отличьно...Ну если при старом виде функции в ошибку не падал, и брал точно ссылки. То можно вернуть старую версию функции с одним маленьким изменением.
Код:function trailerSelectBody ($query_text, $settings) { if (!$query_text || !$settings['youtube_key']) return false; // меняю кодировку, если не utf-8 $query_text = iconv_dle ($query_text); // заменяю пробелы на %20 $query_text = preg_replace('/\s/', '%20', $query_text); $pars_url = 'http://www.youtube.com/results?search_query=' . $query_text; $content = parsCurl($pars_url, $settings['proxy'], $settings['proxy_auth']); preg_match_all ('/<a\shref="\/watch\?v=(.+?)"\sclass/', $content, $link_treiler_mass); foreach($link_treiler_mass[1] as $k=>$z){ $trailer_mass[] = $z; } // удаляю лишний хвост, если вернулся плейлист $trailer_mass[0] = preg_replace('#(&list=.*|u0026.*|&.*|&pp=.*)#', '', $trailer_mass[0]); return $trailer_mass[0]; }
С данной правкой так же глючит ?Проверил либо я что-то делаю не правильно либо я не понимаю в чем проблема. Если с твоим кодом то есть новости которые перезаписываются коректно и без проблеммно. а потом доходит до новостей на которых сбоит. Попробовал вернуть файлик который оригинальный с новостью которая глючит перезаписывает отличьно...
Да с оригинальным все окей только некоректная вставкаС данной правкой так же глючит ?
Платно - Массовое добавление или замена трейлеров youtube в доп.полях
Вчера при проверке, один и тот же запрос 1 раз срабатывал 2-3 раза выдавал пустоту. Поэтому возможно сбои идут из-за этого.
А так конечно бы глянуть на пример новостей в которых происходит сбой, возможно где-то имеется какое-то различие.
p/s На оригинальном файле все новости проходит нормально без сбоев? Только не обрезает то что идет после ид ютуба ?
Если нужно могу дать доступ что бы проверить на прямую.С данной правкой так же глючит ?
Платно - Массовое добавление или замена трейлеров youtube в доп.полях
Вчера при проверке, один и тот же запрос 1 раз срабатывал 2-3 раза выдавал пустоту. Поэтому возможно сбои идут из-за этого.
А так конечно бы глянуть на пример новостей в которых происходит сбой, возможно где-то имеется какое-то различие.
p/s На оригинальном файле все новости проходит нормально без сбоев? Только не обрезает то что идет после ид ютуба ?
Смогу лишь ближе к вечеру тогда.Если нужно могу дать доступ что бы проверить на прямую.
Замените функцию в engine/inc/trailer_update/functions.phpВот сам модуль
function trailerSelectBody ($query_text, $settings) {
if (!$query_text || !$settings['youtube_key']) return false;
// меняю кодировку, если не utf-8
$query_text = iconv_dle ($query_text);
// заменяю пробелы на %20
$query_text = preg_replace('/\s/', '%20', $query_text);
$pars_url = 'http://www.youtube.com/results?search_query=' . $query_text;
$content = parsCurl($pars_url, $settings['proxy'], $settings['proxy_auth']);
preg_match_all ('#"\/watch\?v=(.+?)"#', $content, $link_treiler_mass);
foreach($link_treiler_mass[1] as $k=>$z){
$trailer_mass[] = $z;
}
// удаляю лишний хвост, если вернулся плейлист
$trailer_mass[0] = preg_replace('#(&list=.*)#', '', $trailer_mass[0]);
return $trailer_mass[0];
}
function trailerSelectBody ($query_text, $settings) {
if (!$query_text || !$settings['youtube_key']) return false;
// меняю кодировку, если не utf-8
$query_text = iconv_dle ($query_text);
// заменяю пробелы на %20
$query_text = preg_replace('/\s/', '%20', $query_text);
$pars_url = 'http://www.youtube.com/results?search_query=' . $query_text;
$content = parsCurl($pars_url, $settings['proxy'], $settings['proxy_auth']);
preg_match_all ('#"\/watch\?v=(.+?)"#', $content, $link_treiler_mass);
foreach($link_treiler_mass[1] as $k=>$z){
$trailer_mass[] = $z;
}
// удаляю лишний хвост, если вернулся плейлист
$trailer_mass[0] = preg_replace('#(&list=.*|\\\u0026.*)#', '', $trailer_mass[0]);
return $trailer_mass[0];
}
Замените функцию в engine/inc/trailer_update/functions.php
Эту
Код:function trailerSelectBody ($query_text, $settings) { if (!$query_text || !$settings['youtube_key']) return false; // меняю кодировку, если не utf-8 $query_text = iconv_dle ($query_text); // заменяю пробелы на %20 $query_text = preg_replace('/\s/', '%20', $query_text); $pars_url = 'http://www.youtube.com/results?search_query=' . $query_text; $content = parsCurl($pars_url, $settings['proxy'], $settings['proxy_auth']); preg_match_all ('#"\/watch\?v=(.+?)"#', $content, $link_treiler_mass); foreach($link_treiler_mass[1] as $k=>$z){ $trailer_mass[] = $z; } // удаляю лишний хвост, если вернулся плейлист $trailer_mass[0] = preg_replace('#(&list=.*)#', '', $trailer_mass[0]); return $trailer_mass[0]; }
На эту
Код:function trailerSelectBody ($query_text, $settings) { if (!$query_text || !$settings['youtube_key']) return false; // меняю кодировку, если не utf-8 $query_text = iconv_dle ($query_text); // заменяю пробелы на %20 $query_text = preg_replace('/\s/', '%20', $query_text); $pars_url = 'http://www.youtube.com/results?search_query=' . $query_text; $content = parsCurl($pars_url, $settings['proxy'], $settings['proxy_auth']); preg_match_all ('#"\/watch\?v=(.+?)"#', $content, $link_treiler_mass); foreach($link_treiler_mass[1] as $k=>$z){ $trailer_mass[] = $z; } // удаляю лишний хвост, если вернулся плейлист $trailer_mass[0] = preg_replace('#(&list=.*|\\\u0026.*)#', '', $trailer_mass[0]); return $trailer_mass[0]; }
Можно попробовать так, может так будет лучше и будут верные трейлеры. Но все равно, какие-то в любом случае могут быть не верные выдачи, по разным причинам.Проблема ушла.Спасибо. Единственное в некоторых новостях не совсем правильный трэйлер вставляет. Но думаю может у менячет не правильно заполняет (
function trailerSelectBody ($query_text, $settings) {
if (!$query_text || !$settings['youtube_key']) return false;
// меняю кодировку, если не utf-8
$query_text = iconv_dle ($query_text);
// заменяю пробелы на %20
#$query_text = preg_replace('/\s/', '%20', $query_text);
$query_text = preg_replace('/\s/', '+', $query_text);
$pars_url = 'http://www.youtube.com/results?search_query=' . urlencode($query_text);
$content = parsCurl($pars_url, $settings['proxy'], $settings['proxy_auth']);
preg_match_all ('#"\/watch\?v=(.+?)"#', $content, $link_treiler_mass);
foreach($link_treiler_mass[1] as $k=>$z){
$trailer_mass[] = $z;
}
// удаляю лишний хвост, если вернулся плейлист
$trailer_mass[0] = preg_replace('#(&list=.*|\\\u0026.*)#', '', $trailer_mass[0]);
return $trailer_mass[0];
}
А что не так под 16? Не работает вообще или дает какие-то проблемы ? Или это была ирония 😉?и желательно под 16 версию 😀😉
Можно попробовать так, может так будет лучше и будут верные трейлеры. Но все равно, какие-то в любом случае могут быть не верные выдачи, по разным причинам.
Код:function trailerSelectBody ($query_text, $settings) { if (!$query_text || !$settings['youtube_key']) return false; // меняю кодировку, если не utf-8 $query_text = iconv_dle ($query_text); // заменяю пробелы на %20 #$query_text = preg_replace('/\s/', '%20', $query_text); $query_text = preg_replace('/\s/', '+', $query_text); $pars_url = 'http://www.youtube.com/results?search_query=' . urlencode($query_text); $content = parsCurl($pars_url, $settings['proxy'], $settings['proxy_auth']); preg_match_all ('#"\/watch\?v=(.+?)"#', $content, $link_treiler_mass); foreach($link_treiler_mass[1] as $k=>$z){ $trailer_mass[] = $z; } // удаляю лишний хвост, если вернулся плейлист $trailer_mass[0] = preg_replace('#(&list=.*|\\\u0026.*)#', '', $trailer_mass[0]); return $trailer_mass[0]; }