diff --git a/megalodon/src/firefish.ts b/megalodon/src/firefish.ts index 9d10cdff..d0184ded 100644 --- a/megalodon/src/firefish.ts +++ b/megalodon/src/firefish.ts @@ -617,6 +617,13 @@ export default class Firefish implements MegalodonInterface { }) } + public async lookupAccount(_acct: string): Promise> { + return new Promise((_, reject) => { + const err = new NotImplementedError('Firefish does not support this method') + reject(err) + }) + } + // ====================================== // accounts/bookmarks // ====================================== diff --git a/megalodon/src/friendica.ts b/megalodon/src/friendica.ts index fd29e943..8d153547 100644 --- a/megalodon/src/friendica.ts +++ b/megalodon/src/friendica.ts @@ -738,6 +738,13 @@ export default class Friendica implements MegalodonInterface { }) } + public async lookupAccount(_acct: string): Promise> { + return new Promise((_, reject) => { + const err = new NotImplementedError('Friendica does not support this method') + reject(err) + }) + } + // ====================================== // accounts/bookmarks // ====================================== diff --git a/megalodon/src/gotosocial.ts b/megalodon/src/gotosocial.ts index 4a452a89..fe5b808f 100644 --- a/megalodon/src/gotosocial.ts +++ b/megalodon/src/gotosocial.ts @@ -728,6 +728,20 @@ export default class Gotosocial implements MegalodonInterface { }) } + /** + * GET /api/v1/accounts/lookup + * + * @param acct The username or Webfinger address to lookup. + * @return Account. + */ + public async lookupAccount(acct: string): Promise> { + return this.client.get(`/api/v1/accounts/lookup?acct=${acct}`).then(res => { + return Object.assign(res, { + data: GotosocialAPI.Converter.account(res.data) + }) + }) + } + // ====================================== // accounts/bookmarks // ====================================== diff --git a/megalodon/src/mastodon.ts b/megalodon/src/mastodon.ts index 8ca97e7e..70e0f6ba 100644 --- a/megalodon/src/mastodon.ts +++ b/megalodon/src/mastodon.ts @@ -817,6 +817,20 @@ export default class Mastodon implements MegalodonInterface { }) } + /** + * GET /api/v1/accounts/lookup + * + * @param acct The username or Webfinger address to lookup. + * @return Account. + */ + public async lookupAccount(acct: string): Promise> { + return this.client.get(`/api/v1/accounts/lookup?acct=${acct}`).then(res => { + return Object.assign(res, { + data: MastodonAPI.Converter.account(res.data) + }) + }) + } + // ====================================== // accounts/bookmarks // ====================================== diff --git a/megalodon/src/megalodon.ts b/megalodon/src/megalodon.ts index 2ac3f408..678d41b5 100644 --- a/megalodon/src/megalodon.ts +++ b/megalodon/src/megalodon.ts @@ -367,6 +367,14 @@ export interface MegalodonInterface { since_id?: string } ): Promise>> + /** + * Lookup account ID from Webfinger address. + * + * @param acct Webfinger address. + * @return Account + */ + lookupAccount(acct: string): Promise> + // ====================================== // accounts/bookmarks // ====================================== diff --git a/megalodon/src/pleroma.ts b/megalodon/src/pleroma.ts index fe986f50..6259bbb2 100644 --- a/megalodon/src/pleroma.ts +++ b/megalodon/src/pleroma.ts @@ -815,6 +815,20 @@ export default class Pleroma implements MegalodonInterface { }) } + /** + * GET /api/v1/accounts/lookup + * + * @param acct The username or Webfinger address to lookup. + * @return Account. + */ + public async lookupAccount(acct: string): Promise> { + return this.client.get(`/api/v1/accounts/lookup?acct=${acct}`).then(res => { + return Object.assign(res, { + data: PleromaAPI.Converter.account(res.data) + }) + }) + } + // ====================================== // accounts/bookmarks // ======================================