From fcf952e1f3f919237fbae6e4cd8395a0dc877d91 Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Tue, 9 Apr 2024 18:33:35 -1000 Subject: [PATCH] Add Lysand well-known route --- routes.ts | 1 + server/api/well-known/lysand.ts | 29 +++++++---------------------- 2 files changed, 8 insertions(+), 22 deletions(-) diff --git a/routes.ts b/routes.ts index 2bb0026d..b655b177 100644 --- a/routes.ts +++ b/routes.ts @@ -90,6 +90,7 @@ export const rawRoutes = { // .well-known queries are automatically re-routed to well-known "/well-known/webfinger": "./server/api/well-known/webfinger/index", "/well-known/host-meta": "./server/api/well-known/host-meta/index", + "/well-known/lysand": "./server/api/well-known/lysand", "/[...404]": "./server/api/[...404]", } as Record; diff --git a/server/api/well-known/lysand.ts b/server/api/well-known/lysand.ts index 5c2f8a56..8672a265 100644 --- a/server/api/well-known/lysand.ts +++ b/server/api/well-known/lysand.ts @@ -1,5 +1,8 @@ import { apiRoute, applyConfig } from "@api"; +import { urlToContentFormat } from "@content_types"; import { jsonResponse } from "@response"; +import type * as Lysand from "lysand-types"; +import pkg from "../../../package.json"; export const meta = applyConfig({ allowedMethods: ["GET"], @@ -20,30 +23,12 @@ export default apiRoute(async (req, matchedRoute, extraData) => { return jsonResponse({ type: "ServerMetadata", name: config.instance.name, - version: "0.0.1", + version: pkg.version, description: config.instance.description, - logo: config.instance.logo - ? [ - { - content: config.instance.logo, - content_type: `image/${ - config.instance.logo.split(".")[1] - }`, - }, - ] - : undefined, - banner: config.instance.banner - ? [ - { - content: config.instance.banner, - content_type: `image/${ - config.instance.banner.split(".")[1] - }`, - }, - ] - : undefined, + logo: urlToContentFormat(config.instance.logo) ?? undefined, + banner: urlToContentFormat(config.instance.banner) ?? undefined, supported_extensions: ["org.lysand:custom_emojis"], website: "https://lysand.org", // TODO: Add admins, moderators field - }); + } satisfies Lysand.ServerMetadata); });