summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-10-09 14:46:59 +0200
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-10-09 14:46:59 +0200
commitd5cdc9198cd6a03a94f1e92b664044ccff5f7aaf (patch)
tree4e9cba1401fd83fd36d803af0f950f508855ee65
parentMerge branch 'master' of http://github.com/fosscord/fosscord-server (diff)
downloadserver-d5cdc9198cd6a03a94f1e92b664044ccff5f7aaf.tar.xz
:art: cdn now also works without setting a public endpoint
-rw-r--r--api/src/routes/channels/#channel_id/messages/index.ts5
-rw-r--r--bundle/src/Server.ts3
2 files changed, 4 insertions, 4 deletions
diff --git a/api/src/routes/channels/#channel_id/messages/index.ts b/api/src/routes/channels/#channel_id/messages/index.ts
index 1f856b80..4ec31417 100644
--- a/api/src/routes/channels/#channel_id/messages/index.ts
+++ b/api/src/routes/channels/#channel_id/messages/index.ts
@@ -103,6 +103,7 @@ router.get("/", async (req: Request, res: Response) => {
 	}
 
 	const messages = await Message.find(query);
+	const endpoint = Config.get().cdn.endpointPublic;
 
 	return res.json(
 		messages.map((x) => {
@@ -115,7 +116,9 @@ router.get("/", async (req: Request, res: Response) => {
 			// @ts-ignore
 			if (!x.author) x.author = { discriminator: "0000", username: "Deleted User", public_flags: "0", avatar: null };
 			x.attachments?.forEach((x) => {
-				x.proxy_url = `${Config.get().cdn.endpointPublic || "http://localhost:3003"}${new URL(x.proxy_url).pathname}`;
+				// dynamically set attachment proxy_url in case the endpoint changed
+				const uri = x.proxy_url.startsWith("http") ? x.proxy_url : `https://example.org${x.proxy_url}`;
+				x.proxy_url = `${endpoint == null ? "http://localhost:3003" : endpoint}${new URL(uri).pathname}`;
 			});
 
 			return x;
diff --git a/bundle/src/Server.ts b/bundle/src/Server.ts
index 662b9008..5dda2d02 100644
--- a/bundle/src/Server.ts
+++ b/bundle/src/Server.ts
@@ -30,9 +30,6 @@ async function main() {
 		cdn: {
 			endpointClient: "${location.host}",
 			endpointPrivate: `http://localhost:${port}`,
-			...(!Config.get().cdn.endpointPublic && {
-				endpointPublic: `http://localhost:${port}`,
-			}),
 		},
 		gateway: {
 			endpointClient: