From 13db5cfdce457283f556cef4a5fc876d1c28e185 Mon Sep 17 00:00:00 2001 From: postscriptum Date: Tue, 11 Nov 2025 15:15:01 +0200 Subject: [PATCH] add `gemini-dl-cli-utylita-dlia-zavantazennia-resursiv-geminispace.md` --- ...dlia-zavantazennia-resursiv-geminispace.md | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 post/gemini-dl-cli-utylita-dlia-zavantazennia-resursiv-geminispace.md diff --git a/post/gemini-dl-cli-utylita-dlia-zavantazennia-resursiv-geminispace.md b/post/gemini-dl-cli-utylita-dlia-zavantazennia-resursiv-geminispace.md new file mode 100644 index 0000000..27caf7b --- /dev/null +++ b/post/gemini-dl-cli-utylita-dlia-zavantazennia-resursiv-geminispace.md @@ -0,0 +1,56 @@ +# gemini-dl: CLI-утиліта для завантаження ресурсів Geminispace + +[gemini-dl](https://github.com/YGGverse/gemini-dl) - це утиліта командного рядка для пачкового завантаження капсул Gemini, написана мовою PHP 8 і поширюється за ліцензією MIT. + +За своїм інтерфейсом, gemini-dl виконує спільні для wget і youtube-dl задачі, але створена саме для [протоколу Gemini](https://devzone.org.ua/post/protokol-gemini-iak-alternatyva-http). + +Використання доречне, якщо бажаєте завантажити певний ресурс: для локального читання чи задля його архівації, адже багатьом персональним капсулам властиве зникання через кустарний хостинг на різних девайсах типу 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](https://geminiprotocol.net/docs/protocol-specification.gmi#redirection)) + +Керування максимальною кількістю переадресацій на одну сторінку, здійснюється опцією `-f`, `--follow`. Стандартно (згідно специфікації) значення складає 5. + +### Приклад + +Типова команда для створення локального дзеркала умовної капсули `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](https://geminiprotocol.net/docs/gemtext.gmi) (включно з індексом в корені) +* вимкнути слідування переадресаціям можна вказавши опцію `--follow 0` \ No newline at end of file