abot-scraper 1.1.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.MD +215 -70
- package/dist/index.cjs +575 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +123 -0
- package/dist/index.d.ts +123 -0
- package/dist/index.js +535 -0
- package/dist/index.js.map +1 -0
- package/license +21 -0
- package/package.json +66 -24
- package/types/index.d.ts +172 -0
- package/src/index.js +0 -7
- package/src/scraper/downloader.js +0 -215
- package/src/scraper/search.js +0 -144
- package/testing.js +0 -90
package/dist/index.cjs
ADDED
@@ -0,0 +1,575 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __create = Object.create;
|
3
|
+
var __defProp = Object.defineProperty;
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
8
|
+
var __export = (target, all) => {
|
9
|
+
for (var name in all)
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
11
|
+
};
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
14
|
+
for (let key of __getOwnPropNames(from))
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
17
|
+
}
|
18
|
+
return to;
|
19
|
+
};
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
26
|
+
mod
|
27
|
+
));
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
29
|
+
|
30
|
+
// src/index.ts
|
31
|
+
var index_exports = {};
|
32
|
+
__export(index_exports, {
|
33
|
+
Downloader: () => Downloader,
|
34
|
+
Search: () => Search,
|
35
|
+
default: () => index_default,
|
36
|
+
downloader: () => downloader,
|
37
|
+
search: () => search
|
38
|
+
});
|
39
|
+
module.exports = __toCommonJS(index_exports);
|
40
|
+
|
41
|
+
// src/scraper/downloader.ts
|
42
|
+
var import_axios = __toESM(require("axios"), 1);
|
43
|
+
var cheerio = __toESM(require("cheerio"), 1);
|
44
|
+
var import_qs = __toESM(require("qs"), 1);
|
45
|
+
|
46
|
+
// src/utils/generator.ts
|
47
|
+
var import_crypto = __toESM(require("crypto"), 1);
|
48
|
+
var Generator = class {
|
49
|
+
generateTimeStampYoutubeDL() {
|
50
|
+
return Date.now().toString();
|
51
|
+
}
|
52
|
+
generateFooterYoutubeDL(timestamp, link) {
|
53
|
+
const locale = "en";
|
54
|
+
const secretKey = "6HTugjCXxR";
|
55
|
+
const input = link + locale + timestamp + secretKey;
|
56
|
+
const hash = import_crypto.default.createHash("md5").update(input).digest("hex");
|
57
|
+
return hash;
|
58
|
+
}
|
59
|
+
};
|
60
|
+
|
61
|
+
// src/scraper/downloader.ts
|
62
|
+
global.creator = "@abotscraper \u2013 ahmuq";
|
63
|
+
var Downloader = class {
|
64
|
+
constructor() {
|
65
|
+
this.generator = new Generator();
|
66
|
+
}
|
67
|
+
async facebook(url) {
|
68
|
+
try {
|
69
|
+
const headers = {
|
70
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0",
|
71
|
+
Origin: "https://www.fdown.world",
|
72
|
+
referer: "https://www.fdown.world/",
|
73
|
+
"x-requested-with": "XMLHttpRequest",
|
74
|
+
Cookie: "codehap_domain=www.fdown.world"
|
75
|
+
};
|
76
|
+
const data = new URLSearchParams({ codehap_link: url, codehap: "true" });
|
77
|
+
const response = await import_axios.default.post(
|
78
|
+
"https://www.fdown.world/result.php",
|
79
|
+
data,
|
80
|
+
{ headers }
|
81
|
+
);
|
82
|
+
const $ = cheerio.load(response.data);
|
83
|
+
const videoUrl = $("video source").attr("src");
|
84
|
+
const imageUrl = $("img").attr("src");
|
85
|
+
return {
|
86
|
+
creator: global.creator,
|
87
|
+
status: 200,
|
88
|
+
result: {
|
89
|
+
thumbnail: imageUrl || "",
|
90
|
+
videoUrl: videoUrl || ""
|
91
|
+
}
|
92
|
+
};
|
93
|
+
} catch (error) {
|
94
|
+
return {
|
95
|
+
creator: global.creator,
|
96
|
+
status: false,
|
97
|
+
msg: error instanceof Error ? error.message : "Unknown error"
|
98
|
+
};
|
99
|
+
}
|
100
|
+
}
|
101
|
+
async tiktokDownloader(url) {
|
102
|
+
try {
|
103
|
+
const headers = {
|
104
|
+
"sec-ch-ua": '" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"',
|
105
|
+
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
|
106
|
+
};
|
107
|
+
const data = new URLSearchParams({
|
108
|
+
id: url,
|
109
|
+
locale: "en",
|
110
|
+
tt: "WmNzZDk_"
|
111
|
+
});
|
112
|
+
const response = await import_axios.default.post(
|
113
|
+
"https://ssstik.io/abc?url=dl",
|
114
|
+
data,
|
115
|
+
{
|
116
|
+
headers
|
117
|
+
}
|
118
|
+
);
|
119
|
+
const $ = cheerio.load(response.data);
|
120
|
+
const title = $("p.maintext").text().trim();
|
121
|
+
const audio = $("a.download_link.music").attr("href");
|
122
|
+
const video = $("a.download_link.without_watermark").attr("href");
|
123
|
+
return {
|
124
|
+
creator: global.creator,
|
125
|
+
status: 200,
|
126
|
+
result: {
|
127
|
+
title,
|
128
|
+
video: video || "",
|
129
|
+
audio: audio || ""
|
130
|
+
}
|
131
|
+
};
|
132
|
+
} catch (error) {
|
133
|
+
return {
|
134
|
+
creator: global.creator,
|
135
|
+
status: false,
|
136
|
+
msg: error instanceof Error ? error.message : "Unknown error"
|
137
|
+
};
|
138
|
+
}
|
139
|
+
}
|
140
|
+
async igstory(username) {
|
141
|
+
function encodeParameter(username2) {
|
142
|
+
const parameter = `-1::${username2}::rJP2tBRKf6ktbRqPUBtRE9klgBWb7d`;
|
143
|
+
const encoded = Buffer.from(parameter).toString("base64");
|
144
|
+
return encoded.replace(/[+]/g, ".").replace(/[/]/g, "_").replace(/[=]/g, "-");
|
145
|
+
}
|
146
|
+
try {
|
147
|
+
const headers = {
|
148
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/"
|
149
|
+
};
|
150
|
+
const encodedParameter = encodeParameter(username);
|
151
|
+
const response = await import_axios.default.get(
|
152
|
+
`https://instanavigation.net/api/v1/stories/${encodedParameter}`,
|
153
|
+
{ headers }
|
154
|
+
);
|
155
|
+
const data = response.data;
|
156
|
+
const sources = data.stories.map((story) => story.source);
|
157
|
+
return {
|
158
|
+
creator: global.creator,
|
159
|
+
status: 200,
|
160
|
+
result: {
|
161
|
+
user_info: data.user_info,
|
162
|
+
links: sources
|
163
|
+
}
|
164
|
+
};
|
165
|
+
} catch (error) {
|
166
|
+
return {
|
167
|
+
creator: global.creator,
|
168
|
+
status: false,
|
169
|
+
msg: error instanceof Error ? error.message : "Unknown error"
|
170
|
+
};
|
171
|
+
}
|
172
|
+
}
|
173
|
+
async instagram(url) {
|
174
|
+
try {
|
175
|
+
const config = new URLSearchParams({
|
176
|
+
url,
|
177
|
+
new: "2",
|
178
|
+
lang: "en",
|
179
|
+
app: ""
|
180
|
+
});
|
181
|
+
const headers = {
|
182
|
+
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
|
183
|
+
};
|
184
|
+
const response = await import_axios.default.post(
|
185
|
+
"https://snapinsta.app/get-data.php",
|
186
|
+
config,
|
187
|
+
{ headers }
|
188
|
+
);
|
189
|
+
const downloadLinks = response.data.files.map(
|
190
|
+
(file) => file.__type === "GraphVideo" ? { type: "video", url: file.video_url || "" } : file.__type === "GraphImage" ? { type: "image", url: file.download_url || "" } : null
|
191
|
+
).filter((link) => link !== null);
|
192
|
+
return {
|
193
|
+
creator: global.creator,
|
194
|
+
status: 200,
|
195
|
+
result: downloadLinks
|
196
|
+
};
|
197
|
+
} catch (error) {
|
198
|
+
return {
|
199
|
+
creator: global.creator,
|
200
|
+
status: false,
|
201
|
+
msg: error instanceof Error ? error.message : "Unknown error"
|
202
|
+
};
|
203
|
+
}
|
204
|
+
}
|
205
|
+
async youtubeDownloader(url) {
|
206
|
+
try {
|
207
|
+
const config = import_qs.default.stringify({
|
208
|
+
url,
|
209
|
+
q_auto: 0,
|
210
|
+
ajax: 1,
|
211
|
+
lang: "en"
|
212
|
+
});
|
213
|
+
const headers = {
|
214
|
+
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
|
215
|
+
};
|
216
|
+
const response = await import_axios.default.post(
|
217
|
+
"https://yt1s.net/ajax?retry=undefined&platform=youtube",
|
218
|
+
config,
|
219
|
+
{ headers }
|
220
|
+
);
|
221
|
+
const $ = cheerio.load(response.data.result);
|
222
|
+
const title = $(".caption b").text().trim();
|
223
|
+
const downloadLinks = {
|
224
|
+
"480p": $('a[data-fquality="480p"]').attr("href") || "",
|
225
|
+
"720p": $('a[data-fquality="720p"]').attr("href") || "",
|
226
|
+
"1080p": $('a[data-fquality="1080p"]').attr("href") || ""
|
227
|
+
};
|
228
|
+
const thumbnailUrl = $(".thumbnail.cover img").attr("src");
|
229
|
+
const mp3ConvertElement = $("#convert-mp3 a");
|
230
|
+
const hrefAttr = mp3ConvertElement.attr("href");
|
231
|
+
if (!hrefAttr) throw new Error("MP3 conversion link not found.");
|
232
|
+
const mp3ConvertTokenMatch = hrefAttr.match(
|
233
|
+
/mp3_convert_task\('(\d+)',\s*'([^']+)'\)/
|
234
|
+
);
|
235
|
+
if (!mp3ConvertTokenMatch)
|
236
|
+
throw new Error("MP3 conversion token not found.");
|
237
|
+
const mp3ConvertToken = mp3ConvertTokenMatch[2];
|
238
|
+
const mp3Response = await import_axios.default.get(
|
239
|
+
`https://api.fabdl.com/youtube/mp3-convert-task?token=${mp3ConvertToken}`
|
240
|
+
);
|
241
|
+
return {
|
242
|
+
creator: global.creator,
|
243
|
+
status: 200,
|
244
|
+
result: {
|
245
|
+
title,
|
246
|
+
thumbnail: thumbnailUrl || "",
|
247
|
+
downloadLinks,
|
248
|
+
mp3DownloadUrl: `https://api.fabdl.com${mp3Response.data.result.download_url}`
|
249
|
+
}
|
250
|
+
};
|
251
|
+
} catch (error) {
|
252
|
+
return {
|
253
|
+
creator: global.creator,
|
254
|
+
status: false,
|
255
|
+
msg: error instanceof Error ? error.message : "Unknown error"
|
256
|
+
};
|
257
|
+
}
|
258
|
+
}
|
259
|
+
async youtubeDownloaderV2(url) {
|
260
|
+
try {
|
261
|
+
const timestamp = this.generator.generateTimeStampYoutubeDL();
|
262
|
+
const footer = this.generator.generateFooterYoutubeDL(timestamp, url);
|
263
|
+
const payload = {
|
264
|
+
link: url
|
265
|
+
};
|
266
|
+
const headers = {
|
267
|
+
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
|
268
|
+
"g-footer": footer,
|
269
|
+
"g-timestamp": timestamp,
|
270
|
+
accept: "*/*",
|
271
|
+
"accept-language": "en",
|
272
|
+
"content-type": "application/json",
|
273
|
+
priority: "u=1, i",
|
274
|
+
"sec-ch-ua": '"Microsoft Edge";v="137", "Chromium";v="137", "Not/A)Brand";v="24"',
|
275
|
+
"sec-ch-ua-mobile": "?0",
|
276
|
+
"sec-ch-ua-platform": '"Windows"',
|
277
|
+
"sec-fetch-dest": "empty",
|
278
|
+
"sec-fetch-mode": "cors",
|
279
|
+
"sec-fetch-site": "same-site",
|
280
|
+
Referer: "https://snapany.com/",
|
281
|
+
"Referrer-Policy": "strict-origin-when-cross-origin"
|
282
|
+
};
|
283
|
+
const response = await import_axios.default.post(
|
284
|
+
"https://api.snapany.com/v1/extract",
|
285
|
+
payload,
|
286
|
+
{ headers }
|
287
|
+
);
|
288
|
+
const data = response.data;
|
289
|
+
const videoMedia = data.medias.find(
|
290
|
+
(media) => media.media_type === "video"
|
291
|
+
);
|
292
|
+
const audioMedia = data.medias.find(
|
293
|
+
(media) => media.media_type === "audio"
|
294
|
+
);
|
295
|
+
const downloadLinks = {};
|
296
|
+
if (videoMedia && videoMedia.formats) {
|
297
|
+
videoMedia.formats.forEach((format) => {
|
298
|
+
const qualityKey = `${format.quality}p`;
|
299
|
+
downloadLinks[qualityKey] = format.video_url;
|
300
|
+
});
|
301
|
+
}
|
302
|
+
return {
|
303
|
+
creator: global.creator,
|
304
|
+
status: 200,
|
305
|
+
result: {
|
306
|
+
title: data.text,
|
307
|
+
thumbnail: (videoMedia == null ? void 0 : videoMedia.preview_url) || null,
|
308
|
+
downloadLinks,
|
309
|
+
video: (videoMedia == null ? void 0 : videoMedia.resource_url) || null,
|
310
|
+
audio: (audioMedia == null ? void 0 : audioMedia.resource_url) || null,
|
311
|
+
formats: (videoMedia == null ? void 0 : videoMedia.formats) || []
|
312
|
+
}
|
313
|
+
};
|
314
|
+
} catch (error) {
|
315
|
+
return {
|
316
|
+
creator: global.creator,
|
317
|
+
status: false,
|
318
|
+
msg: error instanceof Error ? error.message : "Unknown error"
|
319
|
+
};
|
320
|
+
}
|
321
|
+
}
|
322
|
+
async sfileDownloader(url) {
|
323
|
+
var _a;
|
324
|
+
try {
|
325
|
+
const response = await import_axios.default.get(url, {
|
326
|
+
headers: {
|
327
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
|
328
|
+
Referer: "https://sfile.mobi/",
|
329
|
+
"Accept-Language": "en-US,en;q=0.9"
|
330
|
+
}
|
331
|
+
});
|
332
|
+
const $ = cheerio.load(response.data);
|
333
|
+
const filename = $(".intro-container img").attr("alt") || "";
|
334
|
+
const mimetype = ((_a = $("div.list").text().split(" - ")[1]) == null ? void 0 : _a.split("\n")[0]) || "";
|
335
|
+
const downloadHref = $("#download").attr("href");
|
336
|
+
const download = downloadHref ? downloadHref + "&k=" + Math.floor(Math.random() * (15 - 10 + 1) + 10) : "";
|
337
|
+
return {
|
338
|
+
creator: global.creator,
|
339
|
+
status: 200,
|
340
|
+
result: { filename, mimetype, download }
|
341
|
+
};
|
342
|
+
} catch (error) {
|
343
|
+
return {
|
344
|
+
creator: global.creator,
|
345
|
+
status: false,
|
346
|
+
msg: error instanceof Error ? error.message : "Unknown error"
|
347
|
+
};
|
348
|
+
}
|
349
|
+
}
|
350
|
+
};
|
351
|
+
|
352
|
+
// src/scraper/search.ts
|
353
|
+
var import_axios2 = __toESM(require("axios"), 1);
|
354
|
+
var cheerio2 = __toESM(require("cheerio"), 1);
|
355
|
+
global.creator = "@abotscraper \u2013 ahmuq";
|
356
|
+
var Search = class {
|
357
|
+
constructor() {
|
358
|
+
this.ytPlay = (text) => {
|
359
|
+
return new Promise((resolve, reject) => {
|
360
|
+
const configd = {
|
361
|
+
k_query: text,
|
362
|
+
k_page: "mp3",
|
363
|
+
q_auto: 1
|
364
|
+
};
|
365
|
+
const headerss = {
|
366
|
+
"sec-ch-ua": '" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"',
|
367
|
+
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
|
368
|
+
Cookie: 'PHPSESSID=6jo2ggb63g5mjvgj45f612ogt7; _ga=GA1.2.405896420.1625200423; _gid=GA1.2.2135261581.1625200423; _PN_SBSCRBR_FALLBACK_DENIED=1625200785624; MarketGidStorage={"0":{},"C702514":{"page":5,"time":1625200846733}}'
|
369
|
+
};
|
370
|
+
(0, import_axios2.default)("https://www.y2mate.com/mates/analyzeV2/ajax", {
|
371
|
+
method: "POST",
|
372
|
+
data: new URLSearchParams(Object.entries(configd)),
|
373
|
+
headers: headerss
|
374
|
+
}).then(({ data }) => {
|
375
|
+
const v = data.vitems;
|
376
|
+
const v2 = v[Math.floor(Math.random() * v.length)].v;
|
377
|
+
const url = "https://www.youtube.com/watch?v=" + v2;
|
378
|
+
const config = {
|
379
|
+
k_query: "https://www.youtube.be/" + url,
|
380
|
+
k_page: "mp3",
|
381
|
+
hl: "en",
|
382
|
+
q_auto: 1
|
383
|
+
};
|
384
|
+
(0, import_axios2.default)("https://www.y2mate.com/mates/en68/analyze/ajax", {
|
385
|
+
method: "POST",
|
386
|
+
data: new URLSearchParams({
|
387
|
+
url: "https://www.youtube.be/" + url,
|
388
|
+
q_auto: "0",
|
389
|
+
ajax: "1"
|
390
|
+
}),
|
391
|
+
headers: headerss
|
392
|
+
}).then(({ data: data2 }) => {
|
393
|
+
const $ = cheerio2.load(data2.result);
|
394
|
+
const img = $("div.thumbnail.cover > a > img").attr("src");
|
395
|
+
(0, import_axios2.default)("https://www.y2mate.com/mates/analyzeV2/ajax", {
|
396
|
+
method: "POST",
|
397
|
+
data: new URLSearchParams(Object.entries(config)),
|
398
|
+
headers: headerss
|
399
|
+
}).then(({ data: data3 }) => {
|
400
|
+
const convertConfig = {
|
401
|
+
vid: data3.vid,
|
402
|
+
k: data3.links.mp3.mp3128.k
|
403
|
+
};
|
404
|
+
const size = data3.links.mp3.mp3128.size;
|
405
|
+
(0, import_axios2.default)("https://www.y2mate.com/mates/convertV2/index", {
|
406
|
+
method: "POST",
|
407
|
+
data: new URLSearchParams(Object.entries(convertConfig)),
|
408
|
+
headers: headerss
|
409
|
+
}).then((response) => {
|
410
|
+
resolve({
|
411
|
+
creator: global.creator,
|
412
|
+
status: 200,
|
413
|
+
result: {
|
414
|
+
status: response.data.status,
|
415
|
+
title: response.data.title,
|
416
|
+
ftype: response.data.ftype,
|
417
|
+
thumb: img || "",
|
418
|
+
size_mp3: size,
|
419
|
+
link: response.data.dlink
|
420
|
+
}
|
421
|
+
});
|
422
|
+
}).catch(reject);
|
423
|
+
});
|
424
|
+
});
|
425
|
+
}).catch(reject);
|
426
|
+
});
|
427
|
+
};
|
428
|
+
this.wallpaper = (title, page = "1") => {
|
429
|
+
return new Promise((resolve, reject) => {
|
430
|
+
import_axios2.default.get(
|
431
|
+
`https://www.besthdwallpaper.com/search?CurrentPage=${page}&q=${title}`
|
432
|
+
).then(({ data }) => {
|
433
|
+
const $ = cheerio2.load(data);
|
434
|
+
const hasil = [];
|
435
|
+
$("div.grid-item").each(function(_, b) {
|
436
|
+
const titleAttr = $(b).find("p[title]").attr("title");
|
437
|
+
const typeText = $(b).find("div.info > a:nth-child(2)").text();
|
438
|
+
const hrefAttr = $(b).find("a").attr("href");
|
439
|
+
const imgSrc = $(b).find("picture > img").attr("src");
|
440
|
+
const srcset1 = $(b).find("picture > source:nth-child(1)").attr("srcset");
|
441
|
+
const srcset2 = $(b).find("picture > source:nth-child(2)").attr("srcset");
|
442
|
+
if (titleAttr && hrefAttr) {
|
443
|
+
hasil.push({
|
444
|
+
title: titleAttr.trim(),
|
445
|
+
type: (typeText == null ? void 0 : typeText.trim()) || "",
|
446
|
+
source: "https://www.besthdwallpaper.com" + hrefAttr,
|
447
|
+
image: [imgSrc || "", srcset1 || "", srcset2 || ""]
|
448
|
+
});
|
449
|
+
}
|
450
|
+
});
|
451
|
+
resolve({ creator: global.creator, status: 200, result: hasil });
|
452
|
+
}).catch((error) => {
|
453
|
+
reject(error);
|
454
|
+
});
|
455
|
+
});
|
456
|
+
};
|
457
|
+
this.wikimedia = (title) => {
|
458
|
+
return new Promise((resolve, reject) => {
|
459
|
+
import_axios2.default.get(
|
460
|
+
`https://commons.wikimedia.org/w/index.php?search=${title}&title=Special:MediaSearch&go=Go&type=image`
|
461
|
+
).then((res) => {
|
462
|
+
const $ = cheerio2.load(res.data);
|
463
|
+
const hasil = [];
|
464
|
+
$(".sdms-search-results__list-wrapper > div > a").each(function(_, b) {
|
465
|
+
const altText = $(b).find("img").attr("alt");
|
466
|
+
const href = $(b).attr("href");
|
467
|
+
const dataSrc = $(b).find("img").attr("data-src");
|
468
|
+
const src = $(b).find("img").attr("src");
|
469
|
+
if (altText && href) {
|
470
|
+
hasil.push({
|
471
|
+
title: altText,
|
472
|
+
source: href,
|
473
|
+
image: dataSrc || src || ""
|
474
|
+
});
|
475
|
+
}
|
476
|
+
});
|
477
|
+
resolve({ creator: global.creator, status: 200, result: hasil });
|
478
|
+
}).catch(reject);
|
479
|
+
});
|
480
|
+
};
|
481
|
+
}
|
482
|
+
async sfileSearch(query, page = 1) {
|
483
|
+
try {
|
484
|
+
const response = await import_axios2.default.get(
|
485
|
+
`https://sfile.mobi/search.php?q=${query}&page=${page}`,
|
486
|
+
{
|
487
|
+
headers: {
|
488
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
|
489
|
+
Referer: "https://sfile.mobi/",
|
490
|
+
"Accept-Language": "en-US,en;q=0.9"
|
491
|
+
}
|
492
|
+
}
|
493
|
+
);
|
494
|
+
const $ = cheerio2.load(response.data);
|
495
|
+
const results = [];
|
496
|
+
$("div.list").each(function() {
|
497
|
+
const title = $(this).find("a").text();
|
498
|
+
const sizeText = $(this).text().trim().split("(")[1];
|
499
|
+
const link = $(this).find("a").attr("href");
|
500
|
+
if (link && sizeText) {
|
501
|
+
results.push({
|
502
|
+
title,
|
503
|
+
size: sizeText.replace(")", ""),
|
504
|
+
link
|
505
|
+
});
|
506
|
+
}
|
507
|
+
});
|
508
|
+
return {
|
509
|
+
creator: global.creator,
|
510
|
+
status: 200,
|
511
|
+
result: results
|
512
|
+
};
|
513
|
+
} catch (error) {
|
514
|
+
return {
|
515
|
+
creator: global.creator,
|
516
|
+
status: false,
|
517
|
+
msg: error instanceof Error ? error.message : "Unknown error"
|
518
|
+
};
|
519
|
+
}
|
520
|
+
}
|
521
|
+
async ytSearch(query) {
|
522
|
+
var _a;
|
523
|
+
try {
|
524
|
+
const headers = {
|
525
|
+
accept: "*/*",
|
526
|
+
"accept-language": "en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6",
|
527
|
+
priority: "u=1, i",
|
528
|
+
"sec-ch-ua": '"Microsoft Edge";v="137", "Chromium";v="137", "Not/A)Brand";v="24"',
|
529
|
+
"sec-ch-ua-mobile": "?0",
|
530
|
+
"sec-ch-ua-platform": '"Windows"',
|
531
|
+
"sec-fetch-dest": "empty",
|
532
|
+
"sec-fetch-mode": "cors",
|
533
|
+
"sec-fetch-site": "cross-site"
|
534
|
+
};
|
535
|
+
const response = await import_axios2.default.get(
|
536
|
+
`https://line.1010diy.com/web/free-mp3-finder/query?q=${encodeURIComponent(query)}&type=youtube&pageToken=`,
|
537
|
+
{ headers }
|
538
|
+
);
|
539
|
+
const data = response.data;
|
540
|
+
const videos = ((_a = data == null ? void 0 : data.data) == null ? void 0 : _a.items) || [];
|
541
|
+
const results = videos.map((item) => ({
|
542
|
+
title: item.title,
|
543
|
+
thumbnail: item.thumbnail,
|
544
|
+
url: item.url
|
545
|
+
}));
|
546
|
+
return {
|
547
|
+
creator: global.creator,
|
548
|
+
status: 200,
|
549
|
+
result: results
|
550
|
+
};
|
551
|
+
} catch (error) {
|
552
|
+
return {
|
553
|
+
creator: global.creator,
|
554
|
+
status: false,
|
555
|
+
msg: error instanceof Error ? error.message : "Unknown error"
|
556
|
+
};
|
557
|
+
}
|
558
|
+
}
|
559
|
+
};
|
560
|
+
|
561
|
+
// src/index.ts
|
562
|
+
var downloader = new Downloader();
|
563
|
+
var search = new Search();
|
564
|
+
var index_default = {
|
565
|
+
downloader,
|
566
|
+
search
|
567
|
+
};
|
568
|
+
// Annotate the CommonJS export names for ESM import in node:
|
569
|
+
0 && (module.exports = {
|
570
|
+
Downloader,
|
571
|
+
Search,
|
572
|
+
downloader,
|
573
|
+
search
|
574
|
+
});
|
575
|
+
//# sourceMappingURL=index.cjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/scraper/downloader.ts","../src/utils/generator.ts","../src/scraper/search.ts"],"sourcesContent":["import Downloader from './scraper/downloader.js';\nimport Search from './scraper/search.js';\n\nconst downloader = new Downloader();\nconst search = new Search();\n\nexport default {\n downloader,\n search,\n};\n\nexport { Downloader, downloader, Search, search };\n","import axios, { AxiosResponse } from 'axios';\nimport * as cheerio from 'cheerio';\nimport qs from 'qs';\nimport {\n ApiResponse,\n FacebookResult,\n InstagramMediaItem,\n InstagramStoriesResult,\n SfileDownloadResult,\n TikTokResult,\n YoutubeResult,\n YoutubeResultV2,\n} from '../../types/index.js';\nimport Generator from '../utils/generator.js';\n\ninterface StoryItem {\n source: string;\n [key: string]: unknown;\n}\n\ninterface InstagramApiResponse {\n stories: StoryItem[];\n user_info: {\n username: string;\n [key: string]: unknown;\n };\n}\n\ninterface FileItem {\n __type: string;\n video_url?: string;\n download_url?: string;\n [key: string]: unknown;\n}\n\ninterface InstagramFilesResponse {\n files: FileItem[];\n}\n\ninterface YouTubeFormat {\n quality: string;\n video_url: string;\n [key: string]: unknown;\n}\n\ninterface YouTubeMedia {\n media_type: string;\n preview_url?: string;\n resource_url?: string;\n formats?: YouTubeFormat[];\n [key: string]: unknown;\n}\n\ninterface YouTubeApiResponse {\n text: string;\n medias: YouTubeMedia[];\n}\n\ndeclare global {\n // eslint-disable-next-line no-var\n var creator: string;\n}\n\nglobal.creator = '@abotscraper – ahmuq';\n\nexport default class Downloader {\n private generator: Generator;\n\n constructor() {\n this.generator = new Generator();\n }\n\n async facebook(url: string): Promise<ApiResponse<FacebookResult>> {\n try {\n const headers = {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0',\n Origin: 'https://www.fdown.world',\n referer: 'https://www.fdown.world/',\n 'x-requested-with': 'XMLHttpRequest',\n Cookie: 'codehap_domain=www.fdown.world',\n };\n\n const data = new URLSearchParams({ codehap_link: url, codehap: 'true' });\n\n const response: AxiosResponse = await axios.post(\n 'https://www.fdown.world/result.php',\n data,\n { headers }\n );\n\n const $ = cheerio.load(response.data);\n const videoUrl = $('video source').attr('src');\n const imageUrl = $('img').attr('src');\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n thumbnail: imageUrl || '',\n videoUrl: videoUrl || '',\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async tiktokDownloader(url: string): Promise<ApiResponse<TikTokResult>> {\n try {\n const headers = {\n 'sec-ch-ua':\n '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n };\n\n const data = new URLSearchParams({\n id: url,\n locale: 'en',\n tt: 'WmNzZDk_',\n });\n\n const response: AxiosResponse = await axios.post(\n 'https://ssstik.io/abc?url=dl',\n data,\n {\n headers,\n }\n );\n\n const $ = cheerio.load(response.data);\n const title = $('p.maintext').text().trim();\n const audio = $('a.download_link.music').attr('href');\n const video = $('a.download_link.without_watermark').attr('href');\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n title: title,\n video: video || '',\n audio: audio || '',\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async igstory(username: string): Promise<ApiResponse<InstagramStoriesResult>> {\n function encodeParameter(username: string): string {\n const parameter = `-1::${username}::rJP2tBRKf6ktbRqPUBtRE9klgBWb7d`;\n const encoded = Buffer.from(parameter).toString('base64');\n return encoded\n .replace(/[+]/g, '.')\n .replace(/[/]/g, '_')\n .replace(/[=]/g, '-');\n }\n\n try {\n const headers = {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/',\n };\n\n const encodedParameter = encodeParameter(username);\n const response: AxiosResponse = await axios.get(\n `https://instanavigation.net/api/v1/stories/${encodedParameter}`,\n { headers }\n );\n\n const data: InstagramApiResponse = response.data;\n const sources = data.stories.map((story: StoryItem) => story.source);\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n user_info: data.user_info,\n links: sources,\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async instagram(url: string): Promise<ApiResponse<InstagramMediaItem[]>> {\n try {\n const config = new URLSearchParams({\n url: url,\n new: '2',\n lang: 'en',\n app: '',\n });\n\n const headers = {\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n };\n\n const response: AxiosResponse<InstagramFilesResponse> = await axios.post(\n 'https://snapinsta.app/get-data.php',\n config,\n { headers }\n );\n\n const downloadLinks = response.data.files\n .map((file: FileItem) =>\n file.__type === 'GraphVideo'\n ? { type: 'video' as const, url: file.video_url || '' }\n : file.__type === 'GraphImage'\n ? { type: 'image' as const, url: file.download_url || '' }\n : null\n )\n .filter((link: InstagramMediaItem | null): link is InstagramMediaItem => link !== null);\n\n return {\n creator: global.creator,\n status: 200,\n result: downloadLinks,\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async youtubeDownloader(url: string): Promise<ApiResponse<YoutubeResult>> {\n try {\n const config = qs.stringify({\n url: url,\n q_auto: 0,\n ajax: 1,\n lang: 'en',\n });\n\n const headers = {\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n };\n\n const response: AxiosResponse = await axios.post(\n 'https://yt1s.net/ajax?retry=undefined&platform=youtube',\n config,\n { headers }\n );\n\n const $ = cheerio.load(response.data.result);\n const title = $('.caption b').text().trim();\n const downloadLinks = {\n '480p': $('a[data-fquality=\"480p\"]').attr('href') || '',\n '720p': $('a[data-fquality=\"720p\"]').attr('href') || '',\n '1080p': $('a[data-fquality=\"1080p\"]').attr('href') || '',\n };\n const thumbnailUrl = $('.thumbnail.cover img').attr('src');\n\n const mp3ConvertElement = $('#convert-mp3 a');\n const hrefAttr = mp3ConvertElement.attr('href');\n\n if (!hrefAttr) throw new Error('MP3 conversion link not found.');\n\n const mp3ConvertTokenMatch = hrefAttr.match(\n /mp3_convert_task\\('(\\d+)',\\s*'([^']+)'\\)/\n );\n\n if (!mp3ConvertTokenMatch)\n throw new Error('MP3 conversion token not found.');\n\n const mp3ConvertToken = mp3ConvertTokenMatch[2];\n\n const mp3Response: AxiosResponse = await axios.get(\n `https://api.fabdl.com/youtube/mp3-convert-task?token=${mp3ConvertToken}`\n );\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n title: title,\n thumbnail: thumbnailUrl || '',\n downloadLinks: downloadLinks,\n mp3DownloadUrl: `https://api.fabdl.com${mp3Response.data.result.download_url}`,\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async youtubeDownloaderV2(url: string): Promise<ApiResponse<YoutubeResultV2>> {\n try {\n const timestamp = this.generator.generateTimeStampYoutubeDL();\n const footer = this.generator.generateFooterYoutubeDL(timestamp, url);\n\n const payload = {\n link: url,\n };\n\n const headers = {\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n 'g-footer': footer,\n 'g-timestamp': timestamp,\n accept: '*/*',\n 'accept-language': 'en',\n 'content-type': 'application/json',\n priority: 'u=1, i',\n 'sec-ch-ua':\n '\"Microsoft Edge\";v=\"137\", \"Chromium\";v=\"137\", \"Not/A)Brand\";v=\"24\"',\n 'sec-ch-ua-mobile': '?0',\n 'sec-ch-ua-platform': '\"Windows\"',\n 'sec-fetch-dest': 'empty',\n 'sec-fetch-mode': 'cors',\n 'sec-fetch-site': 'same-site',\n Referer: 'https://snapany.com/',\n 'Referrer-Policy': 'strict-origin-when-cross-origin',\n };\n\n const response: AxiosResponse<YouTubeApiResponse> = await axios.post(\n 'https://api.snapany.com/v1/extract',\n payload,\n { headers }\n );\n const data = response.data;\n\n const videoMedia = data.medias.find(\n (media: YouTubeMedia) => media.media_type === 'video'\n );\n const audioMedia = data.medias.find(\n (media: YouTubeMedia) => media.media_type === 'audio'\n );\n\n const downloadLinks: Record<string, string> = {};\n if (videoMedia && videoMedia.formats) {\n videoMedia.formats.forEach((format: YouTubeFormat) => {\n const qualityKey = `${format.quality}p`;\n downloadLinks[qualityKey] = format.video_url;\n });\n }\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n title: data.text,\n thumbnail: videoMedia?.preview_url || null,\n downloadLinks: downloadLinks,\n video: videoMedia?.resource_url || null,\n audio: audioMedia?.resource_url || null,\n formats: videoMedia?.formats || [],\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async sfileDownloader(url: string): Promise<ApiResponse<SfileDownloadResult>> {\n try {\n const response: AxiosResponse = await axios.get(url, {\n headers: {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n Referer: 'https://sfile.mobi/',\n 'Accept-Language': 'en-US,en;q=0.9',\n },\n });\n\n const $ = cheerio.load(response.data);\n const filename = $('.intro-container img').attr('alt') || '';\n const mimetype = $('div.list').text().split(' - ')[1]?.split('\\n')[0] || '';\n const downloadHref = $('#download').attr('href');\n const download = downloadHref\n ? downloadHref + '&k=' + Math.floor(Math.random() * (15 - 10 + 1) + 10)\n : '';\n\n return {\n creator: global.creator,\n status: 200,\n result: { filename, mimetype, download },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n}\n","import crypto from 'crypto';\n\nexport default class Generator {\n generateTimeStampYoutubeDL(): string {\n return Date.now().toString();\n }\n\n generateFooterYoutubeDL(timestamp: string, link: string): string {\n const locale = 'en';\n const secretKey = '6HTugjCXxR';\n const input = link + locale + timestamp + secretKey;\n const hash = crypto.createHash('md5').update(input).digest('hex');\n return hash;\n }\n}\n","import axios, { AxiosResponse } from 'axios';\nimport * as cheerio from 'cheerio';\nimport {\n ApiResponse,\n SfileSearchResult,\n WallpaperResult,\n WikimediaResult,\n YtPlayResult,\n YtSearchResult,\n} from '../../types/index.js';\n\ndeclare global {\n // eslint-disable-next-line no-var\n var creator: string;\n}\n\nglobal.creator = '@abotscraper – ahmuq';\n\ninterface YtPlayConfig {\n k_query: string;\n k_page: string;\n q_auto: number;\n hl?: string;\n}\n\ninterface ConvertConfig {\n vid: string;\n k: string;\n}\n\nexport default class Search {\n async sfileSearch(\n query: string,\n page: number = 1\n ): Promise<ApiResponse<SfileSearchResult[]>> {\n try {\n const response: AxiosResponse = await axios.get(\n `https://sfile.mobi/search.php?q=${query}&page=${page}`,\n {\n headers: {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n Referer: 'https://sfile.mobi/',\n 'Accept-Language': 'en-US,en;q=0.9',\n },\n }\n );\n const $ = cheerio.load(response.data);\n const results: SfileSearchResult[] = [];\n\n $('div.list').each(function () {\n const title = $(this).find('a').text();\n const sizeText = $(this).text().trim().split('(')[1];\n const link = $(this).find('a').attr('href');\n\n if (link && sizeText) {\n results.push({\n title,\n size: sizeText.replace(')', ''),\n link\n });\n }\n });\n\n return {\n creator: global.creator,\n status: 200,\n result: results,\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error'\n };\n }\n }\n\n async ytSearch(query: string): Promise<ApiResponse<YtSearchResult[]>> {\n try {\n const headers = {\n accept: \"*/*\",\n \"accept-language\": \"en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6\",\n priority: \"u=1, i\",\n \"sec-ch-ua\":\n '\"Microsoft Edge\";v=\"137\", \"Chromium\";v=\"137\", \"Not/A)Brand\";v=\"24\"',\n \"sec-ch-ua-mobile\": \"?0\",\n \"sec-ch-ua-platform\": '\"Windows\"',\n \"sec-fetch-dest\": \"empty\",\n \"sec-fetch-mode\": \"cors\",\n \"sec-fetch-site\": \"cross-site\",\n }\n const response: AxiosResponse = await axios.get(\n `https://line.1010diy.com/web/free-mp3-finder/query?q=${encodeURIComponent(query)}&type=youtube&pageToken=`,\n { headers }\n );\n\n const data = response.data;\n const videos = data?.data?.items || [];\n const results: YtSearchResult[] = videos.map((item: {\n title: string;\n thumbnail: string;\n url: string;\n }) => ({\n title: item.title,\n thumbnail: item.thumbnail,\n url: item.url\n }));\n\n return {\n creator: global.creator,\n status: 200,\n result: results,\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error'\n };\n }\n }\n\n ytPlay = (text: string): Promise<ApiResponse<YtPlayResult>> => {\n return new Promise((resolve, reject) => {\n const configd: YtPlayConfig = {\n k_query: text,\n k_page: 'mp3',\n q_auto: 1,\n };\n\n const headerss = {\n 'sec-ch-ua':\n '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n Cookie:\n 'PHPSESSID=6jo2ggb63g5mjvgj45f612ogt7; _ga=GA1.2.405896420.1625200423; _gid=GA1.2.2135261581.1625200423; _PN_SBSCRBR_FALLBACK_DENIED=1625200785624; MarketGidStorage={\"0\":{},\"C702514\":{\"page\":5,\"time\":1625200846733}}',\n };\n\n axios('https://www.y2mate.com/mates/analyzeV2/ajax', {\n method: 'POST',\n data: new URLSearchParams(Object.entries(configd)),\n headers: headerss,\n })\n .then(({ data }) => {\n const v = data.vitems;\n const v2 = v[Math.floor(Math.random() * v.length)].v;\n const url = 'https://www.youtube.com/watch?v=' + v2;\n\n const config: YtPlayConfig = {\n k_query: 'https://www.youtube.be/' + url,\n k_page: 'mp3',\n hl: 'en',\n q_auto: 1,\n };\n\n\n axios('https://www.y2mate.com/mates/en68/analyze/ajax', {\n method: 'POST',\n data: new URLSearchParams({\n url: 'https://www.youtube.be/' + url,\n q_auto: '0',\n ajax: '1',\n }),\n headers: headerss,\n }).then(({ data }) => {\n const $ = cheerio.load(data.result);\n const img = $('div.thumbnail.cover > a > img').attr('src');\n\n axios('https://www.y2mate.com/mates/analyzeV2/ajax', {\n method: 'POST',\n data: new URLSearchParams(Object.entries(config)),\n headers: headerss,\n }).then(({ data }) => {\n const convertConfig: ConvertConfig = {\n vid: data.vid,\n k: data.links.mp3.mp3128.k,\n };\n\n const size = data.links.mp3.mp3128.size;\n\n axios('https://www.y2mate.com/mates/convertV2/index', {\n method: 'POST',\n data: new URLSearchParams(Object.entries(convertConfig)),\n headers: headerss,\n })\n .then((response) => {\n resolve({\n creator: global.creator,\n status: 200,\n result: {\n status: response.data.status,\n title: response.data.title,\n ftype: response.data.ftype,\n thumb: img || '',\n size_mp3: size,\n link: response.data.dlink,\n },\n });\n })\n .catch(reject);\n });\n });\n })\n .catch(reject);\n });\n };\n\n wallpaper = (\n title: string,\n page: string = '1'\n ): Promise<ApiResponse<WallpaperResult[]>> => {\n return new Promise((resolve, reject) => {\n axios\n .get(\n `https://www.besthdwallpaper.com/search?CurrentPage=${page}&q=${title}`\n )\n .then(({ data }) => {\n const $ = cheerio.load(data);\n const hasil: WallpaperResult[] = [];\n\n $('div.grid-item').each(function (_, b) {\n const titleAttr = $(b).find('p[title]').attr('title');\n const typeText = $(b).find('div.info > a:nth-child(2)').text();\n const hrefAttr = $(b).find('a').attr('href');\n const imgSrc = $(b).find('picture > img').attr('src');\n const srcset1 = $(b)\n .find('picture > source:nth-child(1)')\n .attr('srcset');\n const srcset2 = $(b)\n .find('picture > source:nth-child(2)')\n .attr('srcset');\n\n if (titleAttr && hrefAttr) {\n hasil.push({\n title: titleAttr.trim(),\n type: typeText?.trim() || '',\n source: 'https://www.besthdwallpaper.com' + hrefAttr,\n image: [imgSrc || '', srcset1 || '', srcset2 || ''],\n });\n }\n });\n\n resolve({ creator: global.creator, status: 200, result: hasil });\n })\n .catch((error) => {\n reject(error);\n });\n });\n };\n\n wikimedia = (title: string): Promise<ApiResponse<WikimediaResult[]>> => {\n return new Promise((resolve, reject) => {\n axios\n .get(\n `https://commons.wikimedia.org/w/index.php?search=${title}&title=Special:MediaSearch&go=Go&type=image`\n )\n .then((res) => {\n const $ = cheerio.load(res.data);\n const hasil: WikimediaResult[] = [];\n\n $('.sdms-search-results__list-wrapper > div > a').each(function (\n _,\n b\n ) {\n const altText = $(b).find('img').attr('alt');\n const href = $(b).attr('href');\n const dataSrc = $(b).find('img').attr('data-src');\n const src = $(b).find('img').attr('src');\n\n if (altText && href) {\n hasil.push({\n title: altText,\n source: href,\n image: dataSrc || src || '',\n });\n }\n });\n\n resolve({ creator: global.creator, status: 200, result: hasil });\n })\n .catch(reject);\n });\n };\n}\n"],"mappings":"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","names":["crypto","axios","username","qs","import_axios","cheerio","axios","data"]}
|