by hugeping on 2021-02-14 17:30:21
В прошлый раз я погорячился, когда сказал, что раздача контента по RSS -- редкость. Конечно, не редкость. Если посмотреть на исходный код главных страниц многих веб-ресурсов, то очень часто можно найти заветную ссылку с типом application/rss+xml. Я начал с простой утилиты на go, которая бы забирала rss ленту и выводила её в формате gemini разметки. Утилита rss2gmi лежит там же, где и остальные утилиты: https://github.com/gl00my/clearweb/tree/master/rss2gmi [1]
Я испытал её на некоторых ресурсах и понял, что придётся усложнять. Например, некоторые сайты отдают ленту в которой в полях description находится html-разметка. Кроме того, вместо UTF-8 могут использоваться другие кодировки.
После небольших доработок я успешно испытал rss2gmi на:
Но была ещё одна проблема. В acme окно всегда прокручивается в конец вывода. Поэтому, после запуска скрипта показывающего ленту, нужно было отматывать текст назад. А это -- неудобно! Решение, конечно, лежало на поверхности. Добавить опцию -r для реверсного показа ленты. После добавления этой опции, просмотр лент стал именно таким, ка��им я его хотел видеть. Например, для просмотра новостей opennet я просто запускаю скрипт opennet из acme и вижу что-то вроде:
## Выпуск Wine 6.2, Wine staging 6.2 и Proton 5.13-6 [38] Состоялся экспериментальный выпуск открытой реализации WinAPI - Wine 6.2. С момента выпуска версии 6.1 был закрыт 51 отчёт об ошибках и внесено 329 изменений. => https://www.opennet.ru/opennews/art.shtml?num=54570 [38]
Если новость меня интересует, я нажимаю на ссылке и открывается браузер. Удобно! И в большинстве случаев -- никакого браузера! И никакой читалки RSS на qt или gtk. А в Plan9 это вообще единственный возможный способ для меня.
Сегодня многие пользуются для почты веб интерфейсом gmail/mail.ru и другими. Но это, конечно, не наш путь. Несколько последних лет я использую gnus в emacs. Забор почты может осуществляться mpop/imapsync. При этом письма просто помещаются в каталог в формате Maildir. Отправка -- msmtp. Для поиска нужных сообщений я использую mu. Mu позволяет делать выборку нужных сообщений и показывать их прямо из Maildir. И конечно, с помощью mu можно автоматизировать показ нужных писем прямо в acme!
Например, мне нужно следить за рабочим багтрекером. Я нажимаю на "кнопку" bugs в acme и получаю список последних ошибок! В теле писем есть ссылки. Я могу нажать на нужную и перейти к нужному багу. Скрип выглядит просто:
mu find from:Mantis --fields "l" -s "d" | tail -n $num | while read f; do mu view --nocolor "$f";done
Твиттер и mastadon я читаю скриптами, которые вызывают bti и toot -- консольные клиенты твиттера и мастадона.
Поиск, новости, чтение почты и твиттера... И всё это не выходя из acme. Жизнь налаживается! Acme -- действительно мощный интерфейс, легко настраиваемый под собственные задачи. И он очень помогает в борьбе с shit-вебом.
https://github.com/gl00my/clearweb/tree/master/rss2gmi [1]
https://www.linux.org.ru/section-rss.jsp?section=1 [2]
https://www.opennet.ru/opennews/opennews_all_noadv.rss [3]
https://hype.retroscene.org/rss/index/ [4]
https://forum.ifiction.ru/extern.php?action=active&type=RSS [5]