diff --git a/assets/public/1276374a404452756f3c9cc2601508a5.png b/assets/public/1276374a404452756f3c9cc2601508a5.png
new file mode 100644
index 00000000..b9f7f62c
--- /dev/null
+++ b/assets/public/1276374a404452756f3c9cc2601508a5.png
Binary files differdiff --git a/assets/public/2e46fe14586f8e95471c0917f56726b5.png b/assets/public/2e46fe14586f8e95471c0917f56726b5.png
new file mode 100644
index 00000000..bf747d73
--- /dev/null
+++ b/assets/public/2e46fe14586f8e95471c0917f56726b5.png
Binary files differdiff --git a/assets/public/3b70bb66089c60f8be5e214bf8574c9d.png b/assets/public/3b70bb66089c60f8be5e214bf8574c9d.png
new file mode 100644
index 00000000..c4f95d93
--- /dev/null
+++ b/assets/public/3b70bb66089c60f8be5e214bf8574c9d.png
Binary files differdiff --git a/assets/public/4ab900144b0865430dc9be825c838faa.png b/assets/public/4ab900144b0865430dc9be825c838faa.png
new file mode 100644
index 00000000..f3ba032d
--- /dev/null
+++ b/assets/public/4ab900144b0865430dc9be825c838faa.png
Binary files differdiff --git a/assets/public/904bf9f1b61f53ef4a3b7a893afeabe3.png b/assets/public/904bf9f1b61f53ef4a3b7a893afeabe3.png
new file mode 100644
index 00000000..0cac9678
--- /dev/null
+++ b/assets/public/904bf9f1b61f53ef4a3b7a893afeabe3.png
Binary files differdiff --git a/assets/public/9581acd31832465bdeaa5385b0e919a3.png b/assets/public/9581acd31832465bdeaa5385b0e919a3.png
new file mode 100644
index 00000000..10261557
--- /dev/null
+++ b/assets/public/9581acd31832465bdeaa5385b0e919a3.png
Binary files differdiff --git a/assets/public/a8a4727cf2dc2939bd3c657fad4463fa.png b/assets/public/a8a4727cf2dc2939bd3c657fad4463fa.png
new file mode 100644
index 00000000..35f16cc6
--- /dev/null
+++ b/assets/public/a8a4727cf2dc2939bd3c657fad4463fa.png
Binary files differdiff --git a/assets/public/fac7e78de9753d4a37083bba74c1d9ef.png b/assets/public/fac7e78de9753d4a37083bba74c1d9ef.png
new file mode 100644
index 00000000..78b66c7e
--- /dev/null
+++ b/assets/public/fac7e78de9753d4a37083bba74c1d9ef.png
Binary files differdiff --git a/src/cdn/routes/embed.ts b/src/cdn/routes/embed.ts
index fd13d215..90ec25a9 100644
--- a/src/cdn/routes/embed.ts
+++ b/src/cdn/routes/embed.ts
@@ -31,6 +31,17 @@ const defaultAvatarHashMap = new Map([
["5", "4c1b599b1ef5b9f1874fdb9933f3e03b"],
]);
+const defaultGroupDMAvatarHashMap = new Map([
+ ["0", "3b70bb66089c60f8be5e214bf8574c9d"],
+ ["1", "9581acd31832465bdeaa5385b0e919a3"],
+ ["2", "a8a4727cf2dc2939bd3c657fad4463fa"],
+ ["3", "2e46fe14586f8e95471c0917f56726b5"],
+ ["4", "fac7e78de9753d4a37083bba74c1d9ef"],
+ ["5", "4ab900144b0865430dc9be825c838faa"],
+ ["6", "1276374a404452756f3c9cc2601508a5"],
+ ["7", "904bf9f1b61f53ef4a3b7a893afeabe3"],
+]);
+
const router = Router();
async function getFile(path: string) {
@@ -64,4 +75,21 @@ router.get("/avatars/:id", async (req: Request, res: Response) => {
return res.send(file);
});
+router.get("/group-avatars/:id", async (req: Request, res: Response) => {
+ let { id } = req.params;
+ id = id.split(".")[0]; // remove .file extension
+ const hash = defaultGroupDMAvatarHashMap.get(id);
+ if (!hash) throw new HTTPError("not found", 404);
+ const path = join(process.cwd(), "assets", "public", `${hash}.png`);
+
+ const file = await getFile(path);
+ if (!file) throw new HTTPError("not found", 404);
+ const type = await FileType.fromBuffer(file);
+
+ res.set("Content-Type", type?.mime);
+ res.set("Cache-Control", "public, max-age=31536000");
+
+ return res.send(file);
+});
+
export default router;
|