devzone.org.ua/post/gemini-dl-cli-utylita-dlia-zavantazennia-resursiv-geminispace.md

3.4 KiB
Raw Blame History

gemini-dl: CLI-утиліта для завантаження ресурсів Geminispace

gemini-dl - це утиліта командного рядка для пачкового завантаження капсул Gemini, написана мовою PHP 8 і поширюється за ліцензією MIT.

За своїм інтерфейсом, gemini-dl виконує спільні для wget і youtube-dl задачі, але створена саме для протоколу Gemini.

Використання доречне, якщо бажаєте завантажити певний ресурс: для локального читання чи задля його архівації, адже багатьом персональним капсулам властиве зникання через кустарний хостинг на різних девайсах типу Raspberry Pi.

Встановлення

Наразі стабільних випусків gemini-dl немає. Встановити актуальну версію, можна з джерел:

Залежності

apt install git composer php-fpm php-mbstring

Збірка з вихідного коду

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.

Приклад

Типова команда для створення локального дзеркала умовної капсули gemini://DOMAIN.ORG

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