fix(scrobble.php): refactor isTrackAlreadyScrobbled method to avoid triggering warnings
This commit is contained in:
parent
bcb89ceb95
commit
5055816f68
3 changed files with 28 additions and 14 deletions
|
@ -89,7 +89,14 @@ class NavidromeScrobbleHandler extends ApiHandler
|
||||||
|
|
||||||
private function isTrackAlreadyScrobbled(array $track): bool
|
private function isTrackAlreadyScrobbled(array $track): bool
|
||||||
{
|
{
|
||||||
$playDate = strtotime($track["playDate"]);
|
$playDateString = $track["playDate"] ?? null;
|
||||||
|
|
||||||
|
if (!$playDateString) return false;
|
||||||
|
|
||||||
|
$playDate = strtotime($playDateString);
|
||||||
|
|
||||||
|
if ($playDate === false) return false;
|
||||||
|
|
||||||
$existingListen = $this->fetchFromApi("listens", "listened_at=eq.{$playDate}&limit=1");
|
$existingListen = $this->fetchFromApi("listens", "listened_at=eq.{$playDate}&limit=1");
|
||||||
|
|
||||||
return !empty($existingListen);
|
return !empty($existingListen);
|
||||||
|
@ -186,17 +193,24 @@ class NavidromeScrobbleHandler extends ApiHandler
|
||||||
|
|
||||||
private function insertListen(array $track, string $albumKey): void
|
private function insertListen(array $track, string $albumKey): void
|
||||||
{
|
{
|
||||||
$playDate = strtotime($track["playDate"]);
|
$payload = [
|
||||||
|
"artist_name" => $track["artist"],
|
||||||
|
"album_name" => $track["album"],
|
||||||
|
"track_name" => $track["title"],
|
||||||
|
"album_key" => $albumKey
|
||||||
|
];
|
||||||
|
|
||||||
$this->makeRequest("POST", "listens", [
|
if (!empty($track["playDate"])) {
|
||||||
"json" => [
|
$playDate = strtotime($track["playDate"]);
|
||||||
"artist_name" => $track["artist"],
|
if ($playDate !== false) $payload["listened_at"] = $playDate;
|
||||||
"album_name" => $track["album"],
|
}
|
||||||
"track_name" => $track["title"],
|
|
||||||
"listened_at" => $playDate,
|
if (!isset($payload["listened_at"])) {
|
||||||
"album_key" => $albumKey
|
error_log("Skipping track due to missing or invalid listened_at: " . json_encode($track));
|
||||||
]
|
return;
|
||||||
]);
|
}
|
||||||
|
|
||||||
|
$this->makeRequest("POST", "listens", ["json" => $payload]);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function generateAlbumKey(string $artistName, string $albumName): string
|
private function generateAlbumKey(string $artistName, string $albumName): string
|
||||||
|
|
4
package-lock.json
generated
4
package-lock.json
generated
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "coryd.dev",
|
"name": "coryd.dev",
|
||||||
"version": "8.3.2",
|
"version": "8.3.3",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "coryd.dev",
|
"name": "coryd.dev",
|
||||||
"version": "8.3.2",
|
"version": "8.3.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"minisearch": "^7.1.2",
|
"minisearch": "^7.1.2",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "coryd.dev",
|
"name": "coryd.dev",
|
||||||
"version": "8.3.2",
|
"version": "8.3.3",
|
||||||
"description": "The source for my personal site. Built using 11ty (and other tools).",
|
"description": "The source for my personal site. Built using 11ty (and other tools).",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue