From f80f9fbbb6c9c82e8a6204cdd47fe66121aba358 Mon Sep 17 00:00:00 2001 From: Eric Eastwood Date: Wed, 9 Feb 2022 02:07:16 -0600 Subject: [PATCH] Make displayname and avatars show up and handle avatar changes --- server/fetch-events-for-timestamp.js | 2 +- server/hydrogen-vm-render-script.js | 10 +++++++++- server/server1.js | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/server/fetch-events-for-timestamp.js b/server/fetch-events-for-timestamp.js index 26a909d..2da8475 100644 --- a/server/fetch-events-for-timestamp.js +++ b/server/fetch-events-for-timestamp.js @@ -68,7 +68,7 @@ async function fetchEventsForTimestamp(roomId, ts) { const stateEventMap = {}; for (const stateEvent of messageResData.state) { if (stateEvent.type === 'm.room.member') { - stateEventMap[stateEvent.state_key] = stateEventMap; + stateEventMap[stateEvent.state_key] = stateEvent; } } diff --git a/server/hydrogen-vm-render-script.js b/server/hydrogen-vm-render-script.js index 8c6fc43..da651b9 100644 --- a/server/hydrogen-vm-render-script.js +++ b/server/hydrogen-vm-render-script.js @@ -89,8 +89,16 @@ async function mountHydrogen() { }, }); + // Something we can modify with new state updates as we see them + const workingStateEventMap = { + ...stateEventMap, + }; const eventEntries = events.map((event) => { - const memberEvent = stateEventMap[event.user_id]; + if (event.type === 'm.room.member') { + workingStateEventMap[event.state_key] = event; + } + + const memberEvent = workingStateEventMap[event.user_id]; return makeEventEntryFromEventJson(event, memberEvent); }); //console.log('eventEntries', eventEntries); diff --git a/server/server1.js b/server/server1.js index c66f7bc..4894145 100644 --- a/server/server1.js +++ b/server/server1.js @@ -16,7 +16,7 @@ app.get( asyncHandler(async function (req, res) { const { events, stateEventMap } = await fetchEventsForTimestamp( '!HBehERstyQBxyJDLfR:my.synapse.server', - new Date('2022-01-01').getTime() + new Date('2022-02-08').getTime() ); const hydrogenHtmlOutput = await renderHydrogenToString(events, stateEventMap);