gofujita notes

on outline processing, writing, and human activities for nature


Org から Mastodon と Bluesky へマルチポストする

日々かきながら考える場としてつかっている org mode ファイルのアウトラインの一部、narrowing (focus, zoom in) している範囲の文字列だけを Mastodon とBluesky へマルチポストする関数をつくったときのメモ。

大ざっぱな流れだけをかいています。コードはでてきません。

Narrowing している範囲の文字列を Mastodon へポストする関数は、このあいだつくった。

この関数 (masto-post-narrowedregion という名前にした) では、まず指定範囲の文字列を Emacs の kill-ring とよばれる場所に一時保存する。それから mastodon.el という Emacs 用 Mastodon client (Emacs で Mastodon をつかうアプリのようなもの) を呼び出し、ポスト用 buffer を開き、そこへ kill-ring から文字列データを yank (copy) する。最後にその文字列を Mastodon へポストするよう mastodon.el にお願いする。

さて問題の Bluesky へポストする関数。

Bluesky へはテキストファイル (ここでは post.txt という名前にしている) からであればポストできる関数をつくってある。bsky という CLI (command line interface) との合わせ技。まずは、この関数に手を加えるところからはじめよう。

で、おさらい。この関数 (bsky-post-afile という名前にした) では、Shell (zsh) を呼びだし、bsky CLI へポストしてくださいというコマンドを送る。このとき、ポストしたい文字列データは post.txt から送られる。

ということは、この post.txt へ Emacs の kill-ring に一時保存している文字列データを yank し保存すれば、あとは上の bsky-post-afile と同じ手順でポストできる。ポストしたあと、次回に影響しないよう post.txt のデータを削除して終了。

仕上げ。Mastodon へポストするコードと Bluesky へポストするコードをひとつにする。名前は masto-bsky-post-narrwedregion にしよう。

これで org mode でかいている文章の一部を Mastodon と Bluesky へマルチポストする関数の最初のコードができた。とりあえず動く。このコードを出発点にして、しばらくチューニングをつづける。