kirishima2018

これはアスタルテゆるゆるアドベントカレンダー 2018 3日目の記事です。

私について

最初に自己紹介ですが、ねじわさと申します。
普段はknzk.meのモデレーターっぽい事をしていて、KnzkAppやKnzkLiveとか色々OSS作ってました。
JavaScriptとかPHPが好きな学生です。

超どうでもいいけど今日(12/3)から私の学校期末テストなんですよね。

霧島鯖との関係

さて、普段はknzk.meにいるので霧島鯖の方はほぼほぼ私を知らないでしょう。

きりひな(と勝手に呼んでいる)とはいつ頃からは忘れたけどそこそこ前からの縁で、たまーに遊びにくる感じです。
また、霧島鯖の改造Mastodonはベースが旧Knzk.meの改造になっているので、そこら辺関係でも関わりがあったりします。

今回やった事

皆さんは霧島鯖の左下にあるRadio機能を使っていますでしょうか。
統計データを取っていないのでどのくらいの割合で使われているかなどは分かりませんが…

そのRadio機能なのですが、それも元はKnzk.meで実装していたものが霧島鯖に移植されたものです。
これは、オープンソースのプレイヤーを無理やりiframeで埋め込んでいるという形でした。

しかし、これによる問題が二点ほどありました。

デザインがダサい

まあそのままなのですが、無理やり埋め込んでいるのでとりあえずダサいです。
スクロールバーとかも出てくるし。

プレイヤーのライセンスが心配

実は大丈夫だった説もある

元々のKnzk.meはGitHub上でプレイヤー部分のみsubmoduleで管理していた(らしい)のですが、
霧島鯖では普通にGitHub上にアップロードされていたため割と心配でした。

また、プレイヤーのコードを改変するPRがあったのですが、それもどうなんだろうなぁ…という話があったりして、
どうせなら作り直そうみたいな感じになりました。

と、いう訳で

JavaScriptは出来てもReactが一切さっぱりピーマンだった私が出したPRです。
Kirishima21/mastodon#21

多分直接DOMを操作している時点でReactとは呼べない気がしますが、一応それっぽいコードは書けました。

仮想DOMの仕組みが全然分からない

これにより、元々Radio上部にあったアナウンスメントの部品を使用する事で一体感が出て、
ライセンスの面でも問題無くなったのでまあ良しとしましょう。(適当)

今後の課題

このプレイヤーでは音量調節ができなかったり、曲名表示ができないので、暇が出来たら直していきたいですし、
もしくは霧島鯖にいるプログラミングできる方が気になっている点を直してくださると有難いです。

最後に

期末テスト、ヤバい。

あとクソどうでも良いけど今日(12/3)私の誕生日なのでもし良ければ @[email protected] に「おめでとーーーー!!!」ってリプ投げまくってくれると嬉しいです。

干し芋投げてくれると嬉しいなー!(