猫でもわかるWebプログラミングと副業

本業エンジニアリングマネージャー。副業Webエンジニア。Web開発のヒントや、副業、日常生活のことを書きます。

LoLプレイヤー向けMasotodon summoners-riftodon.jp に当てられている変更

f:id:yoshiki_utakata:20181202055038p:plain

はじめに

この記事は Mastodonアドベントカレンダー 2日目の記事です。昨日の記事は S.H. さんの Mastodonを簡単に構築できるMastodonScript - ゲームリンクスの徒然なる日常 でした。

LoLプレイヤー向けMasotodon

私は、LoL日本サーバープレイヤー向けのMasotodon、 https://summoners-riftodon.jp を運用しています。

summoners-riftodon.jp

このインスタンスに施されているいくつかの変更についてお話しようと思います。

管理者を2人設定できるように

このインスタンスですが、僕ともうひとりの2人によって運営されています。

f:id:yoshiki_utakata:20181202055401p:plain

しかし、通常管理者には1人しか設定できません。そこで、無理やり2人設定できるようにしています。

github.com

これに関してはかなり元のコードにガッツリ変更をいれています。home_controllerの中にadminというのがあるので、ここにadmin_subを無理やり追加しています。

Mastodon本家のコードが変更された際に追従するのが面倒なので、本来このようにがっつり変更を入れるべきではないのですが、この変更に関しては仕方なかったです。

任意の人数指定できるともっと良いのですが、今回は2人指定できれば十分なので2人指定できるようになりました。Contact複数人設定したいという需要はありそうですが、結構な破壊的変更になりそうなので、本家にこの類の変更を入れるのは厳しいですかねー...

お知らせ表示

以下のような独自のお知らせ表示を用意しています。

https://user-images.githubusercontent.com/5354310/46995442-c9a00b80-d153-11e8-8c27-339a90ce5f63.png

これは以下のプルリクによって実装されています。

お知らせ機能 by yoshikyoto · Pull Request #13 · summoners-riftodon/mastodon · GitHub

この変更に関しては、Mastodon本家リポジトリの変更に簡単に追従できるように、大きな変更を announcements.js というファイルに分離し、index.js への変更は最小限にしてあります。これによってもし index.js になにか別の変更があったとしても、容易に変更に追従が可能になっています。

本来は /announcements.js にあるconstやCSSも、設定ファイルに分離したり、DBに入れて簡単に変更できるようにしたくなるところですが、わかりやすさと、本家のコードになるべく影響がないように、あえて全部このファイルにまとめてあります。

今後

トップページに表示されている「今こんな話をしています」ですが、流れの早い他インスタンスのタイムラインが流れてくると、そちらの方の話で埋もれてしまうので、localのタイムラインだけ流れてくるようにしたいなぁ...と思っています。

まとめ

  • マストドンに2つの独自の変更を入れてある
  • マストドン本家リポジトリのバージョンアップに簡単に追従できるように、後者のような本家のソースコードにあまり変更が入らない形が理想。

最後に

LoLプレイヤーの方、https://summoners-riftodon.jp にぜひご参加ください。