···62626363export interface ScrobblePayload {
6464 artist: string;
6565+ albumArtist?: string;
6566 album?: string;
6667 title: string;
6768 timestamp: number;
···189190 const suffix = inputs.length > 1 ? `[${i}]` : "";
190191191192 body[`artist${suffix}`] = s.artist;
193193+ // according to last.fm's documentation, the album artist should *only* be sent if it differs from the artist.
194194+ if (s.albumArtist && s.albumArtist !== s.artist) {
195195+ body[`albumArtist${suffix}`] = s.albumArtist;
196196+ }
192197 body[`track${suffix}`] = s.title;
193198 body[`timestamp${suffix}`] = s.timestamp;
194199 if (s.album) {
+3-3
commands/import.ts
···1616 <path> Path to either a .scrobbler.log or .csv file.
17171818Options:
1919- -n, --dry-run Simulate the import without scrobbling or modifying the file
2020- -s, --no-skip-marker Don't mark any track as skipped after importing (doesn't touch the provided file in any way)
2121- -h, --help Show this help message
1919+ -n, --dry-run Simulate the import without scrobbling or modifying the file
2020+ -s, --no-skip-marker Don't mark any track as skipped after importing (doesn't touch the provided file in any way)
2121+ -h, --help Show this help message
2222`;
23232424export async function executeImportCommand(args: string[] = Deno.args): Promise<Result<void, AppError>> {