:don: 170714

WebPush対応

Web Push Notifications by sorin-davidoi · Pull Request #3243 · tootsuite/mastodon

ページを開いていないときでも機能するプッシュ通知ですね。Gmailやなんかでも使われてるやつ。スマホではAndroidChromeが対応してるとかどうとか。

admin視点ではWebPush用の鍵を生成(取得?)して .env.production に記載する必要があります。これは rake mastodon:webpush:generate_vapid_key でいけるようになってます。なりました

絵文字をサーバー側でUnicodeに変換

Fix #4149, fix #1199 - Store emojis as unicode by Gargron · Pull Request #4189 · tootsuite/mastodon

これまで :emoji: 形式で書かれた絵文字はJS側で処理していたのを、サーバー側でUnicode絵文字に変換するように。JS側の負担が減るのもそうですが、:emoji: 形式に対応していないクライアントでも正しく表示されるようになります。 (フォントがその絵文字に対応していれば、ではあるけども)

ところで、元々emojione付属の正規表現を使って行っていた、JS側での絵文字検出・SVGへの置き換えも、しばらく前から独自のものに置き換えられています。加えて上記の変更。使ってない部分がほとんどなのでは、ということで必要な部分だけ取り込むようになりました。gzip後でも40KB程の削減になったようです。

🎄🔨 Force tree shake emojione by sorin-davidoi · Pull Request #4202 · tootsuite/mastodon

惜しむべくは、title属性に埋め込まれていた、つまりツールチップとして表示されるshortnameのヒントがなくなってしまうこと。自分で入力するときの参考に、また絵文字の意味を理解するのに便利だったけど、まあPCでしか使えない機能に場所取るのかと言われると…userscriptを復活させるか…。

購読リクエストへのHTTP署名

HTTP signatures by Gargron · Pull Request #4146 · tootsuite/mastodon

Mastodonが送信するHTTPリクエストに、アカウントによる署名を付けられるように、またそれを検証できるようにというもの。これがどう役に立つか。

トゥートの配信に使われるWebSubの購読リクエストには、自らがどのユーザであるかという証明が含まれていません。フォロワー限定のトゥートやダイレクトトゥートを身元のわからない購読に配信するわけにはいかないので、これまではコールバックURLのドメインとアカウント名のドメインを比較していました。が、これだとアカウント名のドメインとサーバーを動かすドメインを別にしたい時に不便です。

ここでWebSubの購読リクエストにアカウントによる署名が付けられれば、その購読が確かにそのアカウントによるものとわかるので、安心して配信することができます。というのがこちら。

Fix #2672 - Connect signed PuSH subscription requests to instance domain by Gargron · Pull Request #4205 · tootsuite/mastodon

ちなみに、これによって購読する側のインスタンスMastodon流のHTTP署名に対応しているかどうかを識別することができるので、privateやdirectといった公開範囲の指定に対応していない他の OStatus 互換のソフトウェア、例えば GNU Social からの購読にはそれらのトゥートを流さない、といった制御も可能になります。

自分の公開ページにnoindexを付けられるように

Add option to opt out of search engines on public profile/status pages by Gargron · Pull Request #4199 · tootsuite/mastodon

プロフィールページや個別トゥートページに noindex を出力する、という設定がユーザー設定に追加されました。要は検索避けですね。

mastodon:media:remove_remote の閾値を設定できるように

Fix #3904 - Adjustable time period for mastodon:media:remove_remote via NUM_DAYS by Gargron · Pull Request #4191 · tootsuite/mastodon

リモートインスタンスから受信した添付メディアのうち、古いものを削除する mastodon:media:remove_remote というタスクがあるのですが、その閾値が1週間固定だったのが、環境変数で指定できるようになりました。