Test events match filter
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing

This commit is contained in:
Kieran 2023-08-19 23:59:25 +01:00
parent 42a3bdca68
commit d06d6afbf7
Signed by: Kieran
GPG Key ID: DE71CEB3925BE941
2 changed files with 15 additions and 10 deletions

View File

@ -7,6 +7,7 @@ import { NoteStore } from "./note-collection";
import { flatMerge } from "./request-merger";
import { BuiltRawReqFilter } from "./request-builder";
import { FlatReqFilter, expandFilter } from "./request-expander";
import { eventMatchesFilter } from "./request-matcher";
/**
* Tracing for relay query status
@ -179,7 +180,11 @@ export class Query implements QueryBase {
onEvent(sub: string, e: TaggedNostrEvent) {
for (const t of this.#tracing) {
if (t.id === sub) {
this.feed.add(e);
if(t.filters.some(v => eventMatchesFilter(e, v))) {
this.feed.add(e);
} else {
this.#log("Event did not match filter, rejecting %O", e);
}
break;
}
}

View File

@ -1,20 +1,20 @@
import { NostrEvent, ReqFilter } from "./nostr";
export function eventMatchesFilter(ev: NostrEvent, filter: ReqFilter) {
if (!(filter.ids?.includes(ev.id) ?? false)) {
return false;
}
if (!(filter.authors?.includes(ev.pubkey) ?? false)) {
return false;
}
if (!(filter.kinds?.includes(ev.kind) ?? false)) {
return false;
}
if (filter.since && ev.created_at < filter.since) {
return false;
}
if (filter.until && ev.created_at > filter.until) {
return false;
}
if (!(filter.ids?.includes(ev.id) ?? true)) {
return false;
}
if (!(filter.authors?.includes(ev.pubkey) ?? true)) {
return false;
}
if (!(filter.kinds?.includes(ev.kind) ?? true)) {
return false;
}
return true;
}