Add shuffle mount to admin dashboard listener stats

- Add Shuffle column to Current Listeners table
- Display listener count for /asteroid-shuffle.mp3 mount
- Include shuffle listeners in total count
This commit is contained in:
Glenn Thompson 2025-12-14 23:31:03 +03:00 committed by Brian O'Reilly
parent 4f1a60328b
commit 55d63770d2
2 changed files with 9 additions and 2 deletions

View File

@ -891,11 +891,14 @@
(aac (or (and (ps:getprop mounts "/asteroid.aac")
(ps:@ (ps:getprop mounts "/asteroid.aac") listeners)) 0))
(low (or (and (ps:getprop mounts "/asteroid-low.mp3")
(ps:@ (ps:getprop mounts "/asteroid-low.mp3") listeners)) 0)))
(ps:@ (ps:getprop mounts "/asteroid-low.mp3") listeners)) 0))
(shuffle (or (and (ps:getprop mounts "/asteroid-shuffle.mp3")
(ps:@ (ps:getprop mounts "/asteroid-shuffle.mp3") listeners)) 0)))
(let ((mp3-el (ps:chain document (get-element-by-id "listeners-mp3")))
(aac-el (ps:chain document (get-element-by-id "listeners-aac")))
(low-el (ps:chain document (get-element-by-id "listeners-low")))
(shuffle-el (ps:chain document (get-element-by-id "listeners-shuffle")))
(total-el (ps:chain document (get-element-by-id "listeners-total")))
(updated-el (ps:chain document (get-element-by-id "stats-updated")))
(status-el (ps:chain document (get-element-by-id "stats-status"))))
@ -903,7 +906,8 @@
(when mp3-el (setf (ps:@ mp3-el text-content) mp3))
(when aac-el (setf (ps:@ aac-el text-content) aac))
(when low-el (setf (ps:@ low-el text-content) low))
(when total-el (setf (ps:@ total-el text-content) (+ mp3 aac low)))
(when shuffle-el (setf (ps:@ shuffle-el text-content) shuffle))
(when total-el (setf (ps:@ total-el text-content) (+ mp3 aac low shuffle)))
(when updated-el
(setf (ps:@ updated-el text-content)
(ps:chain (ps:new (-date)) (to-locale-time-string))))

View File

@ -58,6 +58,7 @@
<th>🎵 MP3</th>
<th>🎧 AAC</th>
<th>📱 Low</th>
<th>🎲 Shuffle</th>
<th>📈 Total</th>
</tr>
</thead>
@ -66,12 +67,14 @@
<td style="text-align: center;"><span class="stat-number" id="listeners-mp3">0</span></td>
<td style="text-align: center;"><span class="stat-number" id="listeners-aac">0</span></td>
<td style="text-align: center;"><span class="stat-number" id="listeners-low">0</span></td>
<td style="text-align: center;"><span class="stat-number" id="listeners-shuffle">0</span></td>
<td style="text-align: center;"><span class="stat-number" id="listeners-total">0</span></td>
</tr>
<tr class="stat-peak-row">
<td style="text-align: center;">Peak: <span id="peak-mp3">0</span></td>
<td style="text-align: center;">Peak: <span id="peak-aac">0</span></td>
<td style="text-align: center;">Peak: <span id="peak-low">0</span></td>
<td style="text-align: center;">Peak: <span id="peak-shuffle">0</span></td>
<td style="text-align: center;">Updated: <span id="stats-updated">--</span></td>
</tr>
</tbody>