From 4091e5c39a4c456b5744b9a86b2cca7f11dbd552 Mon Sep 17 00:00:00 2001 From: fruye Date: Wed, 26 Apr 2023 20:57:20 +0200 Subject: [PATCH] Implement account fields for Misskey From what I've tested, account fields are only visible when searching or directly requesting accounts. Misskey strips some of the account data in note requests, making this is not visible there. --- megalodon/src/misskey/api_client.ts | 9 ++++++++- megalodon/src/misskey/entities/field.ts | 6 ++++++ megalodon/src/misskey/entities/userDetail.ts | 2 ++ megalodon/src/misskey/entity.ts | 1 + 4 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 megalodon/src/misskey/entities/field.ts diff --git a/megalodon/src/misskey/api_client.ts b/megalodon/src/misskey/api_client.ts index 10b43e7..0496b95 100644 --- a/megalodon/src/misskey/api_client.ts +++ b/megalodon/src/misskey/api_client.ts @@ -20,6 +20,7 @@ namespace MisskeyAPI { export type CreatedNote = MisskeyEntity.CreatedNote export type Emoji = MisskeyEntity.Emoji export type Favorite = MisskeyEntity.Favorite + export type Field = MisskeyEntity.Field export type File = MisskeyEntity.File export type Follower = MisskeyEntity.Follower export type Following = MisskeyEntity.Following @@ -62,6 +63,12 @@ namespace MisskeyAPI { } } + export const field = (f: Entity.Field): MegalodonEntity.Field => ({ + name: f.name, + value: escapeMFM(f.value), + verified_at: null + }) + export const user = (u: Entity.User): MegalodonEntity.Account => { let acct = u.username let acctUrl = `https://${u.host || 'example.com'}/@${u.username}` @@ -118,7 +125,7 @@ namespace MisskeyAPI { header_static: u.bannerColor, emojis: u.emojis.map(e => emoji(e)), moved: null, - fields: [], + fields: u.fields.map(f => field(f)), bot: u.isBot, } } diff --git a/megalodon/src/misskey/entities/field.ts b/megalodon/src/misskey/entities/field.ts new file mode 100644 index 0000000..f56d21b --- /dev/null +++ b/megalodon/src/misskey/entities/field.ts @@ -0,0 +1,6 @@ +namespace MisskeyEntity { + export type Field = { + name: string + value: string + } +} diff --git a/megalodon/src/misskey/entities/userDetail.ts b/megalodon/src/misskey/entities/userDetail.ts index c538b76..1c6d643 100644 --- a/megalodon/src/misskey/entities/userDetail.ts +++ b/megalodon/src/misskey/entities/userDetail.ts @@ -1,4 +1,5 @@ /// +/// /// namespace MisskeyEntity { @@ -28,5 +29,6 @@ namespace MisskeyEntity { bannerId: string pinnedNoteIds?: Array pinnedNotes?: Array + fields: Array } } diff --git a/megalodon/src/misskey/entity.ts b/megalodon/src/misskey/entity.ts index 07a49b7..3848c6a 100644 --- a/megalodon/src/misskey/entity.ts +++ b/megalodon/src/misskey/entity.ts @@ -4,6 +4,7 @@ /// /// /// +/// /// /// ///