matrix-art

An image gallery for Matrix
git clone git://archive.git.mtrnord.blog/MTRNord/matrix-art.git
Log | Files | Refs | README | LICENSE

commit 8dc7631c10b5d2a41ead056be05421df5b43d2cb
parent aa45a94f3de300930329e87b6607cbfc2d23de10
Author: MTRNord <mtrnord1@gmail.com>
Date:   Sat,  5 Feb 2022 20:39:50 +0100

Properly handle 429

Diffstat:
Mhelpers/matrix_client.ts | 8+++++++-
Mhelpers/storage.ts | 2+-
2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/helpers/matrix_client.ts b/helpers/matrix_client.ts @@ -121,7 +121,13 @@ export default class MatrixClient { private async fetchJson(fullUrl: string, fetchParams: any) { const response = await fetch(fullUrl, fetchParams); const data = await response.json(); - if (!response.ok) { + if (response.status === 429) { + const retry_after: number = data.retry_after_ms; + return new Promise((resolve) => { + setTimeout(() => { resolve(this.fetchJson(fullUrl, fetchParams)); }, retry_after); + }); + } + if (response.status !== 200) { if (data.errcode === "M_UNKNOWN_TOKEN") { console.log("unknown token, logging user out:", data); // suppressLogout so we don't recursively call fetchJson diff --git a/helpers/storage.ts b/helpers/storage.ts @@ -1,7 +1,7 @@ const STORAGE_VERSION = 2; export default class Storage { private prefix; - private nodeLocalStorage?; + private nodeLocalStorage?: any; constructor(prefix: string) { this.prefix = prefix; if (typeof window === "undefined") {