Sleazy Fork is available in English.
Download images from wnacg gallery as a zip archive
Скрипт предназначен для автоматизации процесса полного и фонового скачивания изображений из галерей сайта wnacg (и его актуальных зеркал). Он самостоятельно собирает данные со всех страниц пагинации, загружает оригинальные изображения высокого разрешения, обходит базовые защиты от хотлинкинга и формирует готовый ZIP-архив с отсортированными файлами на стороне клиента (в браузере).
getAllItemsData):
Скрипт определяет максимальное количество страниц галереи (через .paginator a) и последовательно, с небольшими задержками, опрашивает индексные страницы (fetch). Из полученного HTML с помощью DOMParser извлекаются ссылки на страницы отдельных фото и URL их миниатюр (превью).transformThumbToOriginal):
Вместо того чтобы делать ресурсоемкий HTTP-запрос к странице каждого отдельного изображения для получения прямой ссылки на оригинал, скрипт анализирует URL превью и с помощью строковых замен (замена /data/thumb/ на /data/ и домена //t на //img) генерирует предполагаемую прямую ссылку. Это радикально ускоряет работу скрипта.downloadWithRetry и fetchRealUrlFromPage):
GM_xmlhttpRequest.fetch страницы с изображением, парсит её структуру (#picarea), извлекает 100% достоверную ссылку на оригинал и скачивает её.downloadImages):
Изображения сохраняются в формате Blob. Скрипт анализирует MIME-тип (например, image/webp или image/jpeg) для корректного назначения расширения файла. Имена файлов форматируются с ведущими нулями (например, 001.jpg), что гарантирует правильную хронологическую сортировку при просмотре распакованной галереи.wnacg.com).@require позволяет импортировать мощные библиотеки JSZip и FileSaver.js напрямую из CDN, делегируя им сложную логику упаковки в архив и триггера системного диалога сохранения файла.GM_xmlhttpRequest. Это критически важное решение, позволяющее инжектировать заголовок "Referer": location.origin + '/'. Без этого заголовка CDN серверов (защищающих изображения от встраивания на сторонние ресурсы) возвращали бы ошибку 403 Forbidden.delay(ms) между запросами к страницам и загрузками файлов предотвращает возникновение ошибки 429 (Too Many Requests) и защищает пользователя от теневого бана по IP-адресу.errors и бережно сохраняются в текстовый лог-файл внутри финального ZIP-архива.После успешной отработки скрипта пользователь скачивает архив вида Название_Галереи.zip, внутренняя структура которого (с учетом обработки расширений и сортировки) выглядит следующим образом:
Название_Галереи.zip
│
├── 001.jpg
├── 002.webp
├── 003.png
├── 004_originalName.jpg
...
└── errors_log.txt (появляется только в случае ошибок загрузки)