commit c0f612e2d3ae551bb931e76d3227d1506d875696
parent 347c6617fee0fb61a62dbcd9ce6cc4b0f8783966
Author: William Casarin <jb55@jb55.com>
Date: Fri, 11 Nov 2022 12:36:24 -0800
web: always use the latest profile
Diffstat:
2 files changed, 16 insertions(+), 12 deletions(-)
diff --git a/web/damus.js b/web/damus.js
@@ -260,6 +260,8 @@ function process_event(model, ev)
process_json_content(ev)
else if (ev.kind === 5)
process_deletion_event(model, ev)
+ else if (ev.kind === 0)
+ process_profile_event(model, ev)
const last_notified = get_local_state('last_notified_date')
if (notified && (last_notified == null || ((ev.created_at*1000) > last_notified))) {
@@ -314,22 +316,24 @@ function handle_home_event(ids, model, relay, sub_id, ev) {
model.done_init = true
model.pool.unsubscribe(ids.account, [relay])
break
- case 0:
- handle_profile_event(model, ev)
- break
}
case ids.profiles:
- try {
- model.profile_events[ev.pubkey] = ev
- model.profiles[ev.pubkey] = JSON.parse(ev.content)
- } catch {
- console.log("failed to parse", ev.content)
- }
+ break
}
}
-function handle_profile_event(model, ev) {
- console.log("PROFILE", ev)
+function process_profile_event(model, ev) {
+ const prev_ev = model.profile_events[ev.pubkey]
+ if (prev_ev) {
+ if (ev.id === prev_ev.id)
+ return
+
+ if (prev_ev.created_at > ev.created_at)
+ return
+ }
+
+ model.profile_events[ev.pubkey] = ev
+ model.profiles[ev.pubkey] = JSON.parse(ev.content)
}
function send_initial_filters(account_id, pubkey, relay) {
diff --git a/web/index.html b/web/index.html
@@ -41,7 +41,7 @@
<script src="noble-secp256k1.js?v=1"></script>
<script src="bech32.js?v=1"></script>
<script src="nostr.js?v=6"></script>
- <script src="damus.js?v=58"></script>
+ <script src="damus.js?v=59"></script>
<script>
// I have to delay loading to wait for nos2x
const relay = setTimeout(damus_web_init, 100)