diff --git a/scripts/setup.js b/scripts/setup.js index 2fb2dd0..0fae913 100644 --- a/scripts/setup.js +++ b/scripts/setup.js @@ -105,7 +105,8 @@ async function validateHomeserverOrigin(serverUrlPrompt, url) { const serverNameResponse = await prompt({ type: "input", name: "server_name", - message: "Homeserver name" + message: "Homeserver name", + validate: serverName => !!serverName.match(/[a-z][a-z.]+[a-z]/) }) console.log("What is the URL of your homeserver?") @@ -176,7 +177,7 @@ async function validateHomeserverOrigin(serverUrlPrompt, url) { message: "Client secret" }) - const template = getTemplateRegistration() + const template = getTemplateRegistration(serverNameResponse.server_name) reg = { ...template, url: bridgeOriginResponse.bridge_origin, diff --git a/src/matrix/read-registration.js b/src/matrix/read-registration.js index 8438387..9fb0535 100644 --- a/src/matrix/read-registration.js +++ b/src/matrix/read-registration.js @@ -24,8 +24,12 @@ function writeRegistration(reg) { fs.writeFileSync(registrationFilePath, JSON.stringify(reg, null, 2)) } -/** @returns {import("../types").InitialAppServiceRegistrationConfig} reg */ -function getTemplateRegistration() { +/** + * @param {string} serverName + * @returns {import("../types").InitialAppServiceRegistrationConfig} reg + */ +function getTemplateRegistration(serverName) { + const namespace_prefix = "_ooye_" return { id: "ooye", as_token: crypto.randomBytes(32).toString("hex"), @@ -33,21 +37,21 @@ function getTemplateRegistration() { namespaces: { users: [{ exclusive: true, - regex: "@_ooye_.*:cadence.moe" + regex: `@${namespace_prefix}.*:${serverName}` }], aliases: [{ exclusive: true, - regex: "#_ooye_.*:cadence.moe" + regex: `#${namespace_prefix}.*:${serverName}` }] }, protocols: [ "discord" ], - sender_localpart: "_ooye_bot", + sender_localpart: `${namespace_prefix}bot`, rate_limited: false, socket: 6693, ooye: { - namespace_prefix: "_ooye_", + namespace_prefix, max_file_size: 5000000, content_length_workaround: false, include_user_id_in_mxid: false, diff --git a/src/web/pug/guild.pug b/src/web/pug/guild.pug index 2130aff..960f30b 100644 --- a/src/web/pug/guild.pug +++ b/src/web/pug/guild.pug @@ -136,7 +136,7 @@ block body form.d-flex.ai-center.g8 label.s-label.fl-grow1(for="autocreate") | Create new Matrix rooms automatically - p.s-description If you want, OOYE can automatically create new Matrix rooms and link them when a new Discord channel is spoken in. + p.s-description If you want, OOYE can automatically create new Matrix rooms and link them when an unlinked Discord channel is spoken in. - let value = select("guild_active", "autocreate", {guild_id}).pluck().get() input(type="hidden" name="guild_id" value=guild_id) input.s-toggle-switch.order-last#autocreate(name="autocreate" type="checkbox" hx-post="/api/autocreate" hx-indicator="#autocreate-loading" hx-disabled-elt="this" hx-swap="none" checked=value)