Add /arubinosky (2)
This commit is contained in:
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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", {
|
||||
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,
|
||||
});
|
||||
|
||||
const invite = invites.find((x) => !x.createdBy && !x.usedAt);
|
||||
}),
|
||||
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 });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user