diff --git a/Catalogger.Frontend/package.json b/Catalogger.Frontend/package.json
index 114f4b8..b4070de 100644
--- a/Catalogger.Frontend/package.json
+++ b/Catalogger.Frontend/package.json
@@ -17,6 +17,7 @@
"@sveltejs/vite-plugin-svelte": "^3.0.0",
"@sveltestrap/sveltestrap": "^6.2.7",
"@types/eslint": "^9.6.0",
+ "@types/luxon": "^3.4.2",
"bootstrap": "^5.3.3",
"eslint": "^9.0.0",
"eslint-config-prettier": "^9.1.0",
@@ -33,5 +34,8 @@
"vite": "^5.0.3",
"vite-plugin-markdown": "^2.2.0"
},
- "type": "module"
+ "type": "module",
+ "dependencies": {
+ "luxon": "^3.5.0"
+ }
}
diff --git a/Catalogger.Frontend/src/lib/api.ts b/Catalogger.Frontend/src/lib/api.ts
index cd20aac..9db5318 100644
--- a/Catalogger.Frontend/src/lib/api.ts
+++ b/Catalogger.Frontend/src/lib/api.ts
@@ -137,3 +137,17 @@ export type GuildChannelConfig = {
message_delete: string;
message_delete_bulk: string;
};
+
+export type Meta = {
+ guilds: number;
+ invite_url: string;
+ news: NewsMessage[];
+};
+
+export type NewsMessage = {
+ author: string;
+ content: string;
+ attachment_urls: string[];
+ posted_at: string;
+ edited_at: string | null;
+};
diff --git a/Catalogger.Frontend/src/routes/+page.svelte b/Catalogger.Frontend/src/routes/+page.svelte
index 3ceb478..f0bed2a 100644
--- a/Catalogger.Frontend/src/routes/+page.svelte
+++ b/Catalogger.Frontend/src/routes/+page.svelte
@@ -1,20 +1,21 @@
@@ -59,3 +60,11 @@
{/if}
+
+News
+
+{#each news as message (message.posted_at)}
+
+{:else}
+ No news right now.
+{/each}
diff --git a/Catalogger.Frontend/src/routes/Message.svelte b/Catalogger.Frontend/src/routes/Message.svelte
new file mode 100644
index 0000000..7db0ddb
--- /dev/null
+++ b/Catalogger.Frontend/src/routes/Message.svelte
@@ -0,0 +1,31 @@
+
+
+
+
+ {message.content}
+
+
+ From {message.author} • Posted {postedAt}
+ {#if editedAt}
+ (edited {editedAt})
+ {/if}
+
+
diff --git a/Catalogger.Frontend/yarn.lock b/Catalogger.Frontend/yarn.lock
index 492f46b..e09c92d 100644
--- a/Catalogger.Frontend/yarn.lock
+++ b/Catalogger.Frontend/yarn.lock
@@ -505,6 +505,11 @@
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
+"@types/luxon@^3.4.2":
+ version "3.4.2"
+ resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.4.2.tgz#e4fc7214a420173cea47739c33cdf10874694db7"
+ integrity sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==
+
"@typescript-eslint/eslint-plugin@8.9.0":
version "8.9.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.9.0.tgz#bf0b25305b0bf014b4b194a6919103d7ac2a7907"
@@ -1278,6 +1283,11 @@ lodash.merge@^4.6.2:
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+luxon@^3.5.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.5.0.tgz#6b6f65c5cd1d61d1fd19dbf07ee87a50bf4b8e20"
+ integrity sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==
+
magic-string@^0.30.10, magic-string@^0.30.4, magic-string@^0.30.5:
version "0.30.12"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.12.tgz#9eb11c9d072b9bcb4940a5b2c2e1a217e4ee1a60"