commit 7ac9ed5c6648b7c0a9609d0aef9b4c90f45e185e from: Aleksey Ryndin date: Thu Dec 14 19:31:55 2023 UTC Add warp/ru_atom.gmi commit - 1388b8dea02df2c50076dda2eba2b8778826fc3e commit + 7ac9ed5c6648b7c0a9609d0aef9b4c90f45e185e blob - 050910d2d312f5d928c2083d3351b1eb2062b02b blob + 71b7615e875498e6283e9bbc271c5082bfb750db --- capsule/atom.xml +++ capsule/atom.xml @@ -8,8 +8,14 @@ continue continue@to.any-key.press - 2023-12-05T16:48:07.914481+00:00 + 2023-12-14T19:25:08.847292+00:00 + gemini://any-key.press/warp/ru_atom.gmi + + Русскоязычные Gemini ленты + 2023-12-14T19:25:08.847292+00:00 + + gemini://any-key.press/readed/Bookchin_libertarian_municipalism.gmi Прочитано ✅ Мюррей Букчин. Будущая революция: Народные ассамблеи и перспектива прямой демократии blob - 7890064a1e87c84b8f918e4c11eb6aeb6c193a94 blob + a8f511578f37ff45d40fd1cc488d4df8dbbcc044 --- capsule/warp/index.gmi +++ capsule/warp/index.gmi @@ -15,3 +15,8 @@ => 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 @@ -0,0 +1,57 @@ +# Русскоязычные 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" нет таких ссылок. + +И ещё стоит отметить, что для получения списка из начала страницы пришлось немного промодерировать его вручную. Иногда в киррилические символы проскакивают просто среди англоязычного текста, попадаются дубликаты и тому подобное.