fix(scrobble.php): refactor isTrackAlreadyScrobbled method to avoid triggering warnings

This commit is contained in:
Cory Dransfeldt 2025-06-04 20:38:18 -07:00
parent bcb89ceb95
commit 5055816f68
No known key found for this signature in database
3 changed files with 28 additions and 14 deletions

View file

@ -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
View file

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

View file

@ -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": {