Simplify NP listeners into total/unique, make "current" match "total".

This commit is contained in:
Buster "Silver Eagle" Neece 2021-04-24 20:53:33 -05:00
parent 418a54c3c3
commit 888aac7ea4
No known key found for this signature in database
GPG Key ID: 6D9E12FF03411F4E
9 changed files with 26 additions and 35 deletions

8
composer.lock generated
View File

@ -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",

View File

@ -131,7 +131,7 @@
</a>
</td>
<td class="text-center">
<span class="nowplaying-listeners">{{ item.listeners.current }}</span>
<span class="nowplaying-listeners">{{ item.listeners.total }}</span>
</td>
<td>
<div v-if="item.now_playing.song.title !== ''">

View File

@ -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;
}
}

View File

@ -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 .

View File

@ -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) {

View File

@ -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)) {

View File

@ -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()) {

View File

@ -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()) {

View File

@ -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();