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
|
||||
{
|
||||
$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
4
package-lock.json
generated
|
@ -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",
|
||||
|
|
|
@ -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": {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue