From 4c62c48b2d05bcc5e099c3556b62230c2da26e1e Mon Sep 17 00:00:00 2001 From: "/ /\\ / /\\/" <imaitland@gmail.com> Date: Wed, 29 Jan 2020 11:08:48 -0500 Subject: [PATCH] check for beta=1 querystring and use posting_json_metadata if present --- src/avatar.ts | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/avatar.ts b/src/avatar.ts index 32b2069..f6f34ea 100644 --- a/src/avatar.ts +++ b/src/avatar.ts @@ -21,17 +21,28 @@ export async function avatarHandler(ctx: KoaContext) { const username = ctx.params['username'] const size = AvatarSizes[ctx.params['size']] || AvatarSizes.medium + const qs = ctx.request.query const [account] = await rpcClient.database.getAccounts([username]) APIError.assert(account, APIError.Code.NoSuchAccount) let metadata: any - try { - metadata = JSON.parse(account.json_metadata) - } catch (error) { - ctx.log.debug(error, 'unable to parse json_metadata for %s', account.name) - metadata = {} + + if (qs.beta === '1'){ + try { + metadata = JSON.parse(account.posting_json_metadata) + } catch (error) { + ctx.log.debug(error, 'unable to parse posting_json_metadata for %s, remove the beta=1 query string to fall back to json_metadata.', account.name) + metadata = {} + } + } else { + try { + metadata = JSON.parse(account.json_metadata) + } catch (error) { + ctx.log.debug(error, 'unable to parse json_metadata for %s', account.name) + metadata = {} + } } let avatarUrl: string = DefaultAvatar -- GitLab