aboutsummaryrefslogtreecommitdiff
path: root/src/modules/statuses.js
diff options
context:
space:
mode:
authorHJ <30-hj@users.noreply.git.pleroma.social>2023-11-10 13:31:45 +0000
committerHJ <30-hj@users.noreply.git.pleroma.social>2023-11-10 13:31:45 +0000
commit60cb173b61a9ffa4336a0ace7c90622834efd98e (patch)
treee93c8fcd0e2b99233659c0f3d204bce4bf13fb68 /src/modules/statuses.js
parent954d03150f1dc097b9950cfef2fed2e4f55b6442 (diff)
parent55d4ea3643a3bdb9e350c559d2d9a5f8608a7910 (diff)
Merge branch 'neetzsche/display-latest-scrobble' into 'develop'
Display the latest scrobble under a user's name See merge request pleroma/pleroma-fe!1865
Diffstat (limited to 'src/modules/statuses.js')
-rw-r--r--src/modules/statuses.js17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/modules/statuses.js b/src/modules/statuses.js
index 186bba3c..9b4cd175 100644
--- a/src/modules/statuses.js
+++ b/src/modules/statuses.js
@@ -47,6 +47,7 @@ const emptyNotifications = () => ({
export const defaultState = () => ({
allStatuses: [],
+ scrobblesNextFetch: {},
allStatusesObject: {},
conversationsObject: {},
maxId: 0,
@@ -120,8 +121,24 @@ const sortTimeline = (timeline) => {
return timeline
}
+const getLatestScrobble = (state, user) => {
+ if (state.scrobblesNextFetch[user.id] && state.scrobblesNextFetch[user.id] > Date.now()) {
+ return
+ }
+
+ state.scrobblesNextFetch[user.id] = Date.now() + 24 * 60 * 60 * 1000
+ apiService.fetchScrobbles({ accountId: user.id }).then((scrobbles) => {
+ if (scrobbles.length > 0) {
+ user.latestScrobble = scrobbles[0]
+
+ state.scrobblesNextFetch[user.id] = Date.now() + 60 * 1000
+ }
+ })
+}
+
// Add status to the global storages (arrays and objects maintaining statuses) except timelines
const addStatusToGlobalStorage = (state, data) => {
+ getLatestScrobble(state, data.user)
const result = mergeOrAdd(state.allStatuses, state.allStatusesObject, data)
if (result.new) {
// Add to conversation