-- Leo's gemini proxy

-- Connecting to drew.monster:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

Added RSS to my .gmi to .html script

25 Apr 2021


I'm currently generating my website from my gemini pod using a *very ugly* script. The script didn't do RSS because I don't care about RSS and kinda find it to be an offensively ugly technology (an XML document to outline another XML document, seriously?).


I can get away with it on my site because barely anyone reads it. But people actually read Hex's site so he was getting complaints. So I added RSS generation.


# make rss
url="https://drew.monster"
cat head.rss > rss.xml
rss=""
while read i;do
	rss="$rss\n<item>\n<title>$(awk -F' ‒ ' '{ print $2 }' <<<$i)</title>\n<link>$url$(awk '{ print  $2 }' <<<$i | sed 's/\.gmi/.html/g')</link>\n<pubDate>$(date -d $(awk '{ print $3 }' <<<$i) +'%a, %d %b %Y %H:%M:%S %z')</pubDate>\n<description><![CDATA[$(cat $(awk '{ print $2 }' <<<$i | sed -e 's/\.gmi/.html/g' -e 's/^\///') | sed -e '1,/<section>/d' -e '/<footer>/,$d')]]></description>\n</item>\n\n"
done<<<$(sed -n '/[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}/p' index.gmi)
echo -e "$rss" >> rss.xml
cat tail.rss >> rss.xml &&
if ! grep "<a href=\"rss.xml\">rss</a>" index.html >/dev/null 2>&1;then
	sed -i '19 a <p><a href="rss.xml">rss</a></p>' index.html
fi

It's another big nasty mess of awk and sed, but it does the trick.


It just loops through links-in-the-right-format, extracts the information, and squirts it into an rss file. Then it schomps a link to the rss into index.html.


I've also added auto-differentiation between web and gemini links into the original big ugly sed command as a courtesy to those still holding-out on the legacy internet.


Full script is here:


https://gitlab.com/uoou/dotfiles/-/blob/master/stow/bin/home/drew/.local/bin/upgem


..

-- Response ended

-- Page fetched on Mon May 13 06:17:02 2024