DashX-API / plugins /mediafire.js
HerzaJ's picture
Create mediafire.js
f8ae812 verified
const cheerio = require('cheerio');
const { basename, extname } = require('path');
async function mediafire(url) {
const $ = cheerio.load(await (await fetch(url.trim())).text())
const title = $("meta[property='og:title']").attr("content")?.trim() || "Unknown"
const size = /Download\s*\(([\d.]+\s*[KMGT]?B)\)/i.exec($.html())?.[1] || "Unknown"
const dl = $("a.popsok[href^='https://download']").attr("href")?.trim() || $("a.popsok:not([href^='javascript'])").attr("href")?.trim() || (() => { throw new Error("Download URL not found.") })()
return { name: title, filename: basename(dl), type: extname(dl), size, download: dl, link: url.trim() }
}
const handler = async (req, res) => {
try {
const { url } = req.query;
if (!url) {
return res.status(400).json({
success: false,
error: 'Missing required parameter: url'
});
}
const result = await mediafire(url);
res.json({
author: "Herza",
success: true,
data: result
});
} catch (error) {
res.status(500).json({
success: false,
error: error.message
});
}
};
module.exports = {
name: 'MediaFire DL',
description: 'Download File From Mediafire',
type: 'GET',
routes: ['api/download/mediafire'],
tags: ['downloader', 'tools', 'misc'],
parameters: ['url', 'key'],
enabled: true,
main: ['Downloader'],
handler
}