Add Lysand well-known route

This commit is contained in:
Jesse Wierzbinski 2024-04-09 18:33:35 -10:00
parent d5817e985d
commit fcf952e1f3
No known key found for this signature in database
2 changed files with 8 additions and 22 deletions

View file

@ -90,6 +90,7 @@ export const rawRoutes = {
// .well-known queries are automatically re-routed to well-known // .well-known queries are automatically re-routed to well-known
"/well-known/webfinger": "./server/api/well-known/webfinger/index", "/well-known/webfinger": "./server/api/well-known/webfinger/index",
"/well-known/host-meta": "./server/api/well-known/host-meta/index", "/well-known/host-meta": "./server/api/well-known/host-meta/index",
"/well-known/lysand": "./server/api/well-known/lysand",
"/[...404]": "./server/api/[...404]", "/[...404]": "./server/api/[...404]",
} as Record<string, string>; } as Record<string, string>;

View file

@ -1,5 +1,8 @@
import { apiRoute, applyConfig } from "@api"; import { apiRoute, applyConfig } from "@api";
import { urlToContentFormat } from "@content_types";
import { jsonResponse } from "@response"; import { jsonResponse } from "@response";
import type * as Lysand from "lysand-types";
import pkg from "../../../package.json";
export const meta = applyConfig({ export const meta = applyConfig({
allowedMethods: ["GET"], allowedMethods: ["GET"],
@ -20,30 +23,12 @@ export default apiRoute(async (req, matchedRoute, extraData) => {
return jsonResponse({ return jsonResponse({
type: "ServerMetadata", type: "ServerMetadata",
name: config.instance.name, name: config.instance.name,
version: "0.0.1", version: pkg.version,
description: config.instance.description, description: config.instance.description,
logo: config.instance.logo logo: urlToContentFormat(config.instance.logo) ?? undefined,
? [ banner: urlToContentFormat(config.instance.banner) ?? undefined,
{
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,
supported_extensions: ["org.lysand:custom_emojis"], supported_extensions: ["org.lysand:custom_emojis"],
website: "https://lysand.org", website: "https://lysand.org",
// TODO: Add admins, moderators field // TODO: Add admins, moderators field
}); } satisfies Lysand.ServerMetadata);
}); });