commit - 1388b8dea02df2c50076dda2eba2b8778826fc3e
commit + 7ac9ed5c6648b7c0a9609d0aef9b4c90f45e185e
blob - 050910d2d312f5d928c2083d3351b1eb2062b02b
blob + 71b7615e875498e6283e9bbc271c5082bfb750db
--- capsule/atom.xml
+++ capsule/atom.xml
<name>continue</name>
<email>continue@to.any-key.press</email>
</author>
- <updated>2023-12-05T16:48:07.914481+00:00</updated>
+ <updated>2023-12-14T19:25:08.847292+00:00</updated>
<entry>
+ <id>gemini://any-key.press/warp/ru_atom.gmi</id>
+ <link href="gemini://any-key.press/warp/ru_atom.gmi" rel="alternate"/>
+ <title>Русскоязычные Gemini ленты</title>
+ <updated>2023-12-14T19:25:08.847292+00:00</updated>
+ </entry>
+ <entry>
<id>gemini://any-key.press/readed/Bookchin_libertarian_municipalism.gmi</id>
<link href="gemini://any-key.press/readed/Bookchin_libertarian_municipalism.gmi" rel="alternate"/>
<title>Прочитано ✅ Мюррей Букчин. Будущая революция: Народные ассамблеи и перспектива прямой демократии</title>
blob - 7890064a1e87c84b8f918e4c11eb6aeb6c193a94
blob + a8f511578f37ff45d40fd1cc488d4df8dbbcc044
--- capsule/warp/index.gmi
+++ capsule/warp/index.gmi
=> gemini://offpunk.com/sphere.gmi Offpunk's Sphere
=> gemini://stalker.shpakovsky.ru/ Сталкер. Поддерживается Алексеем Шпаковским
=> gemini://phreedom.club/gmisub/ Подборка новостей Gemini за последний месяц (обновляется ежедневно)
+
+## Русскоязычные Gemini ленты
+
+Ниже по ссылке я shell скриптом собрал небольшую подборку русскоязычных Gemini лент:
+=> ru_atom.gmi Русскоязычные Gemini ленты
blob - /dev/null
blob + 21f4325a5408b76889895d4f18c17abbacb5ec49 (mode 644)
--- /dev/null
+++ capsule/warp/ru_atom.gmi
+# Русскоязычные 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.tk/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
+
+## Как получен этот список
+
+Иногда у меня возникает желание немного поупражняться в 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" нет таких ссылок.
+
+И ещё стоит отметить, что для получения списка из начала страницы пришлось немного промодерировать его вручную. Иногда в киррилические символы проскакивают просто среди англоязычного текста, попадаются дубликаты и тому подобное.