참여 통계에 스트리머 별 총 시간을 표시합니다
As of
// ==UserScript==
// @name SOOP - 참여 통계 리캡
// @namespace https://www.afreecatv.com/
// @version 2.0.0
// @description 참여 통계에 스트리머 별 총 시간을 표시합니다
// @author Jebibot
// @match *://broadstatistic.sooplive.co.kr/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=www.sooplive.co.kr
// @grant unsafeWindow
// @license MIT
// ==/UserScript==
(function () {
"use strict";
const container = document.createElement("div");
container.id = "recap";
container.style.height = "100%";
const chart = document.getElementById("containchart");
if (chart == null) {
return;
}
chart.parentNode.appendChild(container);
const oPage = unsafeWindow.oPage;
const setMultipleChart = oPage.setMultipleChart.bind(oPage);
oPage.setMultipleChart = (data) => {
setMultipleChart(data);
new unsafeWindow.Highcharts.Chart({
chart: {
renderTo: "recap",
width: 900,
height: Math.max(300, data.data_stack.length * 40),
zoomType: "xy",
},
title: {
text: null,
},
legend: {
enabled: false,
},
xAxis: {
type: "category",
},
yAxis: {
opposite: true,
title: {
text: null,
},
},
plotOptions: {
series: {
type: "bar",
colorByPoint: true,
},
},
tooltip: {
valueDecimals: 0,
valueSuffix: "분",
},
series: [
{
type: "bar",
name: "시간",
data: data.data_stack
.map((t) => [t.bj_nick, t.data.reduce((a, b) => a + b, 0) / 60])
.sort((a, b) => {
if (a[0] === "기타") {
return 1;
} else if (b[0] === "기타") {
return -1;
} else {
return b[1] - a[1];
}
}),
},
],
});
};
})();