Files
TorrentMax/server/api/magnet.ts
2025-10-30 22:29:39 +03:30

34 lines
914 B
TypeScript

import { getMagnetUrl, parseMagnet } from "~~/server/utils/magnetParser";
import { addTrackers, getTrackers } from "~~/server/utils/trackerHelper";
export default defineEventHandler(async (event) => {
const body = await readBody<{ magnet?: string }>(event);
const magnetUrl = body?.magnet;
if (!magnetUrl) {
throw createError({
statusCode: 400,
statusMessage: "Missing magnet URL",
});
}
try {
const maxedMagnet = addTrackers(
parseMagnet(magnetUrl),
await getTrackers()
);
return {
totalTrackers: maxedMagnet.tr?.length,
name: maxedMagnet.dn,
id: maxedMagnet.xt.slice(9),
maxedMagnet: getMagnetUrl(maxedMagnet),
};
// eslint-disable-next-line @typescript-eslint/no-explicit-any
} catch (error: any) {
throw createError({
statusCode: 400,
statusMessage: error.message || "Invalid magnet URL",
});
}
});