From 1b5c3144365dfb3370ff6a6801a1d94d9a17052f Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Sat, 1 Jan 2022 20:49:05 -0300 Subject: [PATCH] nip-01 update: everything as arrays on filters. --- filter.js | 28 +++++++++++++++------------- package.json | 2 +- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/filter.js b/filter.js index 2ca4572..9ad2b65 100644 --- a/filter.js +++ b/filter.js @@ -1,19 +1,21 @@ export function matchFilter(filter, event) { - if (filter.id && event.id !== filter.id) return false - if (typeof filter.kind === 'number' && event.kind !== filter.kind) return false + if (filter.ids && filter.ids.indexOf(event.id) !== -1) return false + if (filter.kinds && filter.kinds.indexOf(event.kind) !== -1) return false if (filter.authors && filter.authors.indexOf(event.pubkey) === -1) return false - if ( - filter['#e'] && - !event.tags.find(([t, v]) => t === 'e' && v === filter['#e']) - ) - return false - if ( - filter['#p'] && - !event.tags.find(([t, v]) => t === 'p' && v === filter['#p']) - ) - return false - if (filter.since && event.created_at <= filter.since) return false + + for (let f in filter) { + if (f[0] === '#') { + if ( + filter[f] && + !event.tags.find(([t, v]) => t === f.slice(1) && v === filter[f]) + ) + return false + } + } + + if (filter.since && event.created_at < filter.since) return false + if (filter.until && event.created_at >= filter.until) return false return true } diff --git a/package.json b/package.json index e6ea39e..4c73c0c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nostr-tools", - "version": "0.15.1", + "version": "0.16.0", "description": "Tools for making a Nostr client.", "repository": { "type": "git",