接続中の配信内のギフト/スパチャ一覧を取得したい

対象

わんコメ / テンプレート

利用OS

Windows

利用バージョン: Windows、わんコメやOBSのバージョン

Windows: 11
わんコメ: 6.0.0-rc.6
OBS: 0.0.0

PRO版を利用

している

過去ログ確認 (検索はこちらから)

した

ドキュメント確認 (公式サイト)

した

内容

独自のテンプレートを開発中なのですが、その中でわんコメ本体のギフト/スパチャ欄データを取得したいです。具体的には、ユーザごとにギフト・スパチャをそれぞれ累計いくらくれているかを画面に表示しようと思っています。今までの全てではなく、その時接続している配信内での累計です。
image

HTTP APIのSearch Comment JSON File (from 5.0.0)に検索パラメータの種類を説明しているらしいURLがありますが( https://github.com/auditassistant/json-query )、リンク先がnotfoundでした。「http://localhost:11180/api/comments/search」に特定のパラメータを加えればギフト/スパチャ欄のみ取得可能なのでしょうか?
HTTP API

こんにちは。
わんコメであれば、OneSDKが使えるので、それを使った取得方法を。
script.js はVueで書かれてますが、
data には filteredComments: []
methodsに下記のような関数 async fetchData() を入れてみて下さい
(コードはChatGPTに書いてもらいました。十分なテストは行ってないので、もし何らかのエラーが出たらすみません:sweat_drops:

data() {
    return {
      comments: [],
      filteredComments: []  // フィルター済みのコメントを格納するプロパティ
    };
  },
  methods: {
    getClassName(comment) {
      if (comment.commentIndex % 2 === 0) {
        return 'comment even';
      }
      return 'comment odd';
    },
    getStyle(comment) {
      return OneSDK.getCommentStyle(comment);
    },
    async fetchData() {
      try {
        // 非同期リクエストを実行し、結果をフィルター済みのコメントに格納
        this.filteredComments = await OneSDK.post("http://localhost:11180/api/comments/search", {
          "comments": ["hasGift=true"]
        });
        
        // リクエスト結果をコンソールに出力
        console.log(this.filteredComments);
        
        // 他の処理が必要な場合はここで行う
        // 例: this.someState = this.filteredComments;

      } catch (error) {
        // エラーが発生した場合の処理
        console.error('Error:', error);
      }
    }
  },

そして、 mounted 内で this.fetchData() を動かせば、
filteredCommentsに「スパチャ」のみのコメントが入るはず・・です
(this.fetchData() は、OneSDK.setup より後で使います)

スパチャの金額を合計するには、
methods に以下の関数を追加して下さい
この calculateTotalPrice() を mounted やhtmlで使えます。どうでしょうか。

    calculateTotalPrice() {
      // filteredComments内の全てのdata.priceを合計
      return this.filteredComments.reduce((total, comment) => {
        // comment.data.priceが存在しない場合は0を加算
        return total + (comment.data.price || 0);
      }, 0);
    }
「いいね!」 2

pintocuru様

ご回答ありがとうございます、
this.filteredComments = await OneSDK.post(“http://localhost:11180/api/comments/search”, {
“comments”: [“hasGift=true”]
});
が特に知りたかった部分でした、ありがとうございます。
これらをもとに自分で色々改変した結果、メンギフも含めて必要な値の合算ができることを確認できました!

「いいね!」 2

トピッククローズ:質問解決済のため