https://github.com/tokuhirom/bsky-to-markdown
rss-to-twitter と同様の発想で rss からデータをとってきて github に保存するということも可能かもしれない。
この方法で bluesky の投稿もすべて記録しておくことができる。 お金はかからない。最高。
github actions は nodejs なら docker image 使わなくて( ・∀・)イイ!!ので、実装言語は nodejs とする。まずは nodejs のスクリプトを実装しよう。
azu/rss-to-twitter で使われていた gh-actions-template をテンプレートとしてプロジェクトを開始してみようかなと思った。が、ちょっといろいろと設定が入りすぎてて理解が大変そうだ。久々の github actions なのでイチから実装することとする。そのほうが結局理解が早そう。
rss-parser を使って rss をパースすることにしてみる。他に良い物があるのかもしれないが、chatgpt がおすすめしてきたので一旦これで。
とか、割と使い慣れてる技術スタックで実装していく。
実際、使うには以下のようにすれば良い。簡単ね。
name: Bluesky to Markdown
on:
schedule:
- cron: "*/15 * * * *"
workflow_dispatch:
permissions:
contents: write
jobs:
take-logs:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3
- uses: tokuhirom/bsky-to-markdown@v1
with:
rss_url: "https://bsky.app/profile/did:plc:lxhl5eomhtxsraduecf3n6p3/rss"
- name: Push built files
run: |
git config user.name "GitHub Actions"
git config user.email "[email protected]"
git add logs/
if ! git diff --cached --quiet; then
git commit -m "Add built files"
git push origin HEAD
else
echo "No changes to commit"
実際に動かしてみると以下のようになる。
https://github.com/tokuhirom/bsky-logs/blob/main/logs/202412.md
これで、Twilog 的なことができるようになりました。
本当は RSS じゃなくて API を使うようにしたほうが画像とかも取れていいかもだけど、まぁ一旦これで僕の要望は満たされた感じある。