Mastodon と Bluesky でボット運用はじめました【2023-12-04 更新】

no extension

自作ツール goark/toolbox

5月頃に思いついてコマンドラインで Mastodon や Bluesky に投稿できる goark/toolbox というツールを作った。 ついでに Web 上の情報を収集する機能も付けてボットを構成できるようにした。

実際の運用は自宅 PC で cron を回している(自宅 PC は24時間稼働中)。 Go ならシングルバイナリで取り回しできるし,この程度ならクラウドとか Docker とか要らんですよ。

Bluesky で非公式 APOD 配信ボットを作った

Mastodon には APOD (Astronomy Picture of the Day) の非公式配信ボットがいくつかあるのだが(#apod で検索するとアホほど出てくる),できたばかりの Bluesky で運用している人はいない様子。 なら作っちゃえ! というわけで作った。

データを収集するために NASA API をハンドリングする機能を goark/toolbox に組み込んだ。

API でクレジットが示されているものは明示しているが, NASA 関連の画像・動画については示されない?

あと API がしょっちゅう 504 で落ちるのね。 Web ページは全然構造化されてなくてスクレイピングする気も起こらない。 というわけで,生暖かく見守っていただければ(笑)

自ブログおよび自作パッケージの更新情報も配信

Bluesky や Mastodon に記事を投稿する仕組みが整ったので,フィードを読み込む機能も組み込んで自ブログや Flickr にアップした写真の更新情報を以下の Mastodon/Bluesky のメインアカウントに配信できるようにした。

ちなみに Go でフィードを取得するには mmcdole/gofeed パッケージを使うのが便利。

これでフィードを自動配信する仕組みも用意できたので,自ブログ以外に github.com/goark で公開している自作パッケージの更新情報も自動投稿することにした。

GitHub のリリース情報のフィードは以下の URL で取得できる。

https://github.com/username/repositoryname/releases.atom

自作パッケージの更新情報は以下のアカウントで自動投稿している。

goark.fedicity.net については「個人用 Mastodon サーバを立てた」を参考にどうぞ。

@goark.bsky.socialgoark/toolbox の動作テスト用に取ったアカウントだけど,遊ばせておくのもナニなので半ボットとして運用することにした。 まぁ,今後もテスト用にゴミ投稿することもあると思うけど,そこはご容赦を(笑)

その他のフィードも配信するぞ

調子に乗って自作以外でお世話になっている Go パッケージ(プロダクト)や Go 関連記事も以下のアカウントに自動投稿することにした。

@osanpo.bsky.social は Bluesky のボット運用のために取ったアカウント。

監視対象は以下のサイト(今後追加予定):

さらに調子に乗って Go 関連以外にも私の関心領域にかかる情報も収集・投稿することにした。 投稿先は以下の通り:

監視対象は以下のサイト(今後追加予定):

上のリスト(の一部)は元々 Slack 上で監視していたものだが,プライベートでも仕事でもあまり Slack を使わなくなったので(仕事では主に Teams) Mastodon/Bluesky に移行することにしたのだ。 ただ,今までの反省で,やたら滅多とフィードを食い散らかして自 TL を埋め尽くすのは嬉しくないので,流量についてはチューニングしながら運用する予定である。

本来はフィードのチェックは Feedly とか使うべきだし,本当によく見るものだけに厳選したい。 特に青空文庫(@aozorabunko.bsky.social)とか,自身でブログ記事の更新情報を積極的に上げておられるユーザとかのフィードは外している。

今後は…

今の goark/toolbox ってフィード情報をキャッシュするのにテキストファイルを使ってるんだよな。 これだとそろそろ耐えられない気がするので SQLite を導入するかなぁ。

Pure Go で実装するならこのあたりか?

まぁ,ぼちぼちやろう。

Twitter ? 知らんですよ。 IFTTT にも金を払う気はないし,向こうでの活動は最小限に留めたい。

ブックマーク

参考図書

photo
プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
Alan A.A. Donovan (著), Brian W. Kernighan (著), 柴田 芳樹 (翻訳)
丸善出版 2016-06-20
単行本(ソフトカバー)
4621300253 (ASIN), 9784621300251 (EAN), 4621300253 (ISBN), 9784621300251 (ISBN)
評価     

著者のひとりは(あの「バイブル」とも呼ばれる)通称 “K&R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。

reviewed by Spiegel on 2016-07-13 (powered by PA-APIv5)

photo
初めてのGo言語 ―他言語プログラマーのためのイディオマティックGo実践ガイド
Jon Bodner (著), 武舎 広幸 (翻訳)
オライリージャパン 2022-09-26
単行本(ソフトカバー)
4814400047 (ASIN), 9784814400041 (EAN), 4814400047 (ISBN)
評価     

2021年に出た “Learning Go” の邦訳版。私は版元で PDF 版を購入。 Go 特有の語法(idiom)を切り口として Go の機能やパッケージを解説している。 Go 1.19 対応。

reviewed by Spiegel on 2022-10-11 (powered by PA-APIv5)