From aaf49eadee0bffc9fe0ffbd1355f08cc44b49394 Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Fri, 21 Mar 2025 23:25:40 -0400 Subject: [PATCH] implement /api/v1/bookmarks --- packages/megalodon/src/misskey.ts | 32 ++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/packages/megalodon/src/misskey.ts b/packages/megalodon/src/misskey.ts index 78ebbae496..643082dff0 100644 --- a/packages/megalodon/src/misskey.ts +++ b/packages/megalodon/src/misskey.ts @@ -657,16 +657,38 @@ export default class Misskey implements MegalodonInterface { // ====================================== // accounts/bookmarks // ====================================== - public async getBookmarks(_options?: { + /** + * POST /api/i/favorites + */ + public async getBookmarks(options?: { limit?: number max_id?: string since_id?: string min_id?: string }): Promise>> { - return new Promise((_, reject) => { - const err = new NoImplementedError('misskey does not support') - reject(err) - }) + let params = {} + if (options) { + if (options.limit) { + params = Object.assign(params, { + limit: options.limit + }) + } + if (options.max_id) { + params = Object.assign(params, { + untilId: options.max_id + }) + } + if (options.min_id) { + params = Object.assign(params, { + sinceId: options.min_id + }) + } + } + return this.client.post>('/api/i/favorites', params).then(res => { + return Object.assign(res, { + data: res.data.map(fav => MisskeyAPI.Converter.note(fav.note, this.baseUrl)) + }) + }) } // ======================================