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


Залежності


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.


Серед базових можливостей, є такі опції:



Керування максимальною кількістю переадресацій на одну сторінку, здійснюється опцією -f, --follow. Стандартно (згідно специфікації) значення складає 5:

https://geminiprotocol.net/docs/protocol-specification.gmi#redirection


Приклад команди


Типова команда для створення локального дзеркала умовної капсули 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)$/'

Читання на пристроях E-ink


Невеличкий спойлер щодо читання завантажених файлів на електронних чорнилах.


Якщо у вас більш-менш сучасний рідер - спробуйте KoReader з плагіном Gemini:


gemini://gemini.thegonz.net/gemini.koplugin/

Мій досвід портування KoReader на старий PocketBook 602


На старих девайсах, що не вміють Gemtext, але розуміють .txt - достатньо просто перейменувати завантажені розширення файлів .gmi на .txt (на щастя, формат Gemtext є тривіальним для читання у сирому вигляді)


find /path/to/directory -type f -name "*.gmi" -exec bash -c 'mv "$0" "${0%.gmi}.txt"' {} \;

Посилання


Обговорення анонсу на BBS

Веб-адаптація цього матеріалу з коментарями на DevZone


Читайте також


Протокол Gemini як альтернатива HTTP



/uk/