diff --git a/src/avatar.ts b/src/avatar.ts index 32b2069d578dfc2b3626b60b7bb1fd1b08f22485..f6f34ea1c7157c8b2c217bac68a990a4ec673ebe 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