ВходИмяПароль
Автоматически входить при каждом посещении    
Регистрация
Регистрация
Войти и проверить личные сообщения
Войти и проверить личные сообщения
Список форумов ЛанМедиаСервис » Скрипт видео-каталога v.1.x

Начать новую тему   Ответить на тему
Новое - хорошо забытое старое или ротация файлов в каталоге
Предыдущая тема :: Следующая тема  
Автор Сообщение

Hiller





Зарегистрирован: 02.03.2008
Сообщения: 70


blank.gif
Сообщение Добавлено: 2008-03-18 04:55 am    Заголовок сообщения: Новое - хорошо забытое старое или ротация файлов в каталоге Ответить с цитатой

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

В результате имеем груду файлов, которые лежат на серверах, занимают место, а толку от них ноль. Как-то не правильно, согласитесь?

Решено было написать скрипт, который раз в какое-то время будет лезть в базу, находить не очень популярные фильмы/альбомы давно лежащие на сервере и добавлять их как новые.

Вот что получилось:

Код:
#!/usr/bin/perl -w

use strict;
use DBI;

# База данных MySQL
my $DB_NAME = 'database';
my $DB_LOGIN = 'login';
my $DB_PASSWD = 'passwd';


# Будем обрабатывать фильмы в видео-каталоге?
my $DO_VIDEO = 1;

# Будем обрабатывать альбомы в аудио-каталоге?
my $DO_AUDIO = 1;

# Меньше скольки хитов должно быть у "поднимаемого" фильма/альбома?
my $HITS = 5;

# Сколько фильмов/альбомов будем "поднимать" за один проход?
my $COUNT = 3;


# Конец пользовательских настроек, далее идет код

my $dbh = DBI->connect("DBI:mysql:$DB_NAME", $DB_LOGIN,$DB_PASSWD)
   or die "Error connecting to mysql database";

