From 888aac7ea491a7d665a44d28eed3fd8c241bc9e7 Mon Sep 17 00:00:00 2001 From: "Buster \"Silver Eagle\" Neece" Date: Sat, 24 Apr 2021 20:53:33 -0500 Subject: [PATCH] Simplify NP listeners into total/unique, make "current" match "total". --- composer.lock | 8 +++--- frontend/vue/Dashboard.vue | 2 +- src/Entity/Api/NowPlayingListeners.php | 26 +++++++++---------- .../ApiGenerator/NowPlayingApiGenerator.php | 7 ++--- src/Entity/StationMount.php | 6 ++--- src/Entity/StationRemote.php | 6 ++--- src/Radio/Frontend/Icecast.php | 2 +- src/Radio/Frontend/SHOUTcast.php | 2 +- src/Radio/Remote/AbstractRemote.php | 2 +- 9 files changed, 26 insertions(+), 35 deletions(-) diff --git a/composer.lock b/composer.lock index d569c2b5c..e62951b60 100644 --- a/composer.lock +++ b/composer.lock @@ -234,12 +234,12 @@ "source": { "type": "git", "url": "https://github.com/AzuraCast/nowplaying.git", - "reference": "511403a915d7f54edbd79876f53a58463aed0280" + "reference": "f159715c22b8c7878eb08381577fc5c4765e53f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/AzuraCast/nowplaying/zipball/511403a915d7f54edbd79876f53a58463aed0280", - "reference": "511403a915d7f54edbd79876f53a58463aed0280", + "url": "https://api.github.com/repos/AzuraCast/nowplaying/zipball/f159715c22b8c7878eb08381577fc5c4765e53f3", + "reference": "f159715c22b8c7878eb08381577fc5c4765e53f3", "shasum": "" }, "require": { @@ -297,7 +297,7 @@ "type": "patreon" } ], - "time": "2021-04-11T22:23:09+00:00" + "time": "2021-04-25T01:42:46+00:00" }, { "name": "bacon/bacon-qr-code", diff --git a/frontend/vue/Dashboard.vue b/frontend/vue/Dashboard.vue index 45a8cc6ab..25d1e8217 100644 --- a/frontend/vue/Dashboard.vue +++ b/frontend/vue/Dashboard.vue @@ -131,7 +131,7 @@ - {{ item.listeners.current }} + {{ item.listeners.total }}
diff --git a/src/Entity/Api/NowPlayingListeners.php b/src/Entity/Api/NowPlayingListeners.php index b17ad4f86..4a2c5bd81 100644 --- a/src/Entity/Api/NowPlayingListeners.php +++ b/src/Entity/Api/NowPlayingListeners.php @@ -10,11 +10,11 @@ use OpenApi\Annotations as OA; class NowPlayingListeners { /** - * Current listeners, either unique (if supplied) or total (non-unique) - * @OA\Property(example=15) + * Total non-unique current listeners + * @OA\Property(example=20) * @var int */ - public int $current = 0; + public int $total = 0; /** * Total unique current listeners @@ -24,21 +24,19 @@ class NowPlayingListeners public int $unique = 0; /** - * Total non-unique current listeners + * Total non-unique current listeners (Legacy field, may be retired in the future.) * @OA\Property(example=20) * @var int */ - public int $total = 0; + public int $current = 0; - public function __construct(?array $listeners = []) - { - if (isset($listeners['current'])) { - $this->current = (int)$listeners['current']; - } else { - $this->current = (int)($listeners['unique'] ?? $listeners['total'] ?? 0); - } + public function __construct( + int $total = 0, + ?int $unique = null + ) { + $this->total = $total; + $this->current = $total; - $this->unique = (int)($listeners['unique'] ?? $listeners['current'] ?? 0); - $this->total = (int)($listeners['total'] ?? $listeners['current'] ?? 0); + $this->unique = $unique ?? 0; } } diff --git a/src/Entity/ApiGenerator/NowPlayingApiGenerator.php b/src/Entity/ApiGenerator/NowPlayingApiGenerator.php index e37d2e7d1..6fc4ea3ae 100644 --- a/src/Entity/ApiGenerator/NowPlayingApiGenerator.php +++ b/src/Entity/ApiGenerator/NowPlayingApiGenerator.php @@ -57,11 +57,8 @@ class NowPlayingApiGenerator $np->is_online = $npResult->meta->online; $np->station = ($this->stationApiGenerator)($station, $baseUri); $np->listeners = new Entity\Api\NowPlayingListeners( - [ - 'current' => $npResult->listeners->current, - 'unique' => $npResult->listeners->unique, - 'total' => $npResult->listeners->total, - ] + total: $npResult->listeners->total, + unique: $npResult->listeners->unique ); // Pull from current NP data if song details haven't changed . diff --git a/src/Entity/StationMount.php b/src/Entity/StationMount.php index 5cf214107..ee7c80512 100644 --- a/src/Entity/StationMount.php +++ b/src/Entity/StationMount.php @@ -419,10 +419,8 @@ class StationMount implements StationMountInterface $response->url = $fa->getUrlForMount($this->station, $this, $base_url); $response->listeners = new Api\NowPlayingListeners( - [ - 'unique' => $this->listeners_unique, - 'total' => $this->listeners_total, - ] + total: $this->listeners_total, + unique: $this->listeners_unique ); if ($this->enable_autodj) { diff --git a/src/Entity/StationRemote.php b/src/Entity/StationRemote.php index 6188086bf..80c6a7c36 100644 --- a/src/Entity/StationRemote.php +++ b/src/Entity/StationRemote.php @@ -498,10 +498,8 @@ class StationRemote implements StationMountInterface $response->url = $adapter->getPublicUrl($this); $response->listeners = new Api\NowPlayingListeners( - [ - 'unique' => $this->listeners_unique, - 'total' => $this->listeners_total, - ] + total: $this->listeners_total, + unique: $this->listeners_unique ); if ($this->enable_autodj || (Adapters::REMOTE_AZURARELAY === $this->type)) { diff --git a/src/Radio/Frontend/Icecast.php b/src/Radio/Frontend/Icecast.php index d4ef5dd17..08563de4f 100644 --- a/src/Radio/Frontend/Icecast.php +++ b/src/Radio/Frontend/Icecast.php @@ -58,7 +58,7 @@ class Icecast extends AbstractFrontend } $mount->setListenersTotal($result->listeners->total); - $mount->setListenersUnique($result->listeners->unique); + $mount->setListenersUnique($result->listeners->unique ?? 0); $this->em->persist($mount); if ($mount->getIsDefault()) { diff --git a/src/Radio/Frontend/SHOUTcast.php b/src/Radio/Frontend/SHOUTcast.php index 8489bc79f..1e6db0a94 100644 --- a/src/Radio/Frontend/SHOUTcast.php +++ b/src/Radio/Frontend/SHOUTcast.php @@ -86,7 +86,7 @@ class SHOUTcast extends AbstractFrontend } $mount->setListenersTotal($result->listeners->total); - $mount->setListenersUnique($result->listeners->unique); + $mount->setListenersUnique($result->listeners->unique ?? 0); $this->em->persist($mount); if ($mount->getIsDefault()) { diff --git a/src/Radio/Remote/AbstractRemote.php b/src/Radio/Remote/AbstractRemote.php index 596228897..c15b44a40 100644 --- a/src/Radio/Remote/AbstractRemote.php +++ b/src/Radio/Remote/AbstractRemote.php @@ -60,7 +60,7 @@ abstract class AbstractRemote $this->logger->debug('NowPlaying adapter response', ['response' => $result]); $remote->setListenersTotal($result->listeners->total); - $remote->setListenersUnique($result->listeners->unique); + $remote->setListenersUnique($result->listeners->unique ?? 0); $this->em->persist($remote); $this->em->flush();