#!/bin/bash
#
# Yandex-fotki grabber
#
# Version 0.0.2
# Author murchik <mixturchik@gmail.com>
# License GNU GPL v3
# Copyleft Tulup.ru 2012
#
FOTKI="http://fotki.yandex.ru"
if ! echo $1 | grep "^$FOTKI" > /dev/null; then
echo 'Invalid Yandex-fotki album link'
exit 1
fi
album=$(echo $1 | perl -MURI -le 'chomp($url = <> ); print URI->new($url)->path')
echo -n 'Downloading album pages…'
for (( p=0 ; ; p+=1 )); do if ! wget -qO - "$FOTKI$album?p=$p" \
| grep 'class="photo"' | grep -Po "/users/.*page=\w+" \
| sed "s/^/"$(echo $FOTKI | sed 's/\//\\\//g')"/" | grep ''; \
then break; fi; done \
> links.txt
echo ' [ OK ]'
echo -n 'Downloading photo pages…'
wget -i links.txt -qO - | grep 'Оригинал' | egrep -o 'http[^"]*orig' |sort |uniq \
> images.txt
echo ' [ OK ]'
echo 'Downloading and managing photo files…'
wget -nv -c -t 10 -i images.txt
for f in *orig; do mv $f "$f.jpg"; done
echo 'Done.'
Для работы нужен bash/cygwin с тулзами wget, grep, sed, sort и uniq, а также Perl с пакетом URI.
Пользоваться следующим образом:
1. Сохраняем вышенаписанную абракадабру в файл yandex_fotki.sh.
2. Даем права на запуск: chmod +x yandex_fotki.sh.
3. Запускаем так: ./yandex-fotki.sh http://fotki.yandex.ru/users/kkfksenia/album/188935/ и сидим ждем пока все выкачается.
N.B. Скрипт умеет качать только альбомы с фотографиями. Альбомы с вложенными альбомами не скачаются. Если кому-то это нужно — напишите сюда или в личку.