mirror of
https://github.com/aljazceru/ditto.git
synced 2025-12-30 03:34:26 +01:00
perf: make up to 5 calls to database in hydrateEvents & remove old hydrate functions
This commit is contained in:
@@ -95,7 +95,6 @@ const accountSearchController: AppController = async (c) => {
|
||||
|
||||
const results = await hydrateEvents({
|
||||
events: event ? [event, ...events] : events,
|
||||
relations: ['author_stats'],
|
||||
storage: eventsDB,
|
||||
signal: c.req.raw.signal,
|
||||
});
|
||||
@@ -164,9 +163,7 @@ const accountStatusesController: AppController = async (c) => {
|
||||
}
|
||||
|
||||
const events = await eventsDB.query([filter], { signal })
|
||||
.then((events) =>
|
||||
hydrateEvents({ events, relations: ['author', 'event_stats', 'author_stats'], storage: eventsDB, signal })
|
||||
)
|
||||
.then((events) => hydrateEvents({ events, storage: eventsDB, signal }))
|
||||
.then((events) => {
|
||||
if (exclude_replies) {
|
||||
return events.filter((event) => !findReplyTag(event.tags));
|
||||
@@ -317,9 +314,7 @@ const favouritesController: AppController = async (c) => {
|
||||
.filter((id): id is string => !!id);
|
||||
|
||||
const events1 = await eventsDB.query([{ kinds: [1], ids }], { signal })
|
||||
.then((events) =>
|
||||
hydrateEvents({ events, relations: ['author', 'event_stats', 'author_stats'], storage: eventsDB, signal })
|
||||
);
|
||||
.then((events) => hydrateEvents({ events, storage: eventsDB, signal }));
|
||||
|
||||
const statuses = await Promise.all(events1.map((event) => renderStatus(event, { viewerPubkey: c.get('pubkey') })));
|
||||
return paginated(c, events1, statuses);
|
||||
|
||||
@@ -90,9 +90,7 @@ function searchEvents({ q, type, limit, account_id }: SearchQuery, signal: Abort
|
||||
}
|
||||
|
||||
return searchStore.query([filter], { signal })
|
||||
.then((events) =>
|
||||
hydrateEvents({ events, relations: ['author', 'event_stats', 'author_stats'], storage: searchStore, signal })
|
||||
);
|
||||
.then((events) => hydrateEvents({ events, storage: searchStore, signal }));
|
||||
}
|
||||
|
||||
/** Get event kinds to search from `type` query param. */
|
||||
@@ -112,9 +110,7 @@ async function lookupEvent(query: SearchQuery, signal: AbortSignal): Promise<Nos
|
||||
const filters = await getLookupFilters(query, signal);
|
||||
|
||||
return searchStore.query(filters, { limit: 1, signal })
|
||||
.then((events) =>
|
||||
hydrateEvents({ events, relations: ['author', 'event_stats', 'author_stats'], storage: searchStore, signal })
|
||||
)
|
||||
.then((events) => hydrateEvents({ events, storage: searchStore, signal }))
|
||||
.then(([event]) => event);
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,6 @@ const statusController: AppController = async (c) => {
|
||||
|
||||
const event = await getEvent(id, {
|
||||
kind: 1,
|
||||
relations: ['author', 'event_stats', 'author_stats', 'quote_repost'],
|
||||
signal: AbortSignal.timeout(1500),
|
||||
});
|
||||
|
||||
@@ -135,7 +134,6 @@ const createStatusController: AppController = async (c) => {
|
||||
if (data.quote_id) {
|
||||
await hydrateEvents({
|
||||
events: [event],
|
||||
relations: ['quote_repost'],
|
||||
storage: eventsDB,
|
||||
signal: c.req.raw.signal,
|
||||
});
|
||||
@@ -241,7 +239,6 @@ const reblogStatusController: AppController = async (c) => {
|
||||
|
||||
await hydrateEvents({
|
||||
events: [reblogEvent],
|
||||
relations: ['repost', 'author'],
|
||||
storage: eventsDB,
|
||||
signal: signal,
|
||||
});
|
||||
|
||||
@@ -68,7 +68,6 @@ const streamingController: AppController = (c) => {
|
||||
if (event.kind === 6) {
|
||||
await hydrateEvents({
|
||||
events: [event],
|
||||
relations: ['repost', 'author'],
|
||||
storage: eventsDB,
|
||||
signal: AbortSignal.timeout(1000),
|
||||
});
|
||||
|
||||
@@ -51,7 +51,6 @@ async function renderStatuses(c: AppContext, filters: NostrFilter[]) {
|
||||
.then((events) =>
|
||||
hydrateEvents({
|
||||
events,
|
||||
relations: ['author', 'author_stats', 'event_stats', 'repost', 'quote_repost'],
|
||||
storage: eventsDB,
|
||||
signal,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user