🌀

Twitter のアイコンを 1 日 1 度ずつ回転させることで得られたもの

2021/12/23に公開

これは GitHub Actions Advent Calendar 2021 の 23 日目の記事です。

はじめに

自分は Twitter をメモ代わりとしてつかっていて、あまり知り合いとトークすることはありません。でもたまにはしてみたいじゃないですか。 リプライ続いている人のツイートみると羨ましくなっちゃいますよね (??)
そうだ、Twitter のアイコンを 1 日 1 度ずつ回転させれば誰かに気づいてもらえるはず!これで Twitter ライフが充実すること間違いなし!!!!!!ついでに 1 年の残り日数がわかるので便利!!!!!!!!!!!!!!!

これは作るしかありませんね。

というわけでつくりました

アニメーションにするとこんな感じです:

ファイルサイズ制限によりかなり圧縮してアップロードしたので画質があまりよくないです... こちらにフルサイズ版があります: https://github.com/Kumassy/kumassy-rotator/blob/main/animation/movie.gif

もとのかわいい Kumassy アイコンはこちらです:

これを ImageMagick で加工して回転させます。例えば 30 度回転させたい場合は、このようなコマンドを実行します:

convert kumassy-icon-small.jpg -distort SRT +30 out.jpg


あらかわいい

ちなみに丸く切り取るとこんな感じ:

Twitter ではフロントエンド側でアイコンを丸く切り取って表示しているので、もとの四角い画像のまま Twitter にアップロードすれば OK です。
ImageMagick の使い方がわかったところで、アイコンの回転から Twitter へのアップロードまでを自動化してくれるスクリプトを書きましょう。最近は Rust 言語がすきなので、 Rust で実装してみました:
https://github.com/Kumassy/kumassy-rotator
Twitter Client には egg-mode を使用しました。

よしなに環境変数を設定して、

cargo run

すれば毎日ちょっとずつ違ったアイコンを Twitter にアップロードしてくれます。
毎日 cargo run を実行するわけにはいかないので、 GitHub Actions の定期実行機能を使って 1 日 1 回実行させるようにしました

https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows#scheduled-events

完璧ですね ✨

あれ、傾き足りなくない?

あるとき、 Kumassy アイコンの傾きが 60 度くらい足りないことに気づきました。

メールボックスを漁ってみると、

というメールが来ていました。 GitHub Repository をみてみると

となっていました。
どうやら 60 日間 Repository に更新がないと、定期実行 Actions は無効化されるようです。 Enable Workflow すると再びスクリプトが元気に動き始め、 3 ヶ月分くらい一気にアイコンが回転しました。

ちなみに

定期実行 Actions が無効化される 1 週間前になるとこのようなメールが届きます。 GitHub からきたメールはきちんと見るようにするクセをつけておくといいかと思います。

リプライは届きましたか?

1 通も届きませんでした。
アイコンを回転させたところで、本人すら回転していることに気づきませんでした。

まとめ

  • Twitter のアイコンを 1 日 1 度ずつ回転させたくなったので、 Rust でスクリプトを書いて回転させてみました
  • GitHub Actions の定期実行を使う場合は、 Repository に長期間変更がないと自動的に定期実行 Actions は無効化されます
  • Twitter のアイコンを 1 日 1 度ずつ回転させてもリプライはこない

Discussion