File size: 2,333 Bytes
d8a4b7b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
const fetch = require('node-fetch');
const axios = require('axios')
const FormData = require('form-data');
const { fromBuffer } = require('file-type');
/**
* Upload file to https://pomf.lain.la
* @returns {string|null|(string|null)[]}
*/
const pomf = async (buffer) => {
const { ext, mime } = (await fromBuffer(buffer)) || {};
const form = new FormData();
form.append("files[]", buffer, { filename: `tmp.${ext}`, contentType: mime });
try {
const { data } = await axios.post("https://pomf.lain.la/upload.php", form, {
headers: form.getHeaders(),
});
console.log(data);
return data.files[0].url
} catch (error) {
throw error;
}
};
/**
* Upload epheremal file to file.io
* `Expired in 1 day`
* `100MB Max Filesize`
* @param {Buffer} buffer File Buffer
*/
const fileIO = async (buffer) => {
const { ext } = await fromBuffer(buffer) || {};
const form = new FormData();
form.append('file', buffer, `tmp.${ext}`);
const res = await fetch('https://file.io/?expires=1d', { // 1 Day Expiry Date
method: 'POST',
body: form
});
const json = await res.json();
if (!json.success) throw json;
return json.link;
};
/**
* Upload file to https://8030.us.kg
* @returns {string|null|(string|null)[]}
*/
const api = async (buffer) => {
let { ext } = await fromBuffer(buffer);
let bodyForm = new FormData();
bodyForm.append("file", buffer, "file." + ext);
let res = await fetch("https://8030.us.kg/api/upload.php", {
method: "post",
body: bodyForm,
});
let data = await res.json();
let resultUrl = data.result ? data.result.url : '';
return resultUrl;
}
/**
* Upload file to https://file.btch.rf.gd
* @returns {string|null|(string|null)[]}
*/
const api2 = async (buffer) => {
let { ext } = await fromBuffer(buffer);
let bodyForm = new FormData();
bodyForm.append("file", buffer, "file." + ext);
let res = await fetch("https://file.btch.rf.gd/api/upload.php", {
method: "post",
body: bodyForm,
});
let data = await res.json();
let resultUrl = data.result ? data.result.url : '';
return resultUrl;
}
module.exports = async function (inp) {
let err = false;
for (const upload of [pomf, api, api2, fileIO]) {
try {
return await upload(inp);
} catch (e) {
err = e;
}
}
if (err) throw err;
};
|