From 1e0edbb497166255621d342196c82d917f8c2b7b Mon Sep 17 00:00:00 2001 From: Martti Malmi Date: Tue, 22 Aug 2023 22:15:00 +0300 Subject: [PATCH] fix: do not save old follow lists --- src/js/nostr/Events.ts | 14 ++++++-------- src/js/nostr/SocialNetwork.ts | 1 + 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/js/nostr/Events.ts b/src/js/nostr/Events.ts index 8f483946..f92c4366 100644 --- a/src/js/nostr/Events.ts +++ b/src/js/nostr/Events.ts @@ -131,14 +131,12 @@ const Events = { this.likesByMessageId.get(id)?.add(event.pubkey); EventDB.insert(event); }, - handleFollow(event: Event) { - const existing = EventDB.findOne({ kinds: [3], authors: [event.pubkey] }); - if (existing && existing.created_at >= event.created_at) { + handleFollowList(event: Event) { + const existing = SocialNetwork.followListTimestamps.get(ID(event.pubkey)); + if (existing && existing >= event.created_at) { return; } - if (existing) { - //EventDB.findAndRemove({ kinds: [3], authors: [event.pubkey] }); - } + SocialNetwork.followListTimestamps.set(ID(event.pubkey), event.created_at); // no need to store follow events in memory because they're already in SocialNetwork. // when we start doing p2p, we can perhaps keep them in memory or just ask from dexie //EventDB.insert(event); @@ -236,7 +234,7 @@ const Events = { if (existing) { //EventDB.findAndRemove({ authors: [event.pubkey], kinds: [0] }); } - // same as handleFollow, no need to store in memory for now + // same as handleFollowList, no need to store in memory for now //EventDB.insert(event); const profile = JSON.parse(event.content); // if we have previously deleted our account, log out. appease app store. @@ -510,7 +508,7 @@ const Events = { return false; } this.maybeAddNotification(event); - this.handleFollow(event); + this.handleFollowList(event); break; } case 6: diff --git a/src/js/nostr/SocialNetwork.ts b/src/js/nostr/SocialNetwork.ts index 019123ac..140811bf 100644 --- a/src/js/nostr/SocialNetwork.ts +++ b/src/js/nostr/SocialNetwork.ts @@ -15,6 +15,7 @@ export default { followersByUser: new Map>(), blockedUsers: new Set(), flaggedUsers: new Set(), + followListTimestamps: new Map(), // timestamp of last follow list update isFollowing: function (follower: string, followedUser: string): boolean { const followedUserId = ID(followedUser);