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
{
$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");
return !empty($existingListen);
@ -186,17 +193,24 @@ class NavidromeScrobbleHandler extends ApiHandler
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", [
"json" => [
"artist_name" => $track["artist"],
"album_name" => $track["album"],
"track_name" => $track["title"],
"listened_at" => $playDate,
"album_key" => $albumKey
]
]);
if (!empty($track["playDate"])) {
$playDate = strtotime($track["playDate"]);
if ($playDate !== false) $payload["listened_at"] = $playDate;
}
if (!isset($payload["listened_at"])) {
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

4
package-lock.json generated
View file

@ -1,12 +1,12 @@
{
"name": "coryd.dev",
"version": "8.3.2",
"version": "8.3.3",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "coryd.dev",
"version": "8.3.2",
"version": "8.3.3",
"license": "MIT",
"dependencies": {
"minisearch": "^7.1.2",

View file

@ -1,6 +1,6 @@
{
"name": "coryd.dev",
"version": "8.3.2",
"version": "8.3.3",
"description": "The source for my personal site. Built using 11ty (and other tools).",
"type": "module",
"engines": {