UNPKG

scraper-jsc

Version:
434 lines (433 loc) 25.2 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.downloads = void 0; var axios_1 = require("axios"); var cheerio_1 = require("cheerio"); var jsdom_1 = require("jsdom"); var config_1 = require("../config"); var y2mate_1 = require("../lib/y2mate"); function shortener(url) { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { return [2 /*return*/, url]; }); }); } exports.downloads = { FaceBook: function (url) { return __awaiter(this, void 0, void 0, function () { var config, _a, data, status_1, $_1, vid_1, thumb, desc, hasil, err_1; return __generator(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 2, , 3]); config = { id: url, locale: "id", }; return [4 /*yield*/, (0, axios_1.default)("https://getmyfb.com/process", { method: "POST", data: new URLSearchParams(Object.entries(config)), headers: { "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36", cookie: "PHPSESSID=914a5et39uur28e84t9env0378; popCookie=1; prefetchAd_4301805=true", }, })]; case 1: _a = _b.sent(), data = _a.data, status_1 = _a.status; if (status_1 === 200) { $_1 = (0, cheerio_1.load)(data), vid_1 = [], thumb = $_1("div.container > div.results-item > div.results-item-image-wrapper").find("img").attr("src"), desc = $_1("div.container > div.results-item > div.results-item-text").text().trim(); $_1("div.container > div.results-download > ul > li").each(function (u, i) { vid_1.push({ quality: $_1(i).text().trim().split('(')[0], link: $_1(i).find('a').attr('href') }); }); hasil = { desc: desc, thumb: thumb, video: vid_1, }; return [2 /*return*/, (0, config_1.Proret)(hasil)]; } return [3 /*break*/, 3]; case 2: err_1 = _b.sent(); console.log(err_1); return [3 /*break*/, 3]; case 3: ; return [2 /*return*/]; } }); }); }, MusiCally: function (url) { return __awaiter(this, void 0, void 0, function () { var user_agent, _a, data, status_2, headers, $, url_name, token_name, token_, verify, _data, respon, ch, resaudio, vdlk, hc, hasil_, err_2; var _b; return __generator(this, function (_c) { switch (_c.label) { case 0: _c.trys.push([0, 5, , 6]); user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0"; return [4 /*yield*/, axios_1.default.get("https://musicaldown.com/id", { headers: { "user-agent": user_agent, }, })]; case 1: _a = _c.sent(), data = _a.data, status_2 = _a.status, headers = _a.headers; if (!(status_2 === 200)) return [3 /*break*/, 4]; $ = (0, cheerio_1.load)(data); url_name = $("#link_url").attr("name"); token_name = $("#submit-form > div").find("div:nth-child(1) > input[type=hidden]:nth-child(2)").attr("name"); token_ = $("#submit-form > div").find("div:nth-child(1) > input[type=hidden]:nth-child(2)").attr("value"); verify = $("#submit-form > div").find("div:nth-child(1) > input[type=hidden]:nth-child(3)").attr("value"); _data = (_b = {}, _b["".concat(url_name)] = url, _b["".concat(token_name)] = token_, _b.verify = verify, _b); return [4 /*yield*/, axios_1.default.request({ url: "https://musicaldown.com/id/download", method: "post", data: new URLSearchParams(Object.entries(_data)), headers: { "user-agent": user_agent, cookie: headers["set-cookie"], }, })]; case 2: respon = _c.sent(); ch = (0, cheerio_1.load)(respon.data); return [4 /*yield*/, axios_1.default.request({ url: "https://musicaldown.com/id/mp3", method: "post", headers: { "user-agent": user_agent, cookie: headers["set-cookie"], }, })]; case 3: resaudio = _c.sent(); vdlk = ch("body > div.welcome.section > div > div:nth-child(2) > div.col.s12.l8 > a:nth-child(5)").attr("href"); if (typeof vdlk === "undefined") return [2 /*return*/, { developer: "@xorizn", mess: "Infalid link, no result found" }]; hc = (0, cheerio_1.load)(resaudio.data); hasil_ = { user: ch("body > div.welcome.section > div > div:nth-child(2) > div.col.s12.l4.center-align > div.col.s12 > h2.white-text").find("b").text(), desk: ch("body > div.welcome.section > div > div:nth-child(2) > div.col.s12.l4.center-align > div.col.s12 > h2.white-text:nth-child(3)").text(), profile: ch("body > div.welcome.section > div > div:nth-child(2) > div.col.s12.l4.center-align > div.col.s12 > div.img-area > img").attr("src"), video: vdlk, audio: hc("body > div.welcome.section > div.container > div:nth-child(2) > div.col.s12.l4 > audio > source").attr("src"), video_original: ch("body > div.welcome.section > div > div:nth-child(2) > div.col.s12.l8 > a:nth-child(9)").attr("href"), }; return [2 /*return*/, (0, config_1.Proret)(hasil_)]; case 4: return [3 /*break*/, 6]; case 5: err_2 = _c.sent(); console.log(err_2); return [3 /*break*/, 6]; case 6: return [2 /*return*/]; } }); }); }, PinterestVid: function (url) { return __awaiter(this, void 0, void 0, function () { var config, _a, data, status_3, $, link, err_3; return __generator(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 2, , 3]); config = { url: url }; return [4 /*yield*/, (0, axios_1.default)("https://www.expertstool.com/download-pinterest-video/", { method: "POST", data: new URLSearchParams(Object.entries(config)), headers: { "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0", }, })]; case 1: _a = _b.sent(), data = _a.data, status_3 = _a.status; if (status_3 === 200) { $ = (0, cheerio_1.load)(data); link = $("div.col-md-8.col-md-offset-2 > video").attr("src"); if (typeof link === "undefined") return [2 /*return*/, { creator: "@xorizn", mess: "Link Not Found" }]; return [2 /*return*/, (0, config_1.Proret)({ url: link })]; } return [3 /*break*/, 3]; case 2: err_3 = _b.sent(); console.log(err_3); return [3 /*break*/, 3]; case 3: return [2 /*return*/]; } }); }); }, SoundCloude: function (search) { return __awaiter(this, void 0, void 0, function () { var getToken, _search, $_2, _datt_1, __$, _link_1, dom, a, token, config, _a, data, status_4, tot_1, $_3, link, img, hasil, err_4; return __generator(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 4, , 5]); return [4 /*yield*/, axios_1.default.get("https://soundcloudmp3.org/", { headers: { "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0", cookie: "XSRF-TOKEN=eyJpdiI6ImsrUTZJTVQxbWwwSGZHWkFVem16SkE9PSIsInZhbHVlIjoiMFA0RFk1ZFE0dzI4emJ0VWZFZGVSSGxwd3U2NkhzK2g5XC9xekFtNE1kajdGaVJvUHZMdUJ6SUR6XC9qQm55NUtaZGVlU0llSE5TRmtGM2xKOGRnYUJQZz09IiwibWFjIjoiY2YxNjQxOWRiNDNkODlmYzQ4M2Q0ZTdlNTUxNmQ0MDVhNTFkMGI0MTVlNzZlY2NlMDNhYTBkODg2MzE4YTk5YyJ9; laravel_session=eyJpdiI6Im8zbUk1UkRSOHpDanBXVzJpdmRNZXc9PSIsInZhbHVlIjoiWlNTRnVYZVwvb21PRjJhaU81UFRKRDRIb0dOUWRPSjAxcGV1MEhYV1NnbTA4M0FvT2lJQmQrb3JDRzh4Y3UxTkdlNFwvSlhLSnF4TmZUTHRUUVBPNGNTQT09IiwibWFjIjoiMDQwZTFlNDNkYzFlOWNhOTVlM2E3NDNlM2M5N2MyNTkyMTQ1ZTQwNGYwNGQ2ZDlhYTY0MTE4Nzc0M2UzMGEwMCJ9", }, })]; case 1: getToken = _b.sent(); return [4 /*yield*/, axios_1.default.get("https://soundcloud.com/search?q=".concat(search))]; case 2: _search = _b.sent(); $_2 = (0, cheerio_1.load)(_search.data); _datt_1 = []; $_2("#app > noscript").each(function (u, i) { _datt_1.push($_2(i).html()); }); __$ = (0, cheerio_1.load)(_datt_1[1]); _link_1 = []; __$("ul > li > h2 > a").each(function (i, u) { if ($_2(u).attr("href").split("/").length === 3) { var linkk = $_2(u).attr("href"); var jdi = "https://soundcloud.com".concat(linkk); _link_1.push(jdi); } }); dom = new jsdom_1.JSDOM(getToken.data).window.document; a = dom.querySelector("#conversionForm").innerHTML; token = /<input name="_token" type="hidden" value="(.*?)">/g.exec(a)[1]; config = { _token: token, lang: "en", url: _link_1[0], submit: "", }; return [4 /*yield*/, (0, axios_1.default)("https://soundcloudmp3.org/converter", { method: "POST", data: new URLSearchParams(Object.entries(config)), headers: { "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0", cookie: "XSRF-TOKEN=eyJpdiI6ImsrUTZJTVQxbWwwSGZHWkFVem16SkE9PSIsInZhbHVlIjoiMFA0RFk1ZFE0dzI4emJ0VWZFZGVSSGxwd3U2NkhzK2g5XC9xekFtNE1kajdGaVJvUHZMdUJ6SUR6XC9qQm55NUtaZGVlU0llSE5TRmtGM2xKOGRnYUJQZz09IiwibWFjIjoiY2YxNjQxOWRiNDNkODlmYzQ4M2Q0ZTdlNTUxNmQ0MDVhNTFkMGI0MTVlNzZlY2NlMDNhYTBkODg2MzE4YTk5YyJ9; laravel_session=eyJpdiI6Im8zbUk1UkRSOHpDanBXVzJpdmRNZXc9PSIsInZhbHVlIjoiWlNTRnVYZVwvb21PRjJhaU81UFRKRDRIb0dOUWRPSjAxcGV1MEhYV1NnbTA4M0FvT2lJQmQrb3JDRzh4Y3UxTkdlNFwvSlhLSnF4TmZUTHRUUVBPNGNTQT09IiwibWFjIjoiMDQwZTFlNDNkYzFlOWNhOTVlM2E3NDNlM2M5N2MyNTkyMTQ1ZTQwNGYwNGQ2ZDlhYTY0MTE4Nzc0M2UzMGEwMCJ9", }, })]; case 3: _a = _b.sent(), data = _a.data, status_4 = _a.status; if (status_4 === 200) { tot_1 = []; $_3 = (0, cheerio_1.load)(data); link = $_3("#ready-group > a").attr("href"); if (typeof link === "undefined") return [2 /*return*/, { developer: "@xorizn", mess: "no result found" }]; img = $_3("#preview > div.info.clearfix > img").attr("src"); $_3("#preview > div.info.clearfix > p").each(function (i, u) { tot_1.push($_3(u).text().replace(":", ": ")); }); hasil = { title: tot_1[0], link: link ? link : "err", img: img ? img : "https://i.ibb.co/G7CrCwN/404.png", cap: "".concat(tot_1.join("\n")), }; return [2 /*return*/, (0, config_1.Proret)(hasil)]; } return [3 /*break*/, 5]; case 4: err_4 = _b.sent(); console.log(err_4); return [3 /*break*/, 5]; case 5: return [2 /*return*/]; } }); }); }, TikTok: function (url) { return __awaiter(this, void 0, void 0, function () { var config, _a, data, status_5, ar, aud, wm, nowm, rusol, _i, _b, i, link, err_5; return __generator(this, function (_c) { switch (_c.label) { case 0: _c.trys.push([0, 9, , 10]); config = { query: url }; return [4 /*yield*/, (0, axios_1.default)("https://lovetik.com/api/ajax/search", { method: "POST", data: new URLSearchParams(Object.entries(config)), })]; case 1: _a = _c.sent(), data = _a.data, status_5 = _a.status; if (!data.mess) return [3 /*break*/, 2]; return [2 /*return*/, { developer: "@xorizn", mess: data.mess }]; case 2: if (!(status_5 === 200)) return [3 /*break*/, 8]; ar = []; aud = []; wm = []; return [4 /*yield*/, shortener((data.play_url || "").replace("https", "http"))]; case 3: nowm = _c.sent(); rusol = { thumb: data.cover, v_id: data.vid, desc: data.desc ? data.desc : "No desc", nowm: nowm, author: { author: data.author, author_name: data.author_name, author_profile: data.author_a, }, other: {} }; _i = 0, _b = data.links; _c.label = 4; case 4: if (!(_i < _b.length)) return [3 /*break*/, 7]; i = _b[_i]; return [4 /*yield*/, shortener((i.a || "").replace("https", "http"))]; case 5: link = _c.sent(); if (i.t === "<b> MP4</b>") { ar.push(link); rusol.other.link = ar; } else if (i.s === "Watermarked") { rusol.other.wm = link; } else if (i.t === "<b>♪ MP3 Audio</b>") { aud.push({ link: link, title: i.s, }); rusol.other.audio = aud[0]; } _c.label = 6; case 6: _i++; return [3 /*break*/, 4]; case 7: return [2 /*return*/, (0, config_1.Proret)(rusol)]; case 8: return [3 /*break*/, 10]; case 9: err_5 = _c.sent(); console.log(err_5); return [3 /*break*/, 10]; case 10: return [2 /*return*/]; } }); }); }, Twitter: function (url) { return __awaiter(this, void 0, void 0, function () { var config, _a, data, status_6, $_4, thumb, author, desc, hasil_1, respose, err_6; return __generator(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 2, , 3]); config = { URL: url }; return [4 /*yield*/, (0, axios_1.default)("https://twdown.net/download.php", { method: "POST", data: new URLSearchParams(Object.entries(config)), headers: { "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36", cookie: "PHPSESSID=914a5et39uur28e84t9env0378; popCookie=1; prefetchAd_4301805=true", }, })]; case 1: _a = _b.sent(), data = _a.data, status_6 = _a.status; if (status_6 === 200) { $_4 = (0, cheerio_1.load)(data); thumb = $_4("img.img-thumbnail").attr("src"); author = $_4('div[style="overflow-wrap: break-word;"].col-md-6 > h4').text(); desc = $_4('div[style="overflow-wrap: break-word;"].col-md-6 > p').text(); hasil_1 = []; $_4("div.col-md-8.col-md-offset-2 > table > tbody > tr > td").each(function (a, b) { var xor = $_4(b).find("a").attr("href"); if (typeof xor === "undefined" || xor.startsWith("#")) { } else { hasil_1.push($_4(b).find("a").attr("href")); } }); respose = { thumb: thumb, author: author, desc: desc, video: hasil_1[0], audio: "https://twdown.net/".concat(hasil_1.pop()), }; if (hasil_1.every(function (x) { return x === undefined; })) return [2 /*return*/, { developer: "@xorizn", mess: "no result found" }]; return [2 /*return*/, (0, config_1.Proret)(respose)]; } return [3 /*break*/, 3]; case 2: err_6 = _b.sent(); console.log(err_6); return [3 /*break*/, 3]; case 3: return [2 /*return*/]; } }); }); }, Ytv: function (url, server) { if (server === void 0) { server = "en406"; } return __awaiter(this, void 0, void 0, function () { var hasil, err_7; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); return [4 /*yield*/, (0, y2mate_1.ytv)(url, server)]; case 1: hasil = _a.sent(); return [2 /*return*/, (0, config_1.Proret)(hasil)]; case 2: err_7 = _a.sent(); console.log(err_7); return [3 /*break*/, 3]; case 3: return [2 /*return*/]; } }); }); }, };