mirror of
https://github.com/aljazceru/ditto.git
synced 2026-02-23 14:06:58 +01:00
feat: add quote repost
This commit is contained in:
@@ -163,7 +163,7 @@ const accountStatusesController: AppController = async (c) => {
|
||||
return events;
|
||||
});
|
||||
|
||||
const statuses = await Promise.all(events.map((event) => renderStatus(event, c.get('pubkey'))));
|
||||
const statuses = await Promise.all(events.map((event) => renderStatus(event, { viewerPubkey: c.get('pubkey') })));
|
||||
return paginated(c, events, statuses);
|
||||
};
|
||||
|
||||
@@ -310,7 +310,7 @@ const favouritesController: AppController = async (c) => {
|
||||
hydrateEvents({ events, relations: ['author', 'event_stats', 'author_stats'], storage: eventsDB, signal })
|
||||
);
|
||||
|
||||
const statuses = await Promise.all(events1.map((event) => renderStatus(event, c.get('pubkey'))));
|
||||
const statuses = await Promise.all(events1.map((event) => renderStatus(event, { viewerPubkey: c.get('pubkey') })));
|
||||
return paginated(c, events1, statuses);
|
||||
};
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ const searchController: AppController = async (c) => {
|
||||
Promise.all(
|
||||
results
|
||||
.filter((event) => event.kind === 1)
|
||||
.map((event) => renderStatus(event, c.get('pubkey'))),
|
||||
.map((event) => renderStatus(event, { viewerPubkey: c.get('pubkey') })),
|
||||
),
|
||||
]);
|
||||
|
||||
|
||||
@@ -40,12 +40,12 @@ const statusController: AppController = async (c) => {
|
||||
|
||||
const event = await getEvent(id, {
|
||||
kind: 1,
|
||||
relations: ['author', 'event_stats', 'author_stats'],
|
||||
relations: ['author', 'event_stats', 'author_stats', 'quote_repost'],
|
||||
signal: AbortSignal.timeout(1500),
|
||||
});
|
||||
|
||||
if (event) {
|
||||
return c.json(await renderStatus(event, c.get('pubkey')));
|
||||
return c.json(await renderStatus(event, { viewerPubkey: c.get('pubkey') }));
|
||||
}
|
||||
|
||||
return c.json({ error: 'Event not found.' }, 404);
|
||||
@@ -130,7 +130,7 @@ const createStatusController: AppController = async (c) => {
|
||||
}, c);
|
||||
|
||||
const author = await getAuthor(event.pubkey);
|
||||
return c.json(await renderStatus({ ...event, author }, c.get('pubkey')));
|
||||
return c.json(await renderStatus({ ...event, author }, { viewerPubkey: c.get('pubkey') }));
|
||||
};
|
||||
|
||||
const deleteStatusController: AppController = async (c) => {
|
||||
@@ -147,7 +147,7 @@ const deleteStatusController: AppController = async (c) => {
|
||||
}, c);
|
||||
|
||||
const author = await getAuthor(event.pubkey);
|
||||
return c.json(await renderStatus({ ...event, author }, pubkey));
|
||||
return c.json(await renderStatus({ ...event, author }, { viewerPubkey: pubkey }));
|
||||
} else {
|
||||
return c.json({ error: 'Unauthorized' }, 403);
|
||||
}
|
||||
@@ -161,7 +161,7 @@ const contextController: AppController = async (c) => {
|
||||
const event = await getEvent(id, { kind: 1, relations: ['author', 'event_stats', 'author_stats'] });
|
||||
|
||||
async function renderStatuses(events: NostrEvent[]) {
|
||||
const statuses = await Promise.all(events.map((event) => renderStatus(event, c.get('pubkey'))));
|
||||
const statuses = await Promise.all(events.map((event) => renderStatus(event, { viewerPubkey: c.get('pubkey') })));
|
||||
return statuses.filter(Boolean);
|
||||
}
|
||||
|
||||
@@ -191,7 +191,7 @@ const favouriteController: AppController = async (c) => {
|
||||
],
|
||||
}, c);
|
||||
|
||||
const status = await renderStatus(target, c.get('pubkey'));
|
||||
const status = await renderStatus(target, { viewerPubkey: c.get('pubkey') });
|
||||
|
||||
if (status) {
|
||||
status.favourited = true;
|
||||
@@ -259,7 +259,7 @@ const unreblogStatusController: AppController = async (c) => {
|
||||
tags: [['e', repostedEvent.id]],
|
||||
}, c);
|
||||
|
||||
return c.json(await renderStatus(event));
|
||||
return c.json(await renderStatus(event, {}));
|
||||
};
|
||||
|
||||
const rebloggedByController: AppController = (c) => {
|
||||
@@ -285,7 +285,7 @@ const bookmarkController: AppController = async (c) => {
|
||||
c,
|
||||
);
|
||||
|
||||
const status = await renderStatus(event, pubkey);
|
||||
const status = await renderStatus(event, { viewerPubkey: pubkey });
|
||||
if (status) {
|
||||
status.bookmarked = true;
|
||||
}
|
||||
@@ -312,7 +312,7 @@ const unbookmarkController: AppController = async (c) => {
|
||||
c,
|
||||
);
|
||||
|
||||
const status = await renderStatus(event, pubkey);
|
||||
const status = await renderStatus(event, { viewerPubkey: pubkey });
|
||||
if (status) {
|
||||
status.bookmarked = false;
|
||||
}
|
||||
@@ -339,7 +339,7 @@ const pinController: AppController = async (c) => {
|
||||
c,
|
||||
);
|
||||
|
||||
const status = await renderStatus(event, pubkey);
|
||||
const status = await renderStatus(event, { viewerPubkey: pubkey });
|
||||
if (status) {
|
||||
status.pinned = true;
|
||||
}
|
||||
@@ -368,7 +368,7 @@ const unpinController: AppController = async (c) => {
|
||||
c,
|
||||
);
|
||||
|
||||
const status = await renderStatus(event, pubkey);
|
||||
const status = await renderStatus(event, { viewerPubkey: pubkey });
|
||||
if (status) {
|
||||
status.pinned = false;
|
||||
}
|
||||
@@ -411,7 +411,7 @@ const zapController: AppController = async (c) => {
|
||||
],
|
||||
}, c);
|
||||
|
||||
const status = await renderStatus(target, c.get('pubkey'));
|
||||
const status = await renderStatus(target, { viewerPubkey: c.get('pubkey') });
|
||||
status.zapped = true;
|
||||
|
||||
return c.json(status);
|
||||
|
||||
@@ -79,7 +79,7 @@ const streamingController: AppController = (c) => {
|
||||
}
|
||||
continue;
|
||||
}
|
||||
const status = await renderStatus(event, pubkey);
|
||||
const status = await renderStatus(event, { viewerPubkey: pubkey });
|
||||
if (status) {
|
||||
send('update', status);
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ async function renderStatuses(c: AppContext, filters: NostrFilter[]) {
|
||||
.then((events) =>
|
||||
hydrateEvents({
|
||||
events,
|
||||
relations: ['author', 'author_stats', 'event_stats', 'repost'],
|
||||
relations: ['author', 'author_stats', 'event_stats', 'repost', 'quote_repost'],
|
||||
storage: eventsDB,
|
||||
signal,
|
||||
})
|
||||
@@ -65,7 +65,7 @@ async function renderStatuses(c: AppContext, filters: NostrFilter[]) {
|
||||
if (event.kind === 6) {
|
||||
return renderReblog(event);
|
||||
}
|
||||
return renderStatus(event, c.get('pubkey'));
|
||||
return renderStatus(event, { viewerPubkey: c.get('pubkey') });
|
||||
}))).filter((boolean) => boolean);
|
||||
|
||||
if (!statuses.length) {
|
||||
|
||||
Reference in New Issue
Block a user