From 88a232fb4a27875cd02bbf1f4a3e9fbd8cb9192c Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Mon, 2 Dec 2024 15:06:10 +1300 Subject: [PATCH] Cope if the username is already registered --- scripts/setup.js | 10 +--------- src/matrix/api.js | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/scripts/setup.js b/scripts/setup.js index a8b068b..8db46a7 100644 --- a/scripts/setup.js +++ b/scripts/setup.js @@ -276,15 +276,7 @@ async function validateHomeserverOrigin(serverUrlPrompt, url) { console.log("✅ Database is ready...") // ensure appservice bot user is registered... - try { - await api.register(reg.sender_localpart) - } catch (e) { - if (e.errcode === "M_USER_IN_USE" || e.data?.error === "Internal server error") { - // "Internal server error" is the only OK error because older versions of Synapse say this if you try to register the same username twice. - } else { - throw e - } - } + await api.register(reg.sender_localpart) // upload initial images... const avatarUrl = await file.uploadDiscordFileToMxc("https://cadence.moe/friends/out_of_your_element.png") diff --git a/src/matrix/api.js b/src/matrix/api.js index 79dd7f0..a75f959 100644 --- a/src/matrix/api.js +++ b/src/matrix/api.js @@ -35,14 +35,21 @@ function path(p, mxid, otherParams = {}) { /** * @param {string} username - * @returns {Promise} */ -function register(username) { +async function register(username) { console.log(`[api] register: ${username}`) - return mreq.mreq("POST", "/client/v3/register", { - type: "m.login.application_service", - username - }) + try { + await mreq.mreq("POST", "/client/v3/register", { + type: "m.login.application_service", + username + }) + } catch (e) { + if (e.errcode === "M_USER_IN_USE" || e.data?.error === "Internal server error") { + // "Internal server error" is the only OK error because older versions of Synapse say this if you try to register the same username twice. + } else { + throw e + } + } } /**