diff --git a/apps/web/package.json b/apps/web/package.json index 765f878..c9bac24 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -20,6 +20,7 @@ "@sveltejs/vite-plugin-svelte": "4.0.4", "autoprefixer": "10.4.20", "mdsvex": "0.12.3", + "misskey-js": "2024.11.1-alpha.0", "schema-dts": "1.1.2", "svelte": "5.16.1", "svelte-check": "4.1.1", @@ -35,7 +36,6 @@ "@tailwindcss/typography": "0.5.15", "deepmerge": "4.3.1", "lucide-svelte": "0.469.0", - "misskey-js": "2024.11.1-alpha.0", "sveltekit-rate-limiter": "0.6.1", "tailwind-merge": "2.6.0" } diff --git a/apps/web/src/routes/api/misskey/invite-code/+server.ts b/apps/web/src/routes/api/misskey/invite-code/+server.ts index 15ebeb1..05ccfa6 100644 --- a/apps/web/src/routes/api/misskey/invite-code/+server.ts +++ b/apps/web/src/routes/api/misskey/invite-code/+server.ts @@ -3,29 +3,37 @@ import { RateLimiter } from "sveltekit-rate-limiter/server"; import { dev } from "$app/environment"; import { MISSKEY_API_KEY } from "$env/static/private"; -import { api } from "misskey-js"; +import type { InviteListResponse } from "misskey-js/entities.js"; const limiter = new RateLimiter({ IP: [10, "d"], // IP address limiter IPUA: [5, "10m"], // IP + User Agent limiter }); -const misskey = new api.APIClient({ - origin: "https://misskey.cannorin.net", - credential: MISSKEY_API_KEY, -}); - export async function GET(event: RequestEvent) { if (!dev && (await limiter.isLimited(event))) return new Response("Too many requests", { status: 429 }); - const invites = await misskey.request("admin/invite/list", { - type: "unused", - sort: "+createdAt", - limit: 10, - }); - - const invite = invites.find((x) => !x.createdBy && !x.usedAt); + const res = await fetch( + "https://misskey.cannorin.net/api/admin/invite/list", + { + method: "POST", + body: JSON.stringify({ + i: MISSKEY_API_KEY, + type: "unused", + sort: "+createdAt", + limit: 10, + }), + headers: { + "Content-Type": "application/json", + }, + }, + ); + const json = await res.json(); + console.log(json); + const invite = (json as InviteListResponse).find( + (x) => !x.createdBy && !x.usedAt, + ); if (invite) return text(invite.code); return new Response("Not found", { status: 404 }); }