Create sfiledl.js
Browse files- sfiledl.js +47 -0
sfiledl.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
const axios = require('axios')
|
| 2 |
+
const cheerio = require('cheerio')
|
| 3 |
+
|
| 4 |
+
async function sfile(url) {
|
| 5 |
+
return new Promise(async (resolve, reject) => {
|
| 6 |
+
try {
|
| 7 |
+
const headers = {
|
| 8 |
+
'referer': url,
|
| 9 |
+
'user-Agent': 'Mozilla/5.0 (Linux; Android 14; NX769J Build/UKQ1.230917.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/130.0.6723.107 Mobile Safari/537.36',
|
| 10 |
+
};
|
| 11 |
+
|
| 12 |
+
let getPage = await axios.get(url, { headers });
|
| 13 |
+
let $ = cheerio.load(getPage.data);
|
| 14 |
+
let safelink = $("#download").attr("href");
|
| 15 |
+
|
| 16 |
+
headers.cookie = getPage.headers['set-cookie'].map(c => c.split(';')[0]).join('; ');
|
| 17 |
+
headers.referer = safelink;
|
| 18 |
+
|
| 19 |
+
let resPage = await axios.get(safelink, { headers });
|
| 20 |
+
let s,f = cheerio.load(resPage.data);
|
| 21 |
+
|
| 22 |
+
const [dl, [name, ext, size], downloaded, uploaded, mime, author] = [
|
| 23 |
+
f("#download").attr("href")+'&k='+f("#download").attr("onclick").match(/&k='\+(.*?)';/)?.[1].replace("'",''),
|
| 24 |
+
(()=>{s=f('.w3-text-blue b').text().match(/^(.+?)(?:\.([^.\s()]+))?(?:\s*\(([^)]*)\))?$/);return[s[1].trim(),s[2],s[3]]})(),
|
| 25 |
+
$('.icon-cloud-download').parent().text().split(':')[1].trim(),
|
| 26 |
+
$('.icon-upload').parent().text().split(':')[1].trim(),
|
| 27 |
+
$('.list:nth-child(2)').eq(0).text().slice(3).trim(),
|
| 28 |
+
$('.list a').first().text().trim(),
|
| 29 |
+
]
|
| 30 |
+
|
| 31 |
+
resolve({
|
| 32 |
+
name,
|
| 33 |
+
size,
|
| 34 |
+
author,
|
| 35 |
+
uploaded,
|
| 36 |
+
downloaded,
|
| 37 |
+
mime,
|
| 38 |
+
ext,
|
| 39 |
+
dl
|
| 40 |
+
});
|
| 41 |
+
} catch (e) {
|
| 42 |
+
reject(e);
|
| 43 |
+
}
|
| 44 |
+
});
|
| 45 |
+
};
|
| 46 |
+
|
| 47 |
+
module.exports = sfile;
|