Fix scrobbling. For real?

This commit is contained in:
Wolfgang Kulhanek
2025-10-16 15:28:47 +02:00
parent d88767cbe6
commit 892b95d0f6

View File

@@ -608,17 +608,21 @@ function server(
logger.debug(`Received Sonos reporting event (v${version}): ${JSON.stringify(req.body)}`);
try {
// Sonos may send an array of reports
// Sonos may send an array of reports or a single report with items array
const reports = Array.isArray(req.body) ? req.body : [req.body];
for (const report of reports) {
// Handle both direct report format and items array format
const items = report.items || [report];
for (const item of items) {
const {
reportId,
mediaUrl,
durationPlayedMillis,
positionMillis,
type,
} = report;
} = item;
// Extract track ID from mediaUrl (format: /stream/track/{id} or x-sonos-http:track%3a{id}.mp3)
let trackId: string | undefined;
@@ -693,6 +697,7 @@ function server(
}
}
}
}
return res.status(200).json({ status: "ok" });
} catch (error) {