$dbh->do("
UPDATE films SET `CreateDate` = NOW()
 WHERE `Hit` <= '$HITS'
  AND `CreateDate` < (NOW() - INTERVAL 1 MONTH)
ORDER BY `CreateDate` ASC
LIMIT $COUNT;") if $DO_VIDEO;

$dbh->do("
UPDATE music_albums SET `CreateDate` = NOW()
 WHERE `Hit` <= '$HITS'
  AND `CreateDate` < (NOW() - INTERVAL 1 MONTH)
ORDER BY `CreateDate` ASC
LIMIT $COUNT;") if $DO_AUDIO;

$dbh->disconnect();


Конечно никто не мешает запустить это с помощью mysql -e, но мы планируем развивать этот скрипт, поэтому выбран perl.

ps Скрипт не обрабатывает фильмы добавленные за последний месяц, это сделано специально.

pps Если у кого-то есть поправки, идеи по развитию логики скрипта, пожалуйста, пишите здесь.

Ну а если Илья включит этот скрипт в contrib, буду на седьмом небе от счастья Wink


Последний раз редактировалось: Hiller (2008-03-19 02:00 am), всего редактировалось 2 раз(а)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Instruktor 





Зарегистрирован: 29.02.2008
Сообщения: 89


russia.gif
Сообщение Добавлено: 2008-03-18 06:36 am    Заголовок сообщения: Ответить с цитатой

Смысл есть. Большенство юзеров видят "поднятые" фильмы впервые, как будто только что добавленные.
и было бы неплохо:
- учитывать мировой рейтинг (что бы "самый лучший фильм" или "ширли-мырли" не поднимать наверх);
- учитывать сколько реально новых фильмов добавлено на текущий момент.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Hiller





Зарегистрирован: 02.03.2008
Сообщения: 70


blank.gif
Сообщение Добавлено: 2008-03-18 07:18 am    Заголовок сообщения: Ответить с цитатой

Про учет реально новых фильмов - без проблем, сделаю.
Про мировой рейтинг - брать за основу рейтинг IMDB?

Добавлено спустя 6 minutes 42 seconds:

Кстати, а зачем нам учитывать мировой рейтинг? Если фильм не качали, а он так-то популярный, пускай он попадается на глаза и его будут качать?

И еще, можно по подробнее про критерий с кол-вом "реально новых фильмов"?

Сделать, опцию в которой указывается кол-во "реально новых фильмов", при котором поднятие старых не происходит?

Или как-то иначе?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Instruktor 





Зарегистрирован: 29.02.2008
Сообщения: 89


russia.gif
Сообщение Добавлено: 2008-03-18 08:15 am    Заголовок сообщения: Ответить с цитатой

Hiller писал(а):
Про мировой рейтинг - брать за основу рейтинг IMDB?
Кстати, а зачем нам учитывать мировой рейтинг? Если фильм не качали, а он так-то популярный, пускай он попадается на глаза и его будут качать?


Тут можно как угодно, на своё усмотрение. Былоб неплохо поднимать бывшие хиты каталога и фильмы с высоким IMDB-рейтингом.

Цитата:
И еще, можно по подробнее про критерий с кол-вом "реально новых фильмов"?


К примеру на первой странице выводится 30 фильмов. За последние 3 дня модеры добавили 15 фильмов, а другие 15 получается будут висеть 4-й день подряд. Их можно заменить поднятыми старыми.
т.е. 15 добавили 15 подняли, через 3 дня 5 добавили 25 подняли.
Типа того.

А вообще к старым файлам у меня вот такое отношение:

http://forum.lanmediaservice.com/viewtopic.php?t=36

Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Hiller





Зарегистрирован: 02.03.2008
Сообщения: 70


blank.gif
Сообщение Добавлено: 2008-03-18 11:10 am    Заголовок сообщения: Ответить с цитатой

Все понятно, ок, так и сделаем.

А по поводу отношения - какой смысл грохать старое, если можно тупо винты апгрейдить? А как же новые абоненты, может они найдут в вашем каталоге то, что давно искали, а в магазинах этого уже не продают... А это ВАШИ деньги и хорошая репутация.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Илья Спесивцев

Администратор



Зарегистрирован: 26.02.2008
Сообщения: 703
Откуда: Техподдержка

blank.gif
Сообщение Добавлено: 2008-03-18 13:23 pm    Заголовок сообщения: Ответить с цитатой

Можно заменить:
"DATE_FORMAT(`CreateDate`, '%Y-%m') != DATE_FORMAT(NOW(),'%Y-%m')"
на
`CreateDate` < (NOW() - INTERVAL 1 MONTH)

тогда получится не будут подниматься фильмы за последний месяц с текущего дня.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора

Instruktor 





Зарегистрирован: 29.02.2008
Сообщения: 89


russia.gif
Сообщение Добавлено: 2008-03-18 13:27 pm    Заголовок сообщения: Ответить с цитатой

К сожалению правка кода убивается после очередного обновления каталога.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Hiller





Зарегистрирован: 02.03.2008
Сообщения: 70


blank.gif
Сообщение Добавлено: 2008-03-19 01:56 am    Заголовок сообщения: Ответить с цитатой

Илья Спесивцев писал(а):
Можно заменить:
"DATE_FORMAT(`CreateDate`, '%Y-%m') != DATE_FORMAT(NOW(),'%Y-%m')"
на
`CreateDate` < (NOW() - INTERVAL 1 MONTH)

тогда получится не будут подниматься фильмы за последний месяц с текущего дня.


Спасибо за подсказку, поправил в первом сообщении...

Добавлено спустя 1 minute 16 seconds:

Instruktor  писал(а):
К сожалению правка кода убивается после очередного обновления каталога.


Этот скрипт не входит в контрибы, поэтому он заменяться при обновлениях не будет.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Instruktor 





Зарегистрирован: 29.02.2008
Сообщения: 89


russia.gif
Сообщение Добавлено: 2008-04-21 06:57 am    Заголовок сообщения: Ответить с цитатой

Мне показалось или после апания фильма, который когда то был хитом, некорректно определяется "относительная популярнось"? После поднятия он постоянно торчит во главе списка.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Илья Спесивцев

Администратор



Зарегистрирован: 26.02.2008
Сообщения: 703
Откуда: Техподдержка

blank.gif
Сообщение Добавлено: 2008-04-21 07:34 am    Заголовок сообщения: Ответить с цитатой

Instruktor  писал(а):
Мне показалось или после апания фильма, который когда то был хитом, некорректно определяется "относительная популярнось"? После поднятия он постоянно торчит во главе списка.

Да, формула расчета относительной популярности:
кол-во дней в каталоге/кол-во хитов
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора

60659





Зарегистрирован: 04.05.2008
Сообщения: 3


blank.gif
Сообщение Добавлено: 2008-05-04 22:03 pm    Заголовок сообщения: Ответить с цитатой

идея вообще замечательная!
но мне кажется такая ротация нелогична, смысл менять реальную дату, почему бы не создать дополнительное поле в базе(или же наверняка есть неиспользованные поля), и уже по нему менять даты( соответственно один раз копируем даты, а далее меняем как хотим), и в "Сортировке" добавляем что то типа "по дате добавления (активная)", и ставим её за основу.
Таким образом реальная дата оставаётся и сортировка по дате адекватна. Зачем? Вот не было юзера например неделю, хочет посмотреть что добавили за это время , а так будет в перемешку и новое и не новое, что не совсем адекватно.
опять же с рейтингами всё ок
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Hiller





Зарегистрирован: 02.03.2008
Сообщения: 70


blank.gif
Сообщение Добавлено: 2008-05-22 03:05 am    Заголовок сообщения: Ответить с цитатой

В таком случае, какой смысл "поднимать" фильм, если на него не будут обращать внимание?
Вы "поднимаете" фильм для того, чтобы на него обратили внимание и скачали. Данным скриптом результат достигается, наилучшим образом.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

60659





Зарегистрирован: 04.05.2008
Сообщения: 3


blank.gif
Сообщение Добавлено: 2008-06-03 21:28 pm    Заголовок сообщения: Ответить с цитатой

а в вашем случае практически невозможно отследить реально новые фильмы , если старым дату добавления менять
в твк если сделать одельную сортировку , и сделать её "по умолчанию" то те кому надо всё равно смогут проверить последнии обновления , в то время как старые будут фильмы будут будут подняты
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Hiller





Зарегистрирован: 02.03.2008
Сообщения: 70


blank.gif
Сообщение Добавлено: 2008-06-04 00:54 am    Заголовок сообщения: Ответить с цитатой

Фильмы поднимаются для того, чтобы на них обратили внимание и скачали их. Акцентировать внимание на том, что этот фильм есть уже давно не имеет смысла. Человек должен "клюнуть" на фильм, при этом не важно, был ли этот фильм раньше.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов ЛанМедиаСервис » Скрипт видео-каталога v.1.x Часовой пояс: GMT
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы