Auto commit: 2026-02-18T23:09:04.712Z
This commit is contained in:
parent
c09fce8f06
commit
da13426e59
38
admin.php
38
admin.php
@ -187,7 +187,7 @@ $requests_today = $stmt->fetchColumn();
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row mt-4">
|
<div class="row mt-4">
|
||||||
<div class="col-md-6">
|
<div class="col-md-4">
|
||||||
<div class="card p-4 h-100">
|
<div class="card p-4 h-100">
|
||||||
<h5><i class="bi bi-person-heart text-success"></i> Top 5 Artistas Más Pedidos</h5>
|
<h5><i class="bi bi-person-heart text-success"></i> Top 5 Artistas Más Pedidos</h5>
|
||||||
<div id="top-artists" class="mt-3">
|
<div id="top-artists" class="mt-3">
|
||||||
@ -195,7 +195,7 @@ $requests_today = $stmt->fetchColumn();
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-4">
|
||||||
<div class="card p-4 h-100">
|
<div class="card p-4 h-100">
|
||||||
<h5><i class="bi bi-star-fill text-success"></i> Top 5 Canciones Más Pedidas</h5>
|
<h5><i class="bi bi-star-fill text-success"></i> Top 5 Canciones Más Pedidas</h5>
|
||||||
<div id="top-songs" class="mt-3">
|
<div id="top-songs" class="mt-3">
|
||||||
@ -203,6 +203,14 @@ $requests_today = $stmt->fetchColumn();
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<div class="card p-4 h-100 border-info" style="background: rgba(13, 202, 240, 0.05);">
|
||||||
|
<h5><i class="bi bi-trophy-fill text-info"></i> Ranking de Oyentes (Top 5)</h5>
|
||||||
|
<div id="top-requesters" class="mt-3">
|
||||||
|
<p class="text-secondary text-center">Cargando ranking...</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row mt-4">
|
<div class="row mt-4">
|
||||||
@ -589,15 +597,41 @@ $requests_today = $stmt->fetchColumn();
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function fetchTopRequesters() {
|
||||||
|
const requestersDiv = document.getElementById('top-requesters');
|
||||||
|
try {
|
||||||
|
const response = await fetch('api/get_top_requesters.php');
|
||||||
|
const data = await response.json();
|
||||||
|
|
||||||
|
if (data.success) {
|
||||||
|
if (data.data.length === 0) {
|
||||||
|
requestersDiv.innerHTML = '<p class="text-secondary text-center">Sin datos aún</p>';
|
||||||
|
} else {
|
||||||
|
requestersDiv.innerHTML = '<div class="list-group list-group-flush bg-transparent">' +
|
||||||
|
data.data.map((item, index) => `
|
||||||
|
<div class="list-group-item bg-transparent text-white border-secondary d-flex justify-content-between align-items-center">
|
||||||
|
<span>${index + 1}. ${item.requester}</span>
|
||||||
|
<span class="badge bg-info rounded-pill">${item.total_requests} peticiones</span>
|
||||||
|
</div>
|
||||||
|
`).join('') + '</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error fetching top requesters:', error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fetchRequests();
|
fetchRequests();
|
||||||
fetchStats();
|
fetchStats();
|
||||||
updateNowPlaying();
|
updateNowPlaying();
|
||||||
fetchAnnouncements();
|
fetchAnnouncements();
|
||||||
|
fetchTopRequesters();
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
fetchRequests();
|
fetchRequests();
|
||||||
fetchStats();
|
fetchStats();
|
||||||
updateNowPlaying();
|
updateNowPlaying();
|
||||||
fetchAnnouncements();
|
fetchAnnouncements();
|
||||||
|
fetchTopRequesters();
|
||||||
}, 15000);
|
}, 15000);
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
27
api/get_top_requesters.php
Normal file
27
api/get_top_requesters.php
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
header('Content-Type: application/json');
|
||||||
|
require_once __DIR__ . '/../db/config.php';
|
||||||
|
|
||||||
|
try {
|
||||||
|
$pdo = db();
|
||||||
|
// Obtener el Top 5 de usuarios que más canciones han pedido
|
||||||
|
$stmt = $pdo->query("
|
||||||
|
SELECT requester, COUNT(*) as total_requests
|
||||||
|
FROM song_requests
|
||||||
|
WHERE requester IS NOT NULL AND requester != '' AND requester != 'Anónimo'
|
||||||
|
GROUP BY requester
|
||||||
|
ORDER BY total_requests DESC
|
||||||
|
LIMIT 5
|
||||||
|
");
|
||||||
|
$top_requesters = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
|
||||||
|
echo json_encode([
|
||||||
|
'success' => true,
|
||||||
|
'data' => $top_requesters
|
||||||
|
]);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo json_encode([
|
||||||
|
'success' => false,
|
||||||
|
'error' => $e->getMessage()
|
||||||
|
]);
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user