☰

wnacg Download

Download images from wnacg gallery as a zip archive

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램을 먼저 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

작성자
Идзуми Сэна
일일 설치 수
0
총 설치 수
8
평점
0 0 0
버전
0.1
생성일
2026-04-26
갱신일
2026-04-26
크기
10.4KB
라이선스
해당 없음
적용 사이트

2. Назначение

Скрипт предназначен для автоматизации процесса полного и фонового скачивания изображений из галерей сайта wnacg (и его актуальных зеркал). Он самостоятельно собирает данные со всех страниц пагинации, загружает оригинальные изображения высокого разрешения, обходит базовые защиты от хотлинкинга и формирует готовый ZIP-архив с отсортированными файлами на стороне клиента (в браузере).

3. Ключевые функции

  • Асинхронный парсинг пагинации (getAllItemsData): Скрипт определяет максимальное количество страниц галереи (через .paginator a) и последовательно, с небольшими задержками, опрашивает индексные страницы (fetch). Из полученного HTML с помощью DOMParser извлекаются ссылки на страницы отдельных фото и URL их миниатюр (превью).
  • Эвристическое вычисление прямых ссылок (transformThumbToOriginal): Вместо того чтобы делать ресурсоемкий HTTP-запрос к странице каждого отдельного изображения для получения прямой ссылки на оригинал, скрипт анализирует URL превью и с помощью строковых замен (замена /data/thumb/ на /data/ и домена //t на //img) генерирует предполагаемую прямую ссылку. Это радикально ускоряет работу скрипта.
  • Двухуровневая система загрузки файлов (downloadWithRetry и fetchRealUrlFromPage):
    1. Основной поток: Скрипт пытается загрузить изображение по эвристически вычисленной ссылке через GM_xmlhttpRequest.
    2. Резервный поток: Если генерируемая ссылка отдала ошибку (например, 404 Not Found), код делает fetch страницы с изображением, парсит её структуру (#picarea), извлекает 100% достоверную ссылку на оригинал и скачивает её.
  • Интеллектуальная обработка файлов и формирование архива (downloadImages): Изображения сохраняются в формате Blob. Скрипт анализирует MIME-тип (например, image/webp или image/jpeg) для корректного назначения расширения файла. Имена файлов форматируются с ведущими нулями (например, 001.jpg), что гарантирует правильную хронологическую сортировку при просмотре распакованной галереи.

4. Как использовать

  1. Откройте страницу любой галереи на поддерживаемом домене (например, wnacg.com).
  2. Рядом с кнопкой чтения появится красная кнопка «Download ZIP».
  3. Нажмите на неё. Под кнопкой появится текстовый статус, отображающий процесс (сканирование страниц -> скачивание изображений -> архивация).
  4. По завершении браузер автоматически предложит сохранить ZIP-файл с названием галереи.

5. Особенности

  • Подключение внешних зависимостей: Использование директивы @require позволяет импортировать мощные библиотеки JSZip и FileSaver.js напрямую из CDN, делегируя им сложную логику упаковки в архив и триггера системного диалога сохранения файла.
  • Подмена заголовков для обхода защиты (Anti-Hotlinking): Загрузка изображений осуществляется через привилегированный API GM_xmlhttpRequest. Это критически важное решение, позволяющее инжектировать заголовок "Referer": location.origin + '/'. Без этого заголовка CDN серверов (защищающих изображения от встраивания на сторонние ресурсы) возвращали бы ошибку 403 Forbidden.
  • Rate-Limiting (Ограничение частоты запросов): Использование функции delay(ms) между запросами к страницам и загрузками файлов предотвращает возникновение ошибки 429 (Too Many Requests) и защищает пользователя от теневого бана по IP-адресу.
  • Отказоустойчивая архитектура архивации: Если скрипту не удается скачать часть изображений из-за мертвых ссылок или сбоев сети, выполнение не прерывается. Ошибочные URL собираются в массив errors и бережно сохраняются в текстовый лог-файл внутри финального ZIP-архива.

6. Пример выходных данных

После успешной отработки скрипта пользователь скачивает архив вида Название_Галереи.zip, внутренняя структура которого (с учетом обработки расширений и сортировки) выглядит следующим образом:

Название_Галереи.zip
│
├── 001.jpg
├── 002.webp
├── 003.png
├── 004_originalName.jpg
...
└── errors_log.txt (появляется только в случае ошибок загрузки)