В моей коллекции фотографий общее количество перевалило за 6000 шт. Мне лень выбирать лучшие и стирать неудачные. Я копирую фотки на NAS. При таком количестве, посмотреть их большая проблема. Я придумал такой выход: пусть при прослушивании интернет радиостанций HDX 1000 показывает мне слайдшоу со случайными фотографиями. И память освежится и разнообразненько.
Здесь я буду коментировать создание такого механизма.
Файл слайдшоу, используемый в HDX 1000 (nmt), имеет следующий формат:
Timeout|Reserved|Photo 1|URL_photo_1|
, где
- Timeout - время показа фотографии
- Reserved - зарезервировано. В некоторых мануалах этот параметр устанавливает номер transition
- Photo 1 - название фотографии (нигде не показывается)
- URL_photo_1 - адрес фотографии в URL формате
Последняя вводная. У меня сетевые диски в HDX 1000 монтируются в каталог
/mnt. Фотографии находятся в каталоге
/mnt/nas2d0/myPhoto/
Идея:
- cron генерит каждый день 50 плейлистов по 100 фото в каждой из всего списка фотографий. Эти плейлисты прописаны в html странице с радиостанциями;
- общий список фотографий обновляется каждую неделю (или месяц).
Просто и со вкусом.
- Сделаем символическую ссылку на каталог с фотографиями:
> cd /opt/sybhttpd/localhost.drives/HARD_DISK/Photo
> ln -s /mnt/nas2d0/myPhoto
- Имена фотографий присваиваются обычно фотоаппаратом или еще какой белибердой. В моей коллекции названия некоторых фото имеют неверную кодировку. Исправим это. Создадим скрипт для автоматического переименования фотографий.
#!/bin/bash
#
######################################################################
#
# Переименование файлов фотографий
#
# имя файла будет таким 0xxx.jpg
echo
Count=1
# Изменение расширения файла с верхнего на нижний рестр
for file in *.JPG
do
mv "$file" "${file%.JPG}.jpg"
done
for file in *.AVI
do
mv "$file" "${file%.AVI}.avi"
done
# переименовываем jpg файлы
for file in *.jpg
do
if [ $Count -lt 10 ]; then
Zero="000"
else
if [ $Count -lt 100 ]; then
Zero="00"
else
Zero="0"
fi
fi
OutS=$Zero$(printf "%d" $Count)
printf "%s 0d %s\n" "$file" $Count $OutS
Count=$[$Count+1]
mv "$file" $OutS".jpg"
done
# делаем тоже самое для avi файлов
for file in *.avi
do
if [ $Count -lt 10 ]; then
Zero="000"
else
if [ $Count -lt 100 ]; then
Zero="00"
else
Zero="0"
fi
fi
OutS=$Zero$(printf "%d" $Count)
printf "%s 0d %s\n" "$file" $Count $OutS
Count=$[$Count+1]
mv "$file" $OutS".avi"
done
Скрипт нужно разместить в каталог ... и сделать исполняемым.
Пользоваться им просто.
Нужно перейти в каталог, где имена файлов имеют неверную кодировку и запустить скрипт.
- Создадим скрипт mAllPhotoLst.sh, который будет генерить полный список фотографий.
#!/bin/bash
#
######################################################################
#
# Получение списка фотографий
# список фотографий будет распологаться в
# /mnt/nas2d0/myPhoto/photo.lst
cd /mnt/nas2d0/myPhoto
find -name *jpg > photo.lst
- Создадим скрипт mPl100.sh, который будет генерить плейлисты
- Вставляем скрипт mPl100.sh в cron.
Вуаля!А не какая не "виола".
echo $RANDOM
Комментариев нет:
Отправить комментарий