(o (c date '+%s '--date) cadar (sxpath "pubdate"))))))))) ``` I already had sxml-url, which has been pretty useful both at the command line, where it prints an SXML representation of any web page, and in other zshbrev apps, like rss-mash which is the new part. It’s also hopefully a pretty clear demo of how zshbrev turns command line arguments into function arguments, and function output into stdout in a pretty dwimmy way (it should work regardless of whether your function prints something or returns a value, like a tree or string). This currently only works with RSS, not Atom. It’s just a li’l hack quickly thrown together. ## Installation and usage First: ```Code apt install chicken chicken-install brev zshbrev ``` < Paste the code from earlier in this post (the two define calls) into ~/.zshbrev/functions, then: ```Code zshbrev ~/.zshbrev/bin/rss-mash https://the-first/url.xml https://a-second/url.xml ``` You can add ~/.zshbrev/bin/ to your path if you wanna. => /zshbrev zshbrev ">
Proxy Information
Original URL
gemini://idiomdrottning.org/rss-mash
Status Code
Success (20)
Meta
text/gemini; lang=en # rss-mash I haven’t been programming for a while but I spent a few minutes putting together a li’l rss-mash utility that takes RSS URLs on the command line and prints a combined XML file of all those items to the standard output. I made it with zshbrev. Here is the code: ```Code (define (sxml-url (= ->string url)) (call-with-input-request url #f html->sxml)) (define (rss-mash . (= (c map sxml-url) feeds)) (serialize-sxml `(*TOP* (*PI* xml "version=\"1.0\" encoding=\"utf-8\"") (rss (@ (version "2.0") (xmlns:dc "http://purl.org/dc/elements/1.1/")) (channel (title ,(string-intersperse (map (o cadar (sxpath "//channel/title")) feeds) " + ")) (description "A mashup of feeds") ,@(sort (apply lset-union (bi-each equal? (sxpath "guid")) (map (sxpath "//item") feeds)) (bi-each > (o (c date '+%s '--date) cadar (sxpath "pubdate"))))))))) ``` I already had sxml-url, which has been pretty useful both at the command line, where it prints an SXML representation of any web page, and in other zshbrev apps, like rss-mash which is the new part. It’s also hopefully a pretty clear demo of how zshbrev turns command line arguments into function arguments, and function output into stdout in a pretty dwimmy way (it should work regardless of whether your function prints something or returns a value, like a tree or string). This currently only works with RSS, not Atom. It’s just a li’l hack quickly thrown together. ## Installation and usage First: ```Code apt install chicken chicken-install brev zshbrev ``` < Paste the code from earlier in this post (the two define calls) into ~/.zshbrev/functions, then: ```Code zshbrev ~/.zshbrev/bin/rss-mash https://the-first/url.xml https://a-second/url.xml ``` You can add ~/.zshbrev/bin/ to your path if you wanna. => /zshbrev zshbrev
Capsule Response Time
548.082758 milliseconds
Gemini-to-HTML Time
0.013178 milliseconds

This content has been proxied by September (ba2dc).