KnzkLive: 「Mastodonに投稿しない」コメントが面倒だった話
KnzkLiveについてはこちらを御覧ください。
https://ci-en.net/creator/2092/article/23720
最初に、KnzkLiveのコメントの仕組みについて
KnzkLiveは、Mastodonのハッシュタグタイムライン「#knzklive_(配信ID)」を取得し、
またコメント投稿も自動的にハッシュタグを付けているだけので、
コメントに見せかけたただの簡易Mastodonクライアントのような仕組みでした。
そのためコメント部分の実装はすぐに終えることができていました。
また、Mastodonのハッシュタグを使用する事で、KnzkLiveにログインできない他インスタンスのアカウントからもコメントする事が可能です。
この仕様による問題
しかし、この仕様だと配信に興味のないフォロワーのHTLを汚してしまうという問題があり、色々なユーザーや神崎に改善できないかというお話を頂いていました。
そもそも、ツイキャスやニコ生など、大体の配信サイトでは独自のコメントシステムで独自のデータベースを構築している為、特に問題なくコメントできます。
KnzkLiveでもそういった実装をすればいいじゃん、と言われてもKnzkLiveは特殊なので単純にそういった仕様にするわけにもいかないのです。
最初にも書いたように、KnzkLiveはKnzkLiveにログインできない他インスタンスのアカウントからもコメントする事ができます。これは、Mastodonのハッシュタグを使用しているからできるものであり、例えば他配信サイトのように完全に分離してしまうとこれが出来なくなってしまいます。
ツイキャスはTwitterに投稿する/しない選べるじゃん
という事も伺った事がありますが、(これはあくまで私の考えですが)ツイキャスのコメントは完全に独自DBから読み込んでいて、投稿時にTwitter投稿を選ぶ事でコメントのついでにTwitterに投稿するといった一方通行の仕様だと思います。
KnzkLiveでは、投稿するだけでなくハッシュタグの投稿を拾っていかないといけない双方向の仕様なのでそう簡単な問題でもありませんでした...
最終的に実装した仕様
最終的に、Mastodonのハッシュタグは使用したまま、Mastodonに投稿したくないコメント用に別で独自コメントシステムを作成し、クライアントが両方の投稿を混ぜ合わせるという最強に意味不明な仕様になりました。
私の謎落書きです。
独自のコメントシステムは、基本的にPHPで処理し、受信のみsocket.ioを使用しています。
まとめ
とまあ、割と大変でしたが、無事実装する事ができました。
しかし、現状の問題としては、PCとAndroidは正常に閲覧できるのに、iOSは時刻処理が上手く行っていないのか、時系列がぐちゃぐちゃになっているので、これも直していきたいです。