1
0
Fork 0
mirror of https://github.com/DanielnetoDotCom/YouPHPTube synced 2025-10-04 10:19:24 +02:00
Oinktube/plugin/Live/report.php
Caleb Mazalevskis 26cc9a2e47
Live plugin patch.
'!==' is more secure than '!=' due to type looseness/strictness.
2022-02-03 08:54:22 +08:00

304 lines
No EOL
10 KiB
PHP

<?php
require_once '../videos/configuration.php';
require_once $global['systemRootPath'] . 'objects/user.php';
require_once $global['systemRootPath'] . 'plugin/Live/Objects/LiveTransmition.php';
require_once $global['systemRootPath'] . 'plugin/Live/Objects/LiveTransmitionHistory.php';
if (!User::canStream()) {
return false;
}
global $isAdminPanel;
$_POST['sort'] = array();
$_POST['sort']['created'] = 'DESC';
$_POST['sort']['total_viewers'] = 'DESC';
$_POST['sort']['max_viewers_sametime'] = 'DESC';
$_REQUEST['rowCount'] = 30;
if (!empty($isAdminPanel)) {
$lives = LiveTransmitionHistory::getAllFromUser(0, true);
} else {
$lives = LiveTransmitionHistory::getAllFromUser(User::getId(), true);
}
$labelsArray = [];
$valueArray = [];
$valueArraySameTime = [];
foreach ($lives as $value) {
//var_dump($lives);
if(!intval($value['total_viewers'])) {
continue;
}
if (!empty($isAdminPanel)) {
$label = $value['created'] . "\n users_id#{$value['users_id']} " . User::getNameIdentificationById($value['users_id']);
} else {
$label = $value['created'] . "\n" . $value['title'];
}
$labelsArray[] = $label;
$valueArraySameTime[] = intval($value['max_viewers_sametime']);
$valueArray[] = intval($value['total_viewers']);
}
$_POST['sort'] = array();
$_POST['sort']['total_viewers'] = 'DESC';
if ($isAdminPanel) {
$lives = LiveTransmitionHistory::getAllFromUser(0, true);
} else {
$lives = LiveTransmitionHistory::getAllFromUser(User::getId(), true);
}
$labelsArrayMoreViews = [];
$valueArrayMoreViews = [];
$valueArraySameTimeMoreViews = [];
foreach ($lives as $value) {
//var_dump($lives);
if(!intval($value['total_viewers'])) {
continue;
}
if (!empty($isAdminPanel)) {
$label = $value['created'] . "\n users_id#{$value['users_id']} " . User::getNameIdentificationById($value['users_id']);
} else {
$label = $value['created'] . "\n" . $value['title'];
}
$labelsArrayMoreViews[] = $label;
$valueArraySameTimeMoreViews[] = intval($value['max_viewers_sametime']);
$valueArrayMoreViews[] = intval($value['total_viewers']);
}
$_POST['sort'] = array();
$_POST['sort']['max_viewers_sametime'] = 'DESC';
if (!empty($isAdminPanel)) {
$lives = LiveTransmitionHistory::getAllFromUser(0, true);
} else {
$lives = LiveTransmitionHistory::getAllFromUser(User::getId(), true);
}
$labelsArrayMoreViewsSameTime = [];
$valueArrayMoreViewsSameTime = [];
$valueArraySameTimeMoreViewsSameTime = [];
foreach ($lives as $value) {
//var_dump($lives);
if(!intval($value['max_viewers_sametime'])) {
continue;
}
if (!empty($isAdminPanel)) {
$label = $value['created'] . "\n users_id#{$value['users_id']} " . User::getNameIdentificationById($value['users_id']);
} else {
$label = $value['created'] . "\n" . $value['title'];
}
$labelsArrayMoreViewsSameTime[] = $label;
$valueArraySameTimeMoreViewsSameTime[] = intval($value['max_viewers_sametime']);
$valueArrayMoreViewsSameTime[] = intval($value['total_viewers']);
}
?>
<div id="liveVideosMenu" class="tab-pane fade" style="padding: 10px;">
<div class="panel panel-default">
<div class="panel-heading when"># <?php echo __("Last Lives"); ?></div>
<div class="panel-body">
<?php
$liveChartLatest = array();
foreach ($valueArray as $i => $value) {
if (empty($valueArray[$i])) {
continue;
}
$liveChartLatest[] = $i;
?>
<div class="col-md-3">
<canvas id="liveChartLatest<?php echo $i; ?>" ></canvas>
</div>
<?php
if (count($liveChartLatest) >= 4) {
break;
}
}
?>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading when"># <?php echo __("Timeline"); ?></div>
<div class="panel-body">
<div class="col-md-12">
<canvas id="liveChart" height="150" ></canvas>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading when"># <?php echo __("More views"); ?></div>
<div class="panel-body">
<div class="col-md-12">
<canvas id="liveChartMoreViews" height="90" ></canvas>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading when"># <?php echo __("More views same time"); ?></div>
<div class="panel-body">
<div class="col-md-12">
<canvas id="liveChartMoreViewsSameTime" height="90" ></canvas>
</div>
</div>
</div>
</div>
<script>
var ctxLiveChat = document.getElementById("liveChart");
var liveChartData = {
labels: <?php echo json_encode($labelsArray); ?>,
datasets: [{
backgroundColor: 'rgba(255, 0, 0, 0.3)',
borderColor: 'rgba(255, 0, 0, 0.5)',
label: '# <?php echo __("Total Views"); ?>',
data: <?php echo json_encode($valueArray); ?>
}, {
backgroundColor: 'rgba(0,255, 0, 0.3)',
borderColor: 'rgba( 0,255, 0, 0.5)',
label: '# <?php echo __("Total Viewers Same Time"); ?>',
data: <?php echo json_encode($valueArraySameTime); ?>
}]
};
var ctxLiveChatMoreViews = document.getElementById("liveChartMoreViews");
var liveChartDataMoreViews = {
labels: <?php echo json_encode($labelsArrayMoreViews); ?>,
datasets: [{
backgroundColor: 'rgba(255, 0, 0, 0.3)',
borderColor: 'rgba(255, 0, 0, 0.5)',
label: '# <?php echo __("Total Views"); ?>',
data: <?php echo json_encode($valueArrayMoreViews); ?>
}]
};
var ctxLiveChatMoreViewsSameTime = document.getElementById("liveChartMoreViewsSameTime");
var liveChartDataMoreViewsSameTime = {
labels: <?php echo json_encode($labelsArrayMoreViewsSameTime); ?>,
datasets: [{
backgroundColor: 'rgba(0,255, 0, 0.3)',
borderColor: 'rgba( 0,255, 0, 0.5)',
label: '# <?php echo __("Total Viewers Same Time"); ?>',
data: <?php echo json_encode($valueArraySameTimeMoreViewsSameTime); ?>
}]
};
$(document).ready(function () {
var liveChart = new Chart(ctxLiveChat, {
type: 'bar',
data: liveChartData,
fill: false,
responsive: true,
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true,
callback: function (value, index, values) {
if (Math.floor(value) === value) {
return value;
}
}
}
}]
},
legend: {
display: false
},
responsive: true,
title: {
display: true
}
}
});
var liveChartMoreViews = new Chart(ctxLiveChatMoreViews, {
type: 'bar',
data: liveChartDataMoreViews,
fill: false,
responsive: true,
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true,
callback: function (value, index, values) {
if (Math.floor(value) === value) {
return value;
}
}
}
}]
},
legend: {
display: false
},
responsive: true,
title: {
display: true
}
}
});
var liveChartMoreViewsSameTime = new Chart(ctxLiveChatMoreViewsSameTime, {
type: 'bar',
data: liveChartDataMoreViewsSameTime,
fill: false,
responsive: true,
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true,
callback: function (value, index, values) {
if (Math.floor(value) === value) {
return value;
}
}
}
}]
},
legend: {
display: false
},
responsive: true,
title: {
display: true
}
}
});
<?php
foreach ($liveChartLatest as $i) {
?>
var liveChartLatest<?php echo $i; ?> = new Chart(document.getElementById("liveChartLatest<?php echo $i; ?>"), {
type: 'doughnut',
data: {
labels: [<?php echo json_encode(__('Total Viewers')), '+ " (' . $valueArraySameTime[$i] . ')"'; ?>, <?php echo json_encode(__('Max Viewers Same Time')), '+ " (' . $valueArray[$i] . ')"'; ?>],
datasets: [{
label: '',
data: <?php echo json_encode(array($valueArraySameTime[$i], $valueArray[$i])); ?>,
backgroundColor: [
"#00FF0055",
"#FF000055",
],
}]
},
options: {
responsive: true,
plugins: {
legend: {
position: 'top',
},
title: {
display: true,
text: <?php echo json_encode($labelsArray[$i]); ?>
}
}
},
});
<?php
}
?>
});
</script>