mirror of
https://github.com/aljazceru/ditto.git
synced 2025-12-24 00:34:25 +01:00
Reqmeister: improve API and fetching logic (untested)
This commit is contained in:
@@ -59,7 +59,7 @@ async function handleEvent(event: DittoEvent, signal: AbortSignal): Promise<void
|
||||
processDeletions(event, signal),
|
||||
DVM.event(event),
|
||||
trackHashtags(event),
|
||||
fetchRelatedEvents(event, signal),
|
||||
fetchRelatedEvents(event),
|
||||
processMedia(event),
|
||||
payZap(event, signal),
|
||||
streamOut(event),
|
||||
@@ -182,19 +182,21 @@ async function trackHashtags(event: NostrEvent): Promise<void> {
|
||||
}
|
||||
|
||||
/** Queue related events to fetch. */
|
||||
async function fetchRelatedEvents(event: DittoEvent, signal: AbortSignal) {
|
||||
async function fetchRelatedEvents(event: DittoEvent) {
|
||||
if (!event.author) {
|
||||
Storages.reqmeister.req({ kinds: [0], authors: [event.pubkey] }, { signal })
|
||||
.then((event) => handleEvent(event, AbortSignal.timeout(1000)))
|
||||
const signal = AbortSignal.timeout(3000);
|
||||
Storages.reqmeister.query([{ kinds: [0], authors: [event.pubkey] }], { signal })
|
||||
.then((events) => events.forEach((event) => handleEvent(event, signal)))
|
||||
.catch(() => {});
|
||||
}
|
||||
|
||||
for (const [name, id, relay] of event.tags) {
|
||||
for (const [name, id] of event.tags) {
|
||||
if (name === 'e') {
|
||||
const { count } = await Storages.cache.count([{ ids: [id] }]);
|
||||
if (!count) {
|
||||
Storages.reqmeister.req({ ids: [id] }, { relays: [relay] })
|
||||
.then((event) => handleEvent(event, AbortSignal.timeout(1000)))
|
||||
const signal = AbortSignal.timeout(3000);
|
||||
Storages.reqmeister.query([{ ids: [id] }], { signal })
|
||||
.then((events) => events.forEach((event) => handleEvent(event, signal)))
|
||||
.catch(() => {});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user