Перейти к содержимому
Русский язык для Invision Community 5

Обновление видео в IP. Videosystem

Есть такое приложение как IP. Videosystem.

В нём осталось довольно большое кол-во видео которое было загруженно ещё с использованием старых медиа-тегов Ютуб. Сейчас такие видео в этом приложение не показываются (белый экран вместо трека). Лечение одно - нажать на редактирование трека и после него видео становиться нормальным.

 

Однако таких старых роликов много. Есть ли какой то вариант что бы отредактировать старые видео комплексно, через запрос к базе данных?

Рекомендованные сообщения

через запрос к базе данных?

Нужно сравнить для начала старый и новый коды. Посмотрите в бд.

  • Автор

Нужно сравнить для начала старый и новый коды. Посмотрите в бд.

Без проблем.

 

Код видео старого, неработающего видео:

 

<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/kl8mpAvTm_Y&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/kl8mpAvTm_Y&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="480" height="385"></embed></object>

 

 

Видео работающее:

 

<iframe class="youtube-player" width="640" height="390" src="https://www.youtube.com/embed/-Fu0UPnk4kc" allowfullscreen></iframe>

 

  • Автор

Нет никаких идей? А то редактирование вручную - это нереально.

Скиньте приложение.

  • Автор

Скиньте приложение.

IP. Videosystem 2.0.3.zip

Изменено пользователем Haktar

С минимальными затратами

Открыть \admin\applications_addon\other\videos\modules_public\display\index.php

Найти

		//-----------------------------------------
	// Fetch related videos
	//-----------------------------------------        

Выше добавить

		if ($video['video_type'] == 'media_url')
	{
		$embed = IPSText::getTextClass('bbcode')->preDisplayParse($video['video_data']);

		if ($embed != $video['embed'])
		{
			$video['embed'] = $embed;		
			$this->DB->update('videos', array('embed' => $embed), 'tid=' . $video['tid']);		
		}
	}

Когда пользователь будет заходить на страницу с сломанным видео, видео будет обновляться.

  • Автор

Когда пользователь будет заходить на страницу с сломанным видео, видео будет обновляться.

Ух ты, круто, работает.

Большое спасибо!

  • 2 года спустя...
  • Автор

Не хотел создавать новую тему, поэтому пишу здесь.

Хостеры написал что на БД дают сильную нагрузку вот этот процесс связанный с приложением Видео, вот ответ от хостеров:

Цитата

В данный момент, в списке процессов mysql 141 соединение. Все они находились в статусе "Waiting for table level lock" ожидая выполнения запроса 

SELECT v.tid, v.cid, v.author_id, v.author_name, v.date, v.title, v.status, v.last_updated, v.views, v.seo_title, v.thumbnail, v.video_rating, v.members_seo_name,f.f_vid, f.f_mid FROM ipb_videos v LEFT JOIN ipb_videos_favorites f ON ( f.f_vid=v.tid ) WHERE v.status=0 ORDER BY MAKE_SET(9401=9401,SLEEP(5)) DESC LIMIT 150,50

Который находился в статусе "User sleep", примерно 1800 секунд. После его остановки, выполнилась большая часть запросов, которые жали блокировки таблицы, за исключением ещё одного такого же, который так же ушёл в "User sleep". После его остановки запросы продолжили работы. 

Уменьшили значения interactive-timeout и wait-timeout до 200 секунд. Это должно убивать соединения в статусе "User sleep ", должны будут через 200 секунд. 

Подскажите в каком файле приложения ликвидировать этот процесс?

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

  • Автор
18 часов назад, siv1987 сказал:

наверное связанный с популярными видео или что-то типо того.

С функцией добавить в избранное.

18 часов назад, siv1987 сказал:

либо отключить эту функцию

Через админку нигде не отключается.

18 часов назад, siv1987 сказал:

найти в приложение и отключить его. 

Ищу, найти не могу.

  • Автор

Судя по всему в этом файле, но что удалять - не разберёшься.

 

index.php

А не sql ли инъекция у вас случайно в запросе?.. Запрос нашел, но такой странной  сортировки в коде не вижу. Судя по всему кто-то передает эту функцию MAKE_SET через пользовательские данные из параметра сортировки $order = $this->request['sort_by']." ".$this->request['sort_order'];

Конкретно этот sql запрос судя по всему из функции function search(), но применять такой финт можно везде где используется $order в запросе. Надо более жестко фильтровать данные в запросе. 

  • Автор
1 час назад, siv1987 сказал:

Запрос нашел, но такой странной  сортировки в коде не вижу.

Может тогда это не тот файл что я предоставил выше?

Вот всё приложение:

IP. Videosystem 2.0.3.zip

Это тот же самый запрос. 

  • Автор
7 минут назад, siv1987 сказал:

Это тот же самый запрос. 

Так как мне всё это отрубить? Готов отказаться от функционала, главное что бы приложение работало.

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.