チャット削除反映の無効化

対象

テンプレート

対象となるサービス

すべて

内容

配信中、チャットをしては削除し、チャットをしては削除し……を繰り返すリスナーがいます。
参考URL:https://www.youtube.com/live/tRlRLcncIqs?si=m-J8xcWRflNCKQxV&t=1280

わんコメ本体のほうに表示ログは残るのですが、
テンプレート表示から削除されないようにするスクリプトや何らかの方法はありますでしょうか?

ストーリムチャット欄から消えてもキミの発言は配信画面からは消えないぞ、というのを実現したいです。

こんにちは
script内のmounted部分を下記のように書き換えると近い動作ができるかと思います
以下コードサンプルなので環境やカスタマイズしたいテンプレートに合わせて調整してください(特にsetupの設定)

mounted () {
  OneSDK.setup({
    mode: 'diff', // 追加差分のみ取得するモード
  })
  OneSDK.subscribe({
    action: 'comments',
    callback: (comments) => {
      if (comments.length !== 0) {
        const newComments = [...comments, ...this.comments]
        this.comments = newComments.slice(0, 100) // 最大100件まで画面表示
      }
    }
  })
  OneSDK.connect()
}

OneSDKのmode: ‘diff’ は追加されたコメントのみをsubscribeで取得するようにする設定ですので削除は含まれなくなります
ただしこのモードは「追加された」ときしか表示しないため、リロードなどすると消えてしまう点はご注意ください

1 Like

使いたいカスタマイズしたテンプレートで上手に動かなかったので、
chatでの比較動作です。
書き方が間違っているのか、
コメントが逆流し、詰まってしまうという動きになってしまいました。
どこが間違っているか教えていただけると幸いです。

横から失礼します、わたしもちょっと手元で改造試してみましたが、確かにchat逆になりますねw
逆になる場合は以下のところも逆にするとうまくいきましたのでしばぉさんとこでもできるか試してみてください:+1:
[...comments, ...this.comments] これで逆になる場合は
↓↓↓
[...this.comments, ...comments] this.の有り無しを入れ替える感じ

上手く動作しました!これでイタズラ(?)対策できます!
ありがとうございます!

1 Like

お世話になります。
上記スクリプトなのですが、一定時間経過するとコメントが反映されない不具合が出てくるのが発覚しました。
何か対策はありますでしょうか……?
参考:Twitch

あぁ、ここで受信が100件まで、と制限がかかっているのですね……
一応、極端な数字を入れて誤魔化しますが、
これを無制限にすることは可能ですか?

なるほど、手元では試せていませんが、その感じだとslice(-100)などとしてみるといいかもしれませんね:thinking: