И вот только я обрадовался, что покорил вроде бы все популярные галереи, как одна и них ясно дала понять, что всех не победить.
Теперь информацию о суммарном количестве постов через API получить быстро и точно не получится, да и процедура логина осложнилась. Пришлось опять вдумчиво читать документацию и включать соображалку.
Начал я с последнего. Авторизоваться можно не только через web, но и через API. Для этого нужен уже не пароль, а API-ключ, который можно подсмотреть на странице по ссылке "My Account" на сайте http://danbooru.donmai.us/
Свои логин и API-ключ надо вписать в начало скрипта.
Осталось получить количество постов по выбранной комбинации тегов за минимальное количество запросов. Я мудрить не стал и сделал всё с помощью простого перебора и параллельного складывания найденных ссылок на изображения в файл.
Ну и сам скрипт:
#! /bin/bash # настройки логина danlogin=ЛОГИН apikey=API-КЛЮЧ if [ ! -d $2 ] then echo Creating $2 mkdir "$2" fi echo Entering $2 cd "$2" # Чистим rm -f get2.danbooru.txt # Топаем до пустой страницы postcount=100 page=0 until [ $postcount -eq 0 ] do curl "http://${danlogin}:${apikey}@danbooru.donmai.us/post/index.xml?tags=${1}&limit=100&page=${page}" > danout.dat let "page=page+1" postcount=`cat danout.dat|pcregrep -o -e 'file_url=[^ ]+'|sed -e 's/file_url=/http\:\/\/danbooru\.donmai\.us/g' -e 's/\/>//g' -e 's/\"//g'|wc -l` cat danout.dat|pcregrep -o -e 'file_url=[^ ]+'|sed -e 's/file_url=/http\:\/\/danbooru\.donmai\.us/g' -e 's/\/>//g' -e 's/\"//g' >> get2.danbooru.txt done wget -nc -i get2.danbooru.txt # уборка rm -f danbooru.txt danout.dat
Используется он так же, как и старый:
danbooru.sh сочетание_тегов папка_назначения