scrobbles

This commit is contained in:
Henry Jameson 2025-06-16 15:31:43 +03:00
commit b5fd56c790

View file

@ -38,8 +38,8 @@ export const defaultState = () => ({
allStatusesObject: {},
conversationsObject: {},
maxId: 0,
scrobblesUnsupported: false,
favorites: new Set(),
pleromaScrobblesAvailable: true, // not reported in nodeinfo
timelines: {
mentions: emptyTl(),
public: emptyTl(),
@ -109,16 +109,19 @@ const sortTimeline = (timeline) => {
}
const getLatestScrobble = (state, user) => {
const scrobbles = state.pleromaScrobblesAvailable
if (!scrobbles) return
if (state.scrobblesNextFetch[user.id] && state.scrobblesNextFetch[user.id] > Date.now()) {
return
}
if (state.scrobblesUnsupported) return
state.scrobblesNextFetch[user.id] = Date.now() + 24 * 60 * 60 * 1000
if (!scrobbles) return
apiService.fetchScrobbles({ accountId: user.id }).then((scrobbles) => {
if (scrobbles?.error?.status === 501) {
state.scrobblesUnsupported = true
state.pleromaScrobblesAvailable = false
return
}
if (scrobbles.length > 0) {