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