このサイトにRSSの機能をつけた
Sun Nov 17 20:35:30 JST 2024 (modified: Sun Nov 17 20:42:35 JST 2024)
views: 965, keywords:自作シェル
なんとなくついったーとかSNSの拡散能力が弱まってきたっぽいので、SNS以前のいにしえの機能であるRSSを自分のサイトに装備しました。 URLは https://b.ueda.tech/rss/rss20.xml です。RSS関係のなんらかのツールを使っている人はぜひご登録ください。更新頻度は低いのであまり目障りにはならんはずです。
技術的なこと
このサイトがbashcms2というBash製のCMSでできていることは一部界隈で有名な話ですが、RSSもBashのバッチ処理で吐き出しています。GitHubに記事をpushすると、GitHubに登録してあるCGIのBashスクリプトがリポジトリの中身をpullしに行き、そのあとにバッチ処理がまわって上記URLのRSSファイルができます。
RSSのファイルはこのページのトップにある「最近の記事」のHTMLデータをsedでグリグリしてXMLにしています。コードは超やっつけなので見せたくありませんが、いちおうbashcms2のリポジトリのueda_siteブランチのfetchというスクリプトの一番下に書いてあります。超絶適当なので見ないでください。
ちょっと面白かったのは、RSSや各記事につけるタイムスタンプの時刻がGMTしかダメで、独自フォーマットでしかも一字一句間違えてはいけないという クソ 仕様だったので、各記事の作成日時のファイルのデータをこんな感じで変換しなければならなくなりました。
mtime=$(date -d "$(cat $datadir/$d/created_time) 9 hours ago" "+%a, %d %b %Y %H:%M:%S GMT")
#↑このファイルに記事の作成日付がJSTで入ってる
全然パイプつかってないのに長いワンライナーになってしまいました。 それから、副作用(+ものぐさ)で、「最近の記事」の各項目の下に、GMTの時刻が中途半端なフォーマットで出るようになりました。直すのめんどくさい。
現場からは以上です。