abot-scraper 1.5.1 → 1.6.1

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/dist/index.js CHANGED
@@ -130,7 +130,7 @@ var Downloader = class {
130
130
  };
131
131
  this.generator = new Generator();
132
132
  }
133
- async facebook(url) {
133
+ async facebookDownloader(url) {
134
134
  try {
135
135
  const headers = {
136
136
  "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",
@@ -209,72 +209,52 @@ var Downloader = class {
209
209
  };
210
210
  }
211
211
  }
212
- async igstory(username) {
213
- const payload = {
214
- username
215
- };
216
- const headers = {
217
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/",
218
- accept: "application/json, text/plain, */*",
219
- "accept-language": "en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6",
220
- "content-type": "application/json",
221
- priority: "u=1, i",
222
- "sec-ch-ua": '"Microsoft Edge";v="137", "Chromium";v="137", "Not/A)Brand";v="24"',
223
- "sec-ch-ua-mobile": "?0",
224
- "sec-ch-ua-platform": '"Windows"',
225
- "sec-fetch-dest": "empty",
226
- "sec-fetch-mode": "cors",
227
- "sec-fetch-site": "same-origin",
228
- Referer: "https://storyviewer.com/",
229
- "Referrer-Policy": "strict-origin-when-cross-origin"
230
- };
212
+ async instagramDownloader(url) {
231
213
  try {
214
+ const payload = new URLSearchParams({ url });
215
+ const headers = {
216
+ accept: "*/*",
217
+ "accept-language": "en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6",
218
+ "content-type": "application/x-www-form-urlencoded",
219
+ priority: "u=1, i",
220
+ "sec-ch-ua": '"Not)A;Brand";v="8", "Chromium";v="138", "Microsoft Edge";v="138"',
221
+ "sec-ch-ua-mobile": "?0",
222
+ "sec-ch-ua-platform": '"Windows"',
223
+ "sec-fetch-dest": "empty",
224
+ "sec-fetch-mode": "cors",
225
+ "sec-fetch-site": "same-origin"
226
+ };
232
227
  const response = await axios.post(
233
- `https://storyviewer.com/api/data`,
228
+ "https://snapinsta.llc/process",
234
229
  payload,
235
230
  { headers }
236
231
  );
237
- const data = response.data;
238
- const sources = data.stories.map((story) => story.source);
239
- return {
240
- creator: global.creator,
241
- status: 200,
242
- result: {
243
- user_info: data.user_info,
244
- links: sources
232
+ const $ = cheerio.load(response.data);
233
+ const downloadItems = [];
234
+ $(".download-item").each((_index, element) => {
235
+ const $element = $(element);
236
+ const previewImg = $element.find(".media-box img").attr("src");
237
+ const downloadLink = $element.find(".download-media").attr("href");
238
+ const downloadText = $element.find(".download-media").text().trim();
239
+ const isVideo = downloadText.toLowerCase().includes("video") || $element.find(".icon-downvid").length > 0;
240
+ if (downloadLink) {
241
+ const mediaItem = {
242
+ type: isVideo ? "video" : "image",
243
+ url: downloadLink
244
+ };
245
+ if (previewImg) {
246
+ mediaItem.preview = previewImg;
247
+ }
248
+ downloadItems.push(mediaItem);
245
249
  }
246
- };
247
- } catch (error) {
248
- return {
249
- creator: global.creator,
250
- status: false,
251
- msg: error instanceof Error ? error.message : "Unknown error"
252
- };
253
- }
254
- }
255
- async instagram(url) {
256
- try {
257
- const config = new URLSearchParams({
258
- url,
259
- new: "2",
260
- lang: "en",
261
- app: ""
262
250
  });
263
- const headers = {
264
- "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"
265
- };
266
- const response = await axios.post(
267
- "https://snapinsta.app/get-data.php",
268
- config,
269
- { headers }
270
- );
271
- const downloadLinks = response.data.files.map(
272
- (file) => file.__type === "GraphVideo" ? { type: "video", url: file.video_url || "" } : file.__type === "GraphImage" ? { type: "image", url: file.download_url || "" } : null
273
- ).filter((link) => link !== null);
251
+ if (downloadItems.length === 0) {
252
+ throw new Error("No media items found in the response.");
253
+ }
274
254
  return {
275
255
  creator: global.creator,
276
256
  status: 200,
277
- result: downloadLinks
257
+ result: downloadItems
278
258
  };
279
259
  } catch (error) {
280
260
  return {
@@ -285,60 +265,6 @@ var Downloader = class {
285
265
  }
286
266
  }
287
267
  async youtubeDownloader(url) {
288
- try {
289
- const config = qs.stringify({
290
- url,
291
- q_auto: 0,
292
- ajax: 1,
293
- lang: "en"
294
- });
295
- const headers = {
296
- "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"
297
- };
298
- const response = await axios.post(
299
- "https://yt1s.net/ajax?retry=undefined&platform=youtube",
300
- config,
301
- { headers }
302
- );
303
- const $ = cheerio.load(response.data.result);
304
- const title = $(".caption b").text().trim();
305
- const downloadLinks = {
306
- "480p": $('a[data-fquality="480p"]').attr("href") || "",
307
- "720p": $('a[data-fquality="720p"]').attr("href") || "",
308
- "1080p": $('a[data-fquality="1080p"]').attr("href") || ""
309
- };
310
- const thumbnailUrl = $(".thumbnail.cover img").attr("src");
311
- const mp3ConvertElement = $("#convert-mp3 a");
312
- const hrefAttr = mp3ConvertElement.attr("href");
313
- if (!hrefAttr) throw new Error("MP3 conversion link not found.");
314
- const mp3ConvertTokenMatch = hrefAttr.match(
315
- /mp3_convert_task\('(\d+)',\s*'([^']+)'\)/
316
- );
317
- if (!mp3ConvertTokenMatch)
318
- throw new Error("MP3 conversion token not found.");
319
- const mp3ConvertToken = mp3ConvertTokenMatch[2];
320
- const mp3Response = await axios.get(
321
- `https://api.fabdl.com/youtube/mp3-convert-task?token=${mp3ConvertToken}`
322
- );
323
- return {
324
- creator: global.creator,
325
- status: 200,
326
- result: {
327
- title,
328
- thumbnail: thumbnailUrl || "",
329
- downloadLinks,
330
- mp3DownloadUrl: `https://api.fabdl.com${mp3Response.data.result.download_url}`
331
- }
332
- };
333
- } catch (error) {
334
- return {
335
- creator: global.creator,
336
- status: false,
337
- msg: error instanceof Error ? error.message : "Unknown error"
338
- };
339
- }
340
- }
341
- async youtubeDownloaderV2(url) {
342
268
  try {
343
269
  const timestamp = this.generator.generateTimeStampYoutubeDL();
344
270
  const footer = this.generator.generateFooterYoutubeDL(timestamp, url);
@@ -437,76 +363,6 @@ import * as cheerio2 from "cheerio";
437
363
  global.creator = "@abotscraper \u2013 ahmuq";
438
364
  var Search = class {
439
365
  constructor() {
440
- this.ytPlay = (text) => {
441
- return new Promise((resolve, reject) => {
442
- const configd = {
443
- k_query: text,
444
- k_page: "mp3",
445
- q_auto: 1
446
- };
447
- const headerss = {
448
- "sec-ch-ua": '" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"',
449
- "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",
450
- 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}}'
451
- };
452
- axios2("https://www.y2mate.com/mates/analyzeV2/ajax", {
453
- method: "POST",
454
- data: new URLSearchParams(Object.entries(configd)),
455
- headers: headerss
456
- }).then(({ data }) => {
457
- const v = data.vitems;
458
- const v2 = v[Math.floor(Math.random() * v.length)].v;
459
- const url = "https://www.youtube.com/watch?v=" + v2;
460
- const config = {
461
- k_query: "https://www.youtube.be/" + url,
462
- k_page: "mp3",
463
- hl: "en",
464
- q_auto: 1
465
- };
466
- axios2("https://www.y2mate.com/mates/en68/analyze/ajax", {
467
- method: "POST",
468
- data: new URLSearchParams({
469
- url: "https://www.youtube.be/" + url,
470
- q_auto: "0",
471
- ajax: "1"
472
- }),
473
- headers: headerss
474
- }).then(({ data: data2 }) => {
475
- const $ = cheerio2.load(data2.result);
476
- const img = $("div.thumbnail.cover > a > img").attr("src");
477
- axios2("https://www.y2mate.com/mates/analyzeV2/ajax", {
478
- method: "POST",
479
- data: new URLSearchParams(Object.entries(config)),
480
- headers: headerss
481
- }).then(({ data: data3 }) => {
482
- const convertConfig = {
483
- vid: data3.vid,
484
- k: data3.links.mp3.mp3128.k
485
- };
486
- const size = data3.links.mp3.mp3128.size;
487
- axios2("https://www.y2mate.com/mates/convertV2/index", {
488
- method: "POST",
489
- data: new URLSearchParams(Object.entries(convertConfig)),
490
- headers: headerss
491
- }).then((response) => {
492
- resolve({
493
- creator: global.creator,
494
- status: 200,
495
- result: {
496
- status: response.data.status,
497
- title: response.data.title,
498
- ftype: response.data.ftype,
499
- thumb: img || "",
500
- size_mp3: size,
501
- link: response.data.dlink
502
- }
503
- });
504
- }).catch(reject);
505
- });
506
- });
507
- }).catch(reject);
508
- });
509
- };
510
366
  this.wallpaper = (title, page = "1") => {
511
367
  return new Promise((resolve, reject) => {
512
368
  axios2.get(
@@ -561,6 +417,49 @@ var Search = class {
561
417
  });
562
418
  };
563
419
  }
420
+ async igStory(username) {
421
+ const payload = {
422
+ username
423
+ };
424
+ const headers = {
425
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/",
426
+ accept: "application/json, text/plain, */*",
427
+ "accept-language": "en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6",
428
+ "content-type": "application/json",
429
+ priority: "u=1, i",
430
+ "sec-ch-ua": '"Microsoft Edge";v="137", "Chromium";v="137", "Not/A)Brand";v="24"',
431
+ "sec-ch-ua-mobile": "?0",
432
+ "sec-ch-ua-platform": '"Windows"',
433
+ "sec-fetch-dest": "empty",
434
+ "sec-fetch-mode": "cors",
435
+ "sec-fetch-site": "same-origin",
436
+ Referer: "https://storyviewer.com/",
437
+ "Referrer-Policy": "strict-origin-when-cross-origin"
438
+ };
439
+ try {
440
+ const response = await axios2.post(
441
+ `https://storyviewer.com/api/data`,
442
+ payload,
443
+ { headers }
444
+ );
445
+ const data = response.data;
446
+ const sources = data.stories.map((story) => story.source);
447
+ return {
448
+ creator: global.creator,
449
+ status: 200,
450
+ result: {
451
+ user_info: data.user_info,
452
+ links: sources
453
+ }
454
+ };
455
+ } catch (error) {
456
+ return {
457
+ creator: global.creator,
458
+ status: false,
459
+ msg: error instanceof Error ? error.message : "Unknown error"
460
+ };
461
+ }
462
+ }
564
463
  async sfileSearch(query, page = 1) {
565
464
  try {
566
465
  const response = await axios2.get(
@@ -646,7 +545,107 @@ import FormData from "form-data";
646
545
  global.creator = "@abotscraper \u2013 ahmuq";
647
546
  var Tools = class {
648
547
  constructor() {
649
- this.reminiUpscale = (buffer) => {
548
+ this.removeBackground = (image) => {
549
+ return new Promise((resolve, reject) => {
550
+ const headers = {
551
+ "accept": "*/*",
552
+ "accept-language": "en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6",
553
+ "content-type": "application/json",
554
+ "priority": "u=1, i",
555
+ "sec-ch-ua": '"Not)A;Brand";v="8", "Chromium";v="138", "Microsoft Edge";v="138"',
556
+ "sec-ch-ua-mobile": "?0",
557
+ "sec-ch-ua-platform": '"Windows"',
558
+ "sec-fetch-dest": "empty",
559
+ "sec-fetch-mode": "cors",
560
+ "sec-fetch-site": "same-origin",
561
+ "referrer": "https://aibackgroundremover.org/"
562
+ };
563
+ const payload = {
564
+ image
565
+ };
566
+ axios3.post("https://aibackgroundremover.org/api/remove-bg", payload, {
567
+ headers
568
+ }).then((CreateJobResponse) => {
569
+ if (CreateJobResponse.status !== 200) {
570
+ reject({
571
+ creator: global.creator,
572
+ status: false,
573
+ error: `job creation failed`
574
+ });
575
+ return;
576
+ }
577
+ const jobId = CreateJobResponse.data.id;
578
+ const checkJobStatus = () => {
579
+ axios3.get(`https://aibackgroundremover.org/api/check-status?id=${jobId}`, {
580
+ headers
581
+ }).then((jobResponse) => {
582
+ if (jobResponse.data.status === "succeeded") {
583
+ resolve({
584
+ creator: global.creator,
585
+ status: true,
586
+ result: {
587
+ job_id: jobId,
588
+ image_url: jobResponse.data.output
589
+ }
590
+ });
591
+ } else if (jobResponse.data.status === "starting") {
592
+ setTimeout(checkJobStatus, 3e3);
593
+ } else {
594
+ reject({
595
+ creator: global.creator,
596
+ status: false,
597
+ error: `job status unknown: ${jobResponse.data.status}`
598
+ });
599
+ }
600
+ }).catch((error) => {
601
+ reject({
602
+ creator: global.creator,
603
+ status: false,
604
+ error: error.message
605
+ });
606
+ });
607
+ };
608
+ checkJobStatus();
609
+ }).catch((error) => {
610
+ reject({
611
+ creator: global.creator,
612
+ status: false,
613
+ error: error.message
614
+ });
615
+ });
616
+ });
617
+ };
618
+ this.reminiV2 = (buffer) => {
619
+ return new Promise((resolve, reject) => {
620
+ const form = new FormData();
621
+ form.append("image", buffer, "blob");
622
+ form.append("scale", 2);
623
+ axios3.post("https://api2.pixelcut.app/image/upscale/v1", form, {
624
+ headers: {
625
+ ...form.getHeaders(),
626
+ Accept: "application/json",
627
+ Referer: "https://www.pixelcut.ai/",
628
+ Origin: "https://www.pixelcut.ai",
629
+ "x-client-version": "web"
630
+ }
631
+ }).then((Response) => {
632
+ if (Response.data.result_url) {
633
+ resolve({
634
+ creator: global.creator,
635
+ status: true,
636
+ result: Response.data.result_url
637
+ });
638
+ }
639
+ }).catch((error) => {
640
+ reject({
641
+ creator: global.creator,
642
+ status: false,
643
+ error: error.message
644
+ });
645
+ });
646
+ });
647
+ };
648
+ this.reminiV1 = (buffer) => {
650
649
  return new Promise((resolve, reject) => {
651
650
  const form = new FormData();
652
651
  form.append("type", "Enhancer");
@@ -658,7 +657,8 @@ var Tools = class {
658
657
  "authorization": "",
659
658
  "product-code": "067003",
660
659
  "product-serial": productSerial,
661
- "Referer": "https://remaker.ai/"
660
+ "Referer": "https://remaker.ai/",
661
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0"
662
662
  }
663
663
  }).then((createJobResponse) => {
664
664
  if (createJobResponse.data.code !== 1e5) {