将 TypeScript 代码转换为 JavaScript
'use strict'; const got_1 = require('got'); const { decryptSnapSave, ScraperError } = require('../utils.js'); const cheerio_1 = require('cheerio'); const { SnapSaveArgsSchema, SnapSaveSchema } = require('./types.js');
async function snapsave(url) {
SnapSaveArgsSchema.parse(arguments);
const html = await got_1.default.post('https://snapsave.app/action.php?lang=id', {
headers: {
accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9',
'content-type': 'application/x-www-form-urlencoded',
origin: 'https://snapsave.app',
referer: 'https://snapsave.app/id',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
},
form: { url }
}).text();
const decode = decryptSnapSave(html);
const $ = cheerio_1.default.load(decode);
const results = [];
if ($('table.table').length) {
$('table > tbody > tr').each((_, el) => {
const $el = $(el);
const $td = $el.find('td');
if ($td.eq(1).text().includes('Tidak')) {
const resolution = $td.eq(0).text();
const _url = $td.eq(2).find('a').attr('href');
results.push({
resolution,
url: _url
});
}
});
}
else {
const thumbnail = $('div.download-items__thumb > img').attr('src');
let _url = $('div.download-items__btn > a').attr('href');
if (!_url.includes('snapsave.app'))
_url = https://snapsave.app${_url};
results.push({
thumbnail,
url: _url
});
}
if (results.length === 0)
throw new ScraperError(`No results found
${decode}`); return results.map(result => SnapSaveSchema.parse(result)); }
exports.default = snapsave;
原文地址: https://www.cveoy.top/t/topic/oQXR 著作权归作者所有。请勿转载和采集!