[READ-ONLY] Mirror of https://github.com/FoxxMD/multi-scrobbler. Scrobble plays from multiple sources to multiple clients docs.multi-scrobbler.app
deezer docker jellyfin koito lastfm listenbrainz maloja mopidy mpris music music-assistant plex scrobble self-hosted spotify subsonic tautulli youtube-music
0

Configure Feed

Select the types of activity you want to include in your feed.

refactor(AppleMusicSource): replace AppleMusicTrack interface with Song type

Removed local AppleMusicTrack interface and updated formatPlayObj to utilize the shared Song type for improved type consistency.

Exerra (Jul 14, 2026, 12:34 AM +0300) c8d917cf 8c789123

+2 -11
+2 -11
src/backend/sources/AppleMusicSource.ts
··· 17 17 playsAreSortConsistent 18 18 } from "../utils/PlayComparisonUtils.ts"; 19 19 20 - interface AppleMusicTrack { 21 - id: string 22 - name: string 23 - artistName: string 24 - albumName: string 25 - durationInMillis: number 26 - [key: string]: any 27 - } 28 - 29 20 export default class AppleMusicSource extends AbstractSource { 30 21 31 22 requiresAuth = true; ··· 88 79 return undefined; 89 80 } 90 81 91 - static formatPlayObj(track: AppleMusicTrack, options: {newFromSource?: boolean} = {}): PlayObject { 82 + static formatPlayObj(track: Song, options: {newFromSource?: boolean} = {}): PlayObject { 92 83 const {newFromSource = false} = options; 93 84 const play: PlayObjectMinimal = { 94 85 data: { ··· 127 118 if (!result.data) { 128 119 return []; 129 120 } 130 - return (result.data as unknown as AppleMusicTrack[]).map(track => AppleMusicSource.formatPlayObj(track)); 121 + return (result.data as unknown as Song[]).map(track => AppleMusicSource.formatPlayObj(track)); 131 122 } 132 123 133 124 getIncomingHistoryConsistencyResult = (plays: PlayObject[]): {plays: PlayObject[], consistent: boolean, diffType?: 'bump' | 'added', diffResults?: PlayOrderConsistencyResults<PlayOrderChangeType>, reason?: string} => {