mirror of
https://codeberg.org/postscriptum/gemlog.git
synced 2026-02-19 14:32:40 +00:00
82 lines
No EOL
4.7 KiB
Text
82 lines
No EOL
4.7 KiB
Text
# 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 |