gemlog/public/uk/gemini-dl-is-batch-downloader-for-gemini-protocol.gmi
2025-11-13 14:38:11 +02:00

82 lines
No EOL
4.7 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`
### Читання на пристроях E-ink
Невеличкий спойлер щодо читання завантажених файлів на електронних чорнилах.
Якщо у вас більш-менш сучасний рідер - спробуйте KoReader з плагіном Gemini:
=> gemini://gemini.thegonz.net/gemini.koplugin/
=> porting-koreader-on-pocketbook-602.gmi Мій досвід портування KoReader на старий PocketBook 602
На старих девайсах, що не вміють Gemtext, але розуміють .txt - достатньо просто перейменувати завантажені розширення файлів .gmi на .txt (на щастя, формат Gemtext є тривіальним для читання у сирому вигляді)
``` bash
find /path/to/directory -type f -name "*.gmi" -exec bash -c 'mv "$0" "${0%.gmi}.txt"' {} \;
```
* `/path/to/directory` - актуальний шлях до завантаженого ресурсу
## Посилання
=> 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