A decentralized music tracking and discovery platform built on AT Protocol 🎵
listenbrainz spotify atproto lastfm musicbrainz scrobbling

Promote likesCount and liked to top level

Changed files
+7 -6
apps
api
src
xrpc
app
rocksky
scrobble
+7 -6
apps/api/src/xrpc/app/rocksky/scrobble/getScrobbles.ts
··· 99 99 100 100 return scrobbles.map((row) => ({ 101 101 ...row, 102 - scrobbles: { 103 - ...row.scrobbles, 104 - likesCount: likesMap.get(row.tracks?.id)?.count ?? 0, 105 - liked: likesMap.get(row.tracks?.id)?.liked ?? false, 106 - }, 102 + likesCount: likesMap.get(row.tracks?.id)?.count ?? 0, 103 + liked: likesMap.get(row.tracks?.id)?.liked ?? false, 107 104 })); 108 105 }, 109 106 ··· 115 112 data: Scrobbles, 116 113 ): Effect.Effect<{ scrobbles: ScrobbleViewBasic[] }, never> => { 117 114 return Effect.sync(() => ({ 118 - scrobbles: data.map(({ scrobbles, tracks, users }) => ({ 115 + scrobbles: data.map(({ scrobbles, tracks, users, liked, likesCount }) => ({ 119 116 ...R.omit(["albumArt", "id", "lyrics"])(tracks), 120 117 cover: tracks.albumArt, 121 118 date: scrobbles.timestamp.toISOString(), ··· 126 123 tags: [], 127 124 id: scrobbles.id, 128 125 trackUri: tracks.uri, 126 + likesCount: likesCount, 127 + liked: liked, 129 128 })), 130 129 })); 131 130 }; ··· 134 133 scrobbles: SelectScrobble; 135 134 tracks: SelectTrack; 136 135 users: SelectUser; 136 + liked: boolean; 137 + likesCount: number; 137 138 }[];