diff --git a/src/controllers/api/instance.ts b/src/controllers/api/instance.ts index 15a99c3..1355330 100644 --- a/src/controllers/api/instance.ts +++ b/src/controllers/api/instance.ts @@ -42,6 +42,7 @@ const instanceController: AppController = async (c) => { 'mastodon_api', 'mastodon_api_streaming', 'exposable_reactions', + 'quote_posting', ], }, }, diff --git a/src/controllers/api/statuses.ts b/src/controllers/api/statuses.ts index b8873a9..afd3673 100644 --- a/src/controllers/api/statuses.ts +++ b/src/controllers/api/statuses.ts @@ -28,6 +28,7 @@ const createStatusSchema = z.object({ spoiler_text: z.string().nullish(), status: z.string().nullish(), visibility: z.enum(['public', 'unlisted', 'private', 'direct']).nullish(), + quote_id: z.string().nullish(), }).refine( (data) => Boolean(data.status || data.media_ids?.length), { message: 'Status must contain text or media.' }, @@ -69,6 +70,10 @@ const createStatusController: AppController = async (c) => { const tags: string[][] = []; + if (data.quote_id) { + tags.push(['q', data.quote_id]); + } + if (data.in_reply_to_id) { tags.push(['e', data.in_reply_to_id, 'reply']); }