-- Leo's gemini proxy

-- Connecting to any-key.press:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

Русскоязычные Gemini ленты


TL;DR


gemini://any-key.press/atom.xml

gemini://armitage.flounder.online/gemlog/atom.xml

gemini://basnja.ru/atom.xml

gemini://bbs.geminispace.org/s/russian?atom

gemini://byzoni.org/gemlog/atom.xml

gemini://gemini.quietplace.xyz/~razzlom/gemlog/atom.xml

gemini://gemini.strahinja.org/blog/atom.xml

gemini://hugeping.ru/micro/atom.xml

gemini://karabas.flounder.online/gemlog/atom.xml

gemini://kirill.zholnay.name/gemfeed/atom.xml

gemini://phreedom.club/~tolstoevsky/feed.xml

gemini://pub.phreedom.club/~localhost/Lies_dybr/atom.xml

gemini://votih.flounder.online/gemlog/atom.xml


UPD 2024-01-19: У hugeping есть лента не только микроблога, но и "полнотекстовых" постов:

gemini://hugeping.ru/atom.xml


Как получен этот список


Иногда у меня возникает желание немного поупражняться в shell скриптах. Сегодня в качестве задачи решил найти русскоязычные Gemini ленты (atom). В качестве набора известных адресов лент взял содержимое страницы "Known Gemini Feeds" с сервера geminispace.info:


gemini://geminispace.info/known-feeds


Саму страницу получаем с использованием команды openssl:

echo "gemini://geminispace.info/known-feeds" | openssl s_client -crlf -quiet -connect geminispace.info:1965 2> /dev/null

Затем извлечём из страницы абсолютные ссылки на сами ленты (строки, начинающиеся с подстроки "=> gemini://"):

echo "gemini://geminispace.info/known-feeds" | openssl s_client -crlf -quiet -connect geminispace.info:1965 2> /dev/null \
| grep "^=> gemini://"

Следующим в цепочке вызовем awk, что бы извлечь из строки сам Gemini URL (второе поле каждой строки, разбитой по пробелам):

echo "gemini://geminispace.info/known-feeds" | openssl s_client -crlf -quiet -connect geminispace.info:1965 2> /dev/null \
| grep "^=> gemini://" \
| awk '{print $2}'

И по каждому извлеченному URL проитерируемся с использованием while. А затем уже из каждого URL извлечем домен тем же awk и запросим содержимое всё тем же вызовом openssl. Русский язык проверим регулярным выражением "[а-яА-Я]":

echo "gemini://geminispace.info/known-feeds" | openssl s_client -crlf -quiet -connect geminispace.info:1965 2> /dev/null \
| grep "^=> gemini://" \
| awk '{print $2}' \
| while read URL; do
    NETLOC=$(echo $URL | awk -F[/] '{print $3}')
    echo $URL | timeout 15 openssl s_client -crlf -quiet -connect $NETLOC:1965 2> /dev/null \
    | grep "[а-яА-Я]" > /dev/null && echo "$URL"
done

Такой скрипт печатает в свой stdout русскоязычные Gemini ленты. Сразу стоит оговориться, что он не будет правильно работать с URL, где помимо хоста содержится и порт, то есть вида "gemini://example.org:1965/atom.xml". Я не стал с этим заморачиваться просто потому, что на странице "gemini://geminispace.info/known-feeds" нет таких ссылок.


И ещё стоит отметить, что для получения списка из начала страницы пришлось немного промодерировать его вручную. Иногда в киррилические символы проскакивают просто среди англоязычного текста, попадаются дубликаты и тому подобное.


Комментарии через ActivityPub (Fediverse) можно оставить здесь:

https://honk.any-key.press/u/continue/h/4nZwxzyZ379q23yTb2

-- Response ended

-- Page fetched on Mon May 20 12:31:38 2024