mirror of
				https://github.com/mmahdium/TorrentMax.git
				synced 2025-11-04 02:58:13 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			34 lines
		
	
	
		
			916 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			916 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",
 | 
						|
    });
 | 
						|
  }
 | 
						|
});
 |