This commit is contained in:
2023-09-19 13:04:19 +01:00
parent dde730238d
commit f5617d1b01
8 changed files with 43 additions and 40 deletions

View File

@ -111,7 +111,7 @@ export abstract class EventExt {
pubKeys: [],
} as Thread;
const replyTags = ev.tags.filter(a => a[0] === "e" || a[0] === "a").map(a => EventExt.parseTag(a));
if(replyTags.length > 0) {
if (replyTags.length > 0) {
const marked = replyTags.some(a => a.marker);
if (!marked) {
ret.root = replyTags[0];

View File

@ -296,11 +296,14 @@ export class NostrSystem extends ExternalStore<SystemSnapshot> implements System
if (cacheResults.length > 0) {
const resultIds = new Set(cacheResults.map(a => a.id));
f.ids = f.ids.filter(a => !resultIds.has(a));
q.insertCompletedTrace({
filters:[{...f, ids: [...resultIds]}],
strategy: RequestStrategy.ExplicitRelays,
relay: ""
}, cacheResults as Array<TaggedNostrEvent>);
q.insertCompletedTrace(
{
filters: [{ ...f, ids: [...resultIds] }],
strategy: RequestStrategy.ExplicitRelays,
relay: "",
},
cacheResults as Array<TaggedNostrEvent>,
);
}
}
}

View File

@ -39,7 +39,7 @@ export class ProfileLoaderService {
TrackMetadata(pk: HexKey | Array<HexKey>) {
for (const p of Array.isArray(pk) ? pk : [pk]) {
if (p.length === 64) {
this.#wantsMetadata.add(p)
this.#wantsMetadata.add(p);
}
}
}

View File

@ -198,14 +198,14 @@ export class Query implements QueryBase {
}
/**
* Insert a new trace as a placeholder
* Insert a new trace as a placeholder
*/
insertCompletedTrace(subq: BuiltRawReqFilter, data: Readonly<Array<TaggedNostrEvent>>) {
const qt = new QueryTrace(
"",
subq.filters,
"",
() => {
() => {
// nothing to close
},
() => {

View File

@ -146,7 +146,9 @@ export class RequestBuilder {
const filtersSquashed = [...relayMerged.values()].map(a => {
return {
filters: system.QueryOptimizer.flatMerge(a.flatMap(b => b.filters.flatMap(c => system.QueryOptimizer.expandFilter(c)))),
filters: system.QueryOptimizer.flatMerge(
a.flatMap(b => b.filters.flatMap(c => system.QueryOptimizer.expandFilter(c))),
),
relay: a[0].relay,
strategy: a[0].strategy,
} as BuiltRawReqFilter;
@ -252,7 +254,7 @@ export class RequestFilterBuilder {
if (link.type === NostrPrefix.Address) {
this.tag("a", [`${link.kind}:${link.author}:${link.id}`]);
link.relays?.forEach(v => this.relay(v));
} else if(link.type === NostrPrefix.PublicKey || link.type === NostrPrefix.Profile) {
} else if (link.type === NostrPrefix.PublicKey || link.type === NostrPrefix.Profile) {
this.tag("p", [link.id]);
link.relays?.forEach(v => this.relay(v));
} else {

View File

@ -4,23 +4,23 @@ import { ReqFilter } from "nostr";
* Remove empty filters, filters which would result in no results
*/
export function trimFilters(filters: Array<ReqFilter>) {
const fNew = [];
for(const f of filters) {
let arrays = 0;
for(const [k, v] of Object.entries(f)) {
if(Array.isArray(v)) {
arrays++;
if(v.length === 0) {
delete f[k];
}
}
}
if(arrays > 0 && Object.entries(f).some(v => Array.isArray(v))) {
fNew.push(f);
} else if(arrays === 0) {
fNew.push(f);
}
}
return fNew;
}
const fNew = [];
for (const f of filters) {
let arrays = 0;
for (const [k, v] of Object.entries(f)) {
if (Array.isArray(v)) {
arrays++;
if (v.length === 0) {
delete f[k];
}
}
}
if (arrays > 0 && Object.entries(f).some(v => Array.isArray(v))) {
fNew.push(f);
} else if (arrays === 0) {
fNew.push(f);
}
}
return fNew;
}