我是中型流媒体,最近从StreamLabs获得了忠诚度系统,其中包括每个用户在流中累积的积分。但是,我无法使用自己的JavaScript来定制积分系统并添加新功能,因此我想将另一个开源twitch bot(Phantombot)与StreamLabs系统结合使用。我的观众也非常喜欢StreamLabs叠加层,因此我不能只走纯Phantombot路线。
我有1,000多个用户,每个用户都有自己的积分需要转移。 StreamLabs没有提供一种干净的方法来导出包含用户及其点值的excel文档。我检查了列出所有要点的页面,其结构如下:
<tbody>
<tr>
<td class="table_name"> String </td> <!-- The name of the user -->
<td class="table__message"> Number </td> <!-- The user's amount of points -->
<td class="table__controls">
<div class="pane-dropdown">
<a class="pane-dropdown__toggle"> <!-- The cog opens the dropdown list -->
<span>
<i class="fa fa-cog"> <!-- There she is. -->
::before
</i>
</span>
</a>
<div class="pane-dropdown__menu" style="display: none;">
<span>
<ul class="pane-dropdown__list">
<li>
<a class="pane-dropdown__link">Edit Points</a>
<li>
<li>
<a class="pane-dropdown__link warn">Block User</a>
</li>
<li>
<a class="pane-dropdown__link warn">Reset Points</a>
</li>
</ul>
</span>
</div>
</div>
</td>
</tr>
<!-- More table rows for each user -->
这是页面外观的链接:
有没有办法让我循环浏览每个页面,为每个用户获取要点,然后将信息以有意义的格式(例如excel文档)放置?
我知道我主要自学的基本JavaScript,并且具有很好的直觉-但是像这样的项目完全超出了我的技能范围。我正在考虑使用for循环将每个用户的对象推送到数组,并为点和属性命名,然后将这两个属性全部导出到.csv文档。但是,我不知道该怎么做,或者是否有可能(但是如果是冰棒,则有可能),所以我认为这是有可能的。任何朝着正确方向前进的人将不胜感激。
我的想法是,在构建脚本时,类table_name和table__message可能是一个不错的起点-有任何指导吗?
最佳答案
看来Streamlabs API有几种与Points交互的选项。
浏览示例,您可能正在寻找“组获取点”:
var data = JSON.stringify(false);
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://streamlabs.com/api/v1.0/points/group_get_points?access_token=access_token&channel=channel&usernames=usernames");
xhr.send(data);
这将导致一系列带有其分数的用户,类似于:
[
{
username: "sunny601",
points: 94
},
{
username: "sunny602",
points: 103
}
]
有关更多详细信息,请参见Streamlabs API Documentation on Points