# gemini-dl: CLI-утиліта для завантаження ресурсів Geminispace gemini-dl - це утиліта командного рядка для пачкового завантаження капсул Gemini, написана мовою PHP 8 і поширюється за ліцензією MIT. За своїм інтерфейсом, gemini-dl виконує спільні з wget і youtube-dl задачі, але створена саме для протоколу Gemini. Використання доречне, якщо бажаєте завантажити певний ресурс: для локального читання чи задля його архівації, адже багатьом персональним капсулам властиве зникання через кустарний хостинг на різних девайсах типу Raspberry Pi. ## Встановлення Наразі стабільних випусків gemini-dl немає. Встановити актуальну версію, можна з наступних джерел: => https://github.com/yggverse/gemini-dl => https://packagist.org/packages/yggverse/gemini-dl ### Залежності ``` bash apt install git composer php-fpm php-mbstring ``` ### Збірка з вихідного коду ``` bash git clone https://github.com/yggverse/gemini-dl.git cd gemini-dl composer update chmod +x src/gemini-dl.php ``` ## Користування Утиліта підтримує гнучкі налаштування через аргументи командного рядка, актуальну документацію по яким, можна отримати аргументом --help. Серед базових можливостей, є такі опції: * режим кравлера (-c, --crawl) або поодинокого завантаження вказаного ресурсу * регулярні вирази (-m, --match) * опціональна конвертація локальних посилань (-a, --absolute) * керування заголовками (-r, --raw) і файловою системою (-u, --unique) * а тепер - й підтримка переходу за переадресацією (коди 30-31) Керування максимальною кількістю переадресацій на одну сторінку, здійснюється опцією -f, --follow. Стандартно (згідно специфікації) значення складає 5: => https://geminiprotocol.net/docs/protocol-specification.gmi#redirection ### Приклад команди Типова команда для створення локального дзеркала умовної капсули gemini://DOMAIN.ORG ``` bash src/gemini-dl.php --crawl\ --source gemini://DOMAIN.ORG\ --target /path/to/destination\ --match '/DOMAIN.ORG.*(\/|\.gmi|\.png|\.gif|\.jpg|\.jpeg|\.webp)$/' ``` * завантажуємо тільки графіку та сторінки Gemtext (включно з індексом в корені) * вимкнути слідування переадресаціям можна вказавши опцію `--follow 0` ## Посилання => gemini://bbs.geminispace.org/s/PHP/34281 Обговорення анонсу на BBS => https://devzone.org.ua/post/gemini-dl-cli-utylita-dlia-zavantazennia-resursiv-geminispace Веб-адаптація цього матеріалу з коментарями на DevZone ### Читайте також => gemini-protocol-as-http-alternative.gmi Протокол Gemini як альтернатива HTTP