|
|
const fetch = require('node-fetch'); |
|
|
const axios = require('axios') |
|
|
const FormData = require('form-data'); |
|
|
const { fromBuffer } = require('file-type'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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; |
|
|
} |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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', { |
|
|
method: 'POST', |
|
|
body: form |
|
|
}); |
|
|
const json = await res.json(); |
|
|
if (!json.success) throw json; |
|
|
return json.link; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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; |
|
|
}; |
|
|
|