abot-scraper 1.4.0 → 1.5.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/dist/index.cjs +68 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +68 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
@@ -669,6 +669,74 @@ var import_form_data = __toESM(require("form-data"), 1);
|
|
669
669
|
global.creator = "@abotscraper \u2013 ahmuq";
|
670
670
|
var Tools = class {
|
671
671
|
constructor() {
|
672
|
+
this.reminiUpscale = (buffer) => {
|
673
|
+
return new Promise((resolve, reject) => {
|
674
|
+
const form = new import_form_data.default();
|
675
|
+
form.append("type", "Enhancer");
|
676
|
+
form.append("original_image_file", buffer, "blob");
|
677
|
+
import_axios3.default.post("https://api.remaker.ai/api/pai/v4/ai-enhance/create-job-new", form, {
|
678
|
+
headers: {
|
679
|
+
...form.getHeaders(),
|
680
|
+
"authorization": "",
|
681
|
+
"product-code": "067003",
|
682
|
+
"product-serial": "24d7e0c0b939f686aaa76f532c3efcd4",
|
683
|
+
"Referer": "https://remaker.ai/"
|
684
|
+
}
|
685
|
+
}).then((createJobResponse) => {
|
686
|
+
if (createJobResponse.data.code !== 1e5) {
|
687
|
+
reject({
|
688
|
+
creator: global.creator,
|
689
|
+
status: false,
|
690
|
+
error: `Job creation failed: ${createJobResponse.data.message.en}`
|
691
|
+
});
|
692
|
+
return;
|
693
|
+
}
|
694
|
+
const jobId = createJobResponse.data.result.job_id;
|
695
|
+
const checkJobStatus = () => {
|
696
|
+
import_axios3.default.get(`https://api.remaker.ai/api/pai/v4/ai-enhance/get-job/${jobId}`, {
|
697
|
+
headers: {
|
698
|
+
"authorization": "",
|
699
|
+
"product-code": "067003",
|
700
|
+
"product-serial": "24d7e0c0b939f686aaa76f532c3efcd4",
|
701
|
+
"Referer": "https://remaker.ai/"
|
702
|
+
}
|
703
|
+
}).then((jobResponse) => {
|
704
|
+
if (jobResponse.data.code === 1e5) {
|
705
|
+
resolve({
|
706
|
+
creator: global.creator,
|
707
|
+
status: true,
|
708
|
+
result: {
|
709
|
+
job_id: jobId,
|
710
|
+
image_url: jobResponse.data.result.output[0]
|
711
|
+
}
|
712
|
+
});
|
713
|
+
} else if (jobResponse.data.code === 300013) {
|
714
|
+
setTimeout(checkJobStatus, 3e3);
|
715
|
+
} else {
|
716
|
+
reject({
|
717
|
+
creator: global.creator,
|
718
|
+
status: false,
|
719
|
+
error: `Job failed: ${jobResponse.data.message.en}`
|
720
|
+
});
|
721
|
+
}
|
722
|
+
}).catch((error) => {
|
723
|
+
reject({
|
724
|
+
creator: global.creator,
|
725
|
+
status: false,
|
726
|
+
error: error.message
|
727
|
+
});
|
728
|
+
});
|
729
|
+
};
|
730
|
+
checkJobStatus();
|
731
|
+
}).catch((error) => {
|
732
|
+
reject({
|
733
|
+
creator: global.creator,
|
734
|
+
status: false,
|
735
|
+
error: error.message
|
736
|
+
});
|
737
|
+
});
|
738
|
+
});
|
739
|
+
};
|
672
740
|
this.uploadImage = (buffer) => {
|
673
741
|
return new Promise((resolve, reject) => {
|
674
742
|
const form = new import_form_data.default();
|
package/dist/index.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/scraper/downloader.ts","../src/utils/generator.ts","../src/scraper/search.ts","../src/scraper/tools.ts"],"sourcesContent":["import Downloader from './scraper/downloader.js';\nimport Search from './scraper/search.js';\nimport Tools from './scraper/tools.js';\n\nconst downloader = new Downloader();\nconst search = new Search();\nconst tools = new Tools();\nexport default {\n downloader,\n search,\n tools\n};\n\nexport { Downloader, downloader, Search, search, Tools, tools };\n\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 if (!videoUrl && !imageUrl) {\n throw new Error('No video or image found in the response.');\n }\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 if (!title || !video) {\n throw new Error('Failed to extract video or title from response.');\n }\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 const payload = {\n username: username,\n }\n const headers = {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/',\n accept: 'application/json, text/plain, */*',\n 'accept-language': 'en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6',\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-origin',\n Referer: 'https://storyviewer.com/',\n 'Referrer-Policy': 'strict-origin-when-cross-origin',\n };\n try {\n const response: AxiosResponse = await axios.post(\n `https://storyviewer.com/api/data`,\n payload,\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 ytMp3Downloader = (url: string) => {\n return new Promise((resolve, reject) => {\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 \"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\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 Referer: \"https://y2hub.com/\",\n \"Referrer-Policy\": \"strict-origin-when-cross-origin\",\n };\n\n const payload = qs.stringify({\n action: \"yt_convert\",\n nonce: \"1495b10e48\",\n youtube_url: url,\n });\n\n axios(`https://youtubemp4free.com/wp-admin/admin-ajax.php`, {\n method: \"POST\",\n headers: headers,\n data: payload,\n })\n .then(({ data }) => {\n if (!data.success) {\n return reject(new Error(\"Failed to fetch video data\"));\n }\n\n const videoInfo = data.data.info;\n const slug = data.data.slug;\n const size = data.data.size;\n return axios(\"https://ryin.info/\", {\n method: \"GET\",\n headers: {\n \"User-Agent\":\n \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0\",\n },\n }).then((response) => {\n const setCookieHeaders = response.headers[\"set-cookie\"];\n let cookies;\n\n if (setCookieHeaders) {\n cookies = setCookieHeaders\n .map((cookie) => cookie.split(\";\")[0])\n .join(\"; \");\n } else {\n cookies =\n \"PHPSESSID=fl86pmq4dqgh2835b32mdm7380; csrf_cookie_name=739e04fcc21050c61c5325b34f449659; lang=en\";\n }\n\n const pageUrl = \"https://ryin.info/\" + slug;\n\n return axios(pageUrl, {\n method: \"GET\",\n headers: {\n \"User-Agent\":\n \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0\",\n Cookie: cookies,\n },\n }).then((response) => {\n const html = response.data;\n const $ = cheerio.load(html);\n const downloadHref = $(\"#download-url\").attr(\"download-href\");\n\n if (!downloadHref) {\n return reject(new Error(\"Download link not found on page\"));\n }\n resolve({\n creator: global.creator,\n status: true,\n title: videoInfo.title,\n thumbnail: videoInfo.thumbnail,\n description: videoInfo.description,\n viewCount: videoInfo.view_count,\n size: this.generator.formatFileSize(size),\n downloadUrl: downloadHref,\n });\n });\n });\n })\n .catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\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 formatFileSize(bytes: number): string {\n if (bytes === 0) return \"0 Bytes\";\n const k = 1024;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + \" \" + sizes[i];\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","import axios, { AxiosResponse } from 'axios';\nimport FormData from 'form-data';\n\nglobal.creator = '@abotscraper – ahmuq'\n\nexport default class Tools {\n uploadImage = (buffer: Buffer) => {\n return new Promise((resolve, reject) => {\n const form = new FormData();\n form.append('fileToUpload', buffer, 'image.jpg');\n form.append('reqtype', 'fileupload');\n form.append('userhash', '');\n\n axios.post('https://catbox.moe/user/api.php', form, {\n headers: {\n ...form.getHeaders(),\n }\n })\n .then((response: AxiosResponse) => {\n resolve({\n creator: global.creator,\n status: true,\n result: response.data\n })\n })\n .catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n })\n }\n}"],"mappings":"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","names":["crypto","qs","axios","response","import_axios","cheerio","axios","data","import_axios","FormData","axios"]}
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/scraper/downloader.ts","../src/utils/generator.ts","../src/scraper/search.ts","../src/scraper/tools.ts"],"sourcesContent":["import Downloader from './scraper/downloader.js';\nimport Search from './scraper/search.js';\nimport Tools from './scraper/tools.js';\n\nconst downloader = new Downloader();\nconst search = new Search();\nconst tools = new Tools();\nexport default {\n downloader,\n search,\n tools\n};\n\nexport { Downloader, downloader, Search, search, Tools, tools };\n\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 if (!videoUrl && !imageUrl) {\n throw new Error('No video or image found in the response.');\n }\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 if (!title || !video) {\n throw new Error('Failed to extract video or title from response.');\n }\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 const payload = {\n username: username,\n }\n const headers = {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/',\n accept: 'application/json, text/plain, */*',\n 'accept-language': 'en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6',\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-origin',\n Referer: 'https://storyviewer.com/',\n 'Referrer-Policy': 'strict-origin-when-cross-origin',\n };\n try {\n const response: AxiosResponse = await axios.post(\n `https://storyviewer.com/api/data`,\n payload,\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 ytMp3Downloader = (url: string) => {\n return new Promise((resolve, reject) => {\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 \"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\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 Referer: \"https://y2hub.com/\",\n \"Referrer-Policy\": \"strict-origin-when-cross-origin\",\n };\n\n const payload = qs.stringify({\n action: \"yt_convert\",\n nonce: \"1495b10e48\",\n youtube_url: url,\n });\n\n axios(`https://youtubemp4free.com/wp-admin/admin-ajax.php`, {\n method: \"POST\",\n headers: headers,\n data: payload,\n })\n .then(({ data }) => {\n if (!data.success) {\n return reject(new Error(\"Failed to fetch video data\"));\n }\n\n const videoInfo = data.data.info;\n const slug = data.data.slug;\n const size = data.data.size;\n return axios(\"https://ryin.info/\", {\n method: \"GET\",\n headers: {\n \"User-Agent\":\n \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0\",\n },\n }).then((response) => {\n const setCookieHeaders = response.headers[\"set-cookie\"];\n let cookies;\n\n if (setCookieHeaders) {\n cookies = setCookieHeaders\n .map((cookie) => cookie.split(\";\")[0])\n .join(\"; \");\n } else {\n cookies =\n \"PHPSESSID=fl86pmq4dqgh2835b32mdm7380; csrf_cookie_name=739e04fcc21050c61c5325b34f449659; lang=en\";\n }\n\n const pageUrl = \"https://ryin.info/\" + slug;\n\n return axios(pageUrl, {\n method: \"GET\",\n headers: {\n \"User-Agent\":\n \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0\",\n Cookie: cookies,\n },\n }).then((response) => {\n const html = response.data;\n const $ = cheerio.load(html);\n const downloadHref = $(\"#download-url\").attr(\"download-href\");\n\n if (!downloadHref) {\n return reject(new Error(\"Download link not found on page\"));\n }\n resolve({\n creator: global.creator,\n status: true,\n title: videoInfo.title,\n thumbnail: videoInfo.thumbnail,\n description: videoInfo.description,\n viewCount: videoInfo.view_count,\n size: this.generator.formatFileSize(size),\n downloadUrl: downloadHref,\n });\n });\n });\n })\n .catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\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 formatFileSize(bytes: number): string {\n if (bytes === 0) return \"0 Bytes\";\n const k = 1024;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + \" \" + sizes[i];\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","import axios, { AxiosResponse } from 'axios';\nimport FormData from 'form-data';\n\nglobal.creator = '@abotscraper – ahmuq'\n\nexport default class Tools {\n reminiUpscale = (buffer: Buffer) => {\n return new Promise((resolve, reject) => {\n const form = new FormData();\n form.append('type', 'Enhancer');\n form.append('original_image_file', buffer, 'blob');\n axios.post('https://api.remaker.ai/api/pai/v4/ai-enhance/create-job-new', form, {\n headers: {\n ...form.getHeaders(),\n 'authorization': '',\n 'product-code': '067003',\n 'product-serial': '24d7e0c0b939f686aaa76f532c3efcd4',\n 'Referer': 'https://remaker.ai/',\n }\n }).then((createJobResponse: AxiosResponse) => {\n if (createJobResponse.data.code !== 100000) {\n reject({\n creator: global.creator,\n status: false,\n error: `Job creation failed: ${createJobResponse.data.message.en}`,\n });\n return;\n }\n const jobId = createJobResponse.data.result.job_id;\n const checkJobStatus = () => {\n axios.get(`https://api.remaker.ai/api/pai/v4/ai-enhance/get-job/${jobId}`, {\n headers: {\n 'authorization': '',\n 'product-code': '067003',\n 'product-serial': '24d7e0c0b939f686aaa76f532c3efcd4',\n 'Referer': 'https://remaker.ai/',\n }\n }).then((jobResponse: AxiosResponse) => {\n if (jobResponse.data.code === 100000) {\n resolve({\n creator: global.creator,\n status: true,\n result: {\n job_id: jobId,\n image_url: jobResponse.data.result.output[0]\n }\n });\n } else if (jobResponse.data.code === 300013) {\n setTimeout(checkJobStatus, 3000);\n } else {\n reject({\n creator: global.creator,\n status: false,\n error: `Job failed: ${jobResponse.data.message.en}`,\n });\n }\n }).catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n };\n\n checkJobStatus();\n }).catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n });\n }\n\n uploadImage = (buffer: Buffer) => {\n return new Promise((resolve, reject) => {\n const form = new FormData();\n form.append('fileToUpload', buffer, 'image.jpg');\n form.append('reqtype', 'fileupload');\n form.append('userhash', '');\n\n axios.post('https://catbox.moe/user/api.php', form, {\n headers: {\n ...form.getHeaders(),\n }\n })\n .then((response: AxiosResponse) => {\n resolve({\n creator: global.creator,\n status: true,\n result: response.data\n })\n })\n .catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n })\n }\n}"],"mappings":"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","names":["crypto","qs","axios","response","import_axios","cheerio","axios","data","import_axios","FormData","axios"]}
|
package/dist/index.d.cts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
@@ -627,6 +627,74 @@ import FormData from "form-data";
|
|
627
627
|
global.creator = "@abotscraper \u2013 ahmuq";
|
628
628
|
var Tools = class {
|
629
629
|
constructor() {
|
630
|
+
this.reminiUpscale = (buffer) => {
|
631
|
+
return new Promise((resolve, reject) => {
|
632
|
+
const form = new FormData();
|
633
|
+
form.append("type", "Enhancer");
|
634
|
+
form.append("original_image_file", buffer, "blob");
|
635
|
+
axios3.post("https://api.remaker.ai/api/pai/v4/ai-enhance/create-job-new", form, {
|
636
|
+
headers: {
|
637
|
+
...form.getHeaders(),
|
638
|
+
"authorization": "",
|
639
|
+
"product-code": "067003",
|
640
|
+
"product-serial": "24d7e0c0b939f686aaa76f532c3efcd4",
|
641
|
+
"Referer": "https://remaker.ai/"
|
642
|
+
}
|
643
|
+
}).then((createJobResponse) => {
|
644
|
+
if (createJobResponse.data.code !== 1e5) {
|
645
|
+
reject({
|
646
|
+
creator: global.creator,
|
647
|
+
status: false,
|
648
|
+
error: `Job creation failed: ${createJobResponse.data.message.en}`
|
649
|
+
});
|
650
|
+
return;
|
651
|
+
}
|
652
|
+
const jobId = createJobResponse.data.result.job_id;
|
653
|
+
const checkJobStatus = () => {
|
654
|
+
axios3.get(`https://api.remaker.ai/api/pai/v4/ai-enhance/get-job/${jobId}`, {
|
655
|
+
headers: {
|
656
|
+
"authorization": "",
|
657
|
+
"product-code": "067003",
|
658
|
+
"product-serial": "24d7e0c0b939f686aaa76f532c3efcd4",
|
659
|
+
"Referer": "https://remaker.ai/"
|
660
|
+
}
|
661
|
+
}).then((jobResponse) => {
|
662
|
+
if (jobResponse.data.code === 1e5) {
|
663
|
+
resolve({
|
664
|
+
creator: global.creator,
|
665
|
+
status: true,
|
666
|
+
result: {
|
667
|
+
job_id: jobId,
|
668
|
+
image_url: jobResponse.data.result.output[0]
|
669
|
+
}
|
670
|
+
});
|
671
|
+
} else if (jobResponse.data.code === 300013) {
|
672
|
+
setTimeout(checkJobStatus, 3e3);
|
673
|
+
} else {
|
674
|
+
reject({
|
675
|
+
creator: global.creator,
|
676
|
+
status: false,
|
677
|
+
error: `Job failed: ${jobResponse.data.message.en}`
|
678
|
+
});
|
679
|
+
}
|
680
|
+
}).catch((error) => {
|
681
|
+
reject({
|
682
|
+
creator: global.creator,
|
683
|
+
status: false,
|
684
|
+
error: error.message
|
685
|
+
});
|
686
|
+
});
|
687
|
+
};
|
688
|
+
checkJobStatus();
|
689
|
+
}).catch((error) => {
|
690
|
+
reject({
|
691
|
+
creator: global.creator,
|
692
|
+
status: false,
|
693
|
+
error: error.message
|
694
|
+
});
|
695
|
+
});
|
696
|
+
});
|
697
|
+
};
|
630
698
|
this.uploadImage = (buffer) => {
|
631
699
|
return new Promise((resolve, reject) => {
|
632
700
|
const form = new FormData();
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/scraper/downloader.ts","../src/utils/generator.ts","../src/scraper/search.ts","../src/scraper/tools.ts","../src/index.ts"],"sourcesContent":["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 if (!videoUrl && !imageUrl) {\n throw new Error('No video or image found in the response.');\n }\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 if (!title || !video) {\n throw new Error('Failed to extract video or title from response.');\n }\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 const payload = {\n username: username,\n }\n const headers = {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/',\n accept: 'application/json, text/plain, */*',\n 'accept-language': 'en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6',\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-origin',\n Referer: 'https://storyviewer.com/',\n 'Referrer-Policy': 'strict-origin-when-cross-origin',\n };\n try {\n const response: AxiosResponse = await axios.post(\n `https://storyviewer.com/api/data`,\n payload,\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 ytMp3Downloader = (url: string) => {\n return new Promise((resolve, reject) => {\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 \"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\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 Referer: \"https://y2hub.com/\",\n \"Referrer-Policy\": \"strict-origin-when-cross-origin\",\n };\n\n const payload = qs.stringify({\n action: \"yt_convert\",\n nonce: \"1495b10e48\",\n youtube_url: url,\n });\n\n axios(`https://youtubemp4free.com/wp-admin/admin-ajax.php`, {\n method: \"POST\",\n headers: headers,\n data: payload,\n })\n .then(({ data }) => {\n if (!data.success) {\n return reject(new Error(\"Failed to fetch video data\"));\n }\n\n const videoInfo = data.data.info;\n const slug = data.data.slug;\n const size = data.data.size;\n return axios(\"https://ryin.info/\", {\n method: \"GET\",\n headers: {\n \"User-Agent\":\n \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0\",\n },\n }).then((response) => {\n const setCookieHeaders = response.headers[\"set-cookie\"];\n let cookies;\n\n if (setCookieHeaders) {\n cookies = setCookieHeaders\n .map((cookie) => cookie.split(\";\")[0])\n .join(\"; \");\n } else {\n cookies =\n \"PHPSESSID=fl86pmq4dqgh2835b32mdm7380; csrf_cookie_name=739e04fcc21050c61c5325b34f449659; lang=en\";\n }\n\n const pageUrl = \"https://ryin.info/\" + slug;\n\n return axios(pageUrl, {\n method: \"GET\",\n headers: {\n \"User-Agent\":\n \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0\",\n Cookie: cookies,\n },\n }).then((response) => {\n const html = response.data;\n const $ = cheerio.load(html);\n const downloadHref = $(\"#download-url\").attr(\"download-href\");\n\n if (!downloadHref) {\n return reject(new Error(\"Download link not found on page\"));\n }\n resolve({\n creator: global.creator,\n status: true,\n title: videoInfo.title,\n thumbnail: videoInfo.thumbnail,\n description: videoInfo.description,\n viewCount: videoInfo.view_count,\n size: this.generator.formatFileSize(size),\n downloadUrl: downloadHref,\n });\n });\n });\n })\n .catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\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 formatFileSize(bytes: number): string {\n if (bytes === 0) return \"0 Bytes\";\n const k = 1024;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + \" \" + sizes[i];\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","import axios, { AxiosResponse } from 'axios';\nimport FormData from 'form-data';\n\nglobal.creator = '@abotscraper – ahmuq'\n\nexport default class Tools {\n uploadImage = (buffer: Buffer) => {\n return new Promise((resolve, reject) => {\n const form = new FormData();\n form.append('fileToUpload', buffer, 'image.jpg');\n form.append('reqtype', 'fileupload');\n form.append('userhash', '');\n\n axios.post('https://catbox.moe/user/api.php', form, {\n headers: {\n ...form.getHeaders(),\n }\n })\n .then((response: AxiosResponse) => {\n resolve({\n creator: global.creator,\n status: true,\n result: response.data\n })\n })\n .catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n })\n }\n}","import Downloader from './scraper/downloader.js';\nimport Search from './scraper/search.js';\nimport Tools from './scraper/tools.js';\n\nconst downloader = new Downloader();\nconst search = new Search();\nconst tools = new Tools();\nexport default {\n downloader,\n search,\n tools\n};\n\nexport { Downloader, downloader, Search, search, Tools, tools };\n\n"],"mappings":"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","names":["response","axios","cheerio","data","axios"]}
|
1
|
+
{"version":3,"sources":["../src/scraper/downloader.ts","../src/utils/generator.ts","../src/scraper/search.ts","../src/scraper/tools.ts","../src/index.ts"],"sourcesContent":["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 if (!videoUrl && !imageUrl) {\n throw new Error('No video or image found in the response.');\n }\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 if (!title || !video) {\n throw new Error('Failed to extract video or title from response.');\n }\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 const payload = {\n username: username,\n }\n const headers = {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/',\n accept: 'application/json, text/plain, */*',\n 'accept-language': 'en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6',\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-origin',\n Referer: 'https://storyviewer.com/',\n 'Referrer-Policy': 'strict-origin-when-cross-origin',\n };\n try {\n const response: AxiosResponse = await axios.post(\n `https://storyviewer.com/api/data`,\n payload,\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 ytMp3Downloader = (url: string) => {\n return new Promise((resolve, reject) => {\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 \"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\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 Referer: \"https://y2hub.com/\",\n \"Referrer-Policy\": \"strict-origin-when-cross-origin\",\n };\n\n const payload = qs.stringify({\n action: \"yt_convert\",\n nonce: \"1495b10e48\",\n youtube_url: url,\n });\n\n axios(`https://youtubemp4free.com/wp-admin/admin-ajax.php`, {\n method: \"POST\",\n headers: headers,\n data: payload,\n })\n .then(({ data }) => {\n if (!data.success) {\n return reject(new Error(\"Failed to fetch video data\"));\n }\n\n const videoInfo = data.data.info;\n const slug = data.data.slug;\n const size = data.data.size;\n return axios(\"https://ryin.info/\", {\n method: \"GET\",\n headers: {\n \"User-Agent\":\n \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0\",\n },\n }).then((response) => {\n const setCookieHeaders = response.headers[\"set-cookie\"];\n let cookies;\n\n if (setCookieHeaders) {\n cookies = setCookieHeaders\n .map((cookie) => cookie.split(\";\")[0])\n .join(\"; \");\n } else {\n cookies =\n \"PHPSESSID=fl86pmq4dqgh2835b32mdm7380; csrf_cookie_name=739e04fcc21050c61c5325b34f449659; lang=en\";\n }\n\n const pageUrl = \"https://ryin.info/\" + slug;\n\n return axios(pageUrl, {\n method: \"GET\",\n headers: {\n \"User-Agent\":\n \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0\",\n Cookie: cookies,\n },\n }).then((response) => {\n const html = response.data;\n const $ = cheerio.load(html);\n const downloadHref = $(\"#download-url\").attr(\"download-href\");\n\n if (!downloadHref) {\n return reject(new Error(\"Download link not found on page\"));\n }\n resolve({\n creator: global.creator,\n status: true,\n title: videoInfo.title,\n thumbnail: videoInfo.thumbnail,\n description: videoInfo.description,\n viewCount: videoInfo.view_count,\n size: this.generator.formatFileSize(size),\n downloadUrl: downloadHref,\n });\n });\n });\n })\n .catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\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 formatFileSize(bytes: number): string {\n if (bytes === 0) return \"0 Bytes\";\n const k = 1024;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + \" \" + sizes[i];\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","import axios, { AxiosResponse } from 'axios';\nimport FormData from 'form-data';\n\nglobal.creator = '@abotscraper – ahmuq'\n\nexport default class Tools {\n reminiUpscale = (buffer: Buffer) => {\n return new Promise((resolve, reject) => {\n const form = new FormData();\n form.append('type', 'Enhancer');\n form.append('original_image_file', buffer, 'blob');\n axios.post('https://api.remaker.ai/api/pai/v4/ai-enhance/create-job-new', form, {\n headers: {\n ...form.getHeaders(),\n 'authorization': '',\n 'product-code': '067003',\n 'product-serial': '24d7e0c0b939f686aaa76f532c3efcd4',\n 'Referer': 'https://remaker.ai/',\n }\n }).then((createJobResponse: AxiosResponse) => {\n if (createJobResponse.data.code !== 100000) {\n reject({\n creator: global.creator,\n status: false,\n error: `Job creation failed: ${createJobResponse.data.message.en}`,\n });\n return;\n }\n const jobId = createJobResponse.data.result.job_id;\n const checkJobStatus = () => {\n axios.get(`https://api.remaker.ai/api/pai/v4/ai-enhance/get-job/${jobId}`, {\n headers: {\n 'authorization': '',\n 'product-code': '067003',\n 'product-serial': '24d7e0c0b939f686aaa76f532c3efcd4',\n 'Referer': 'https://remaker.ai/',\n }\n }).then((jobResponse: AxiosResponse) => {\n if (jobResponse.data.code === 100000) {\n resolve({\n creator: global.creator,\n status: true,\n result: {\n job_id: jobId,\n image_url: jobResponse.data.result.output[0]\n }\n });\n } else if (jobResponse.data.code === 300013) {\n setTimeout(checkJobStatus, 3000);\n } else {\n reject({\n creator: global.creator,\n status: false,\n error: `Job failed: ${jobResponse.data.message.en}`,\n });\n }\n }).catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n };\n\n checkJobStatus();\n }).catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n });\n }\n\n uploadImage = (buffer: Buffer) => {\n return new Promise((resolve, reject) => {\n const form = new FormData();\n form.append('fileToUpload', buffer, 'image.jpg');\n form.append('reqtype', 'fileupload');\n form.append('userhash', '');\n\n axios.post('https://catbox.moe/user/api.php', form, {\n headers: {\n ...form.getHeaders(),\n }\n })\n .then((response: AxiosResponse) => {\n resolve({\n creator: global.creator,\n status: true,\n result: response.data\n })\n })\n .catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n })\n }\n}","import Downloader from './scraper/downloader.js';\nimport Search from './scraper/search.js';\nimport Tools from './scraper/tools.js';\n\nconst downloader = new Downloader();\nconst search = new Search();\nconst tools = new Tools();\nexport default {\n downloader,\n search,\n tools\n};\n\nexport { Downloader, downloader, Search, search, Tools, tools };\n\n"],"mappings":";AAAA,OAAO,WAA8B;AACrC,YAAY,aAAa;AACzB,OAAO,QAAQ;;;ACFf,OAAO,YAAY;AAEnB,IAAqB,YAArB,MAA+B;AAAA,EAC3B,6BAAqC;AACjC,WAAO,KAAK,IAAI,EAAE,SAAS;AAAA,EAC/B;AAAA,EAEA,wBAAwB,WAAmB,MAAsB;AAC7D,UAAM,SAAS;AACf,UAAM,YAAY;AAClB,UAAM,QAAQ,OAAO,SAAS,YAAY;AAC1C,UAAM,OAAO,OAAO,WAAW,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK;AAChE,WAAO;AAAA,EACX;AAAA,EAEA,eAAe,OAAuB;AAClC,QAAI,UAAU,EAAG,QAAO;AACxB,UAAM,IAAI;AACV,UAAM,QAAQ,CAAC,SAAS,MAAM,MAAM,MAAM,IAAI;AAC9C,UAAM,IAAI,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC;AAClD,WAAO,YAAY,QAAQ,KAAK,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,MAAM,MAAM,CAAC;AAAA,EAC1E;AACJ;;;ADyCA,OAAO,UAAU;AAEjB,IAAqB,aAArB,MAAgC;AAAA,EAG5B,cAAc;AAgQd,2BAAkB,CAAC,QAAgB;AAC/B,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACpC,cAAM,UAAU;AAAA,UACZ,QAAQ;AAAA,UACR,mBAAmB;AAAA,UACnB,gBAAgB;AAAA,UAChB,UAAU;AAAA,UACV,aACI;AAAA,UACJ,oBAAoB;AAAA,UACpB,sBAAsB;AAAA,UACtB,kBAAkB;AAAA,UAClB,kBAAkB;AAAA,UAClB,kBAAkB;AAAA,UAClB,SAAS;AAAA,UACT,mBAAmB;AAAA,QACvB;AAEA,cAAM,UAAU,GAAG,UAAU;AAAA,UACzB,QAAQ;AAAA,UACR,OAAO;AAAA,UACP,aAAa;AAAA,QACjB,CAAC;AAED,cAAM,sDAAsD;AAAA,UACxD,QAAQ;AAAA,UACR;AAAA,UACA,MAAM;AAAA,QACV,CAAC,EACI,KAAK,CAAC,EAAE,KAAK,MAAM;AAChB,cAAI,CAAC,KAAK,SAAS;AACf,mBAAO,OAAO,IAAI,MAAM,4BAA4B,CAAC;AAAA,UACzD;AAEA,gBAAM,YAAY,KAAK,KAAK;AAC5B,gBAAM,OAAO,KAAK,KAAK;AACvB,gBAAM,OAAO,KAAK,KAAK;AACvB,iBAAO,MAAM,sBAAsB;AAAA,YAC/B,QAAQ;AAAA,YACR,SAAS;AAAA,cACL,cACI;AAAA,YACR;AAAA,UACJ,CAAC,EAAE,KAAK,CAAC,aAAa;AAClB,kBAAM,mBAAmB,SAAS,QAAQ,YAAY;AACtD,gBAAI;AAEJ,gBAAI,kBAAkB;AAClB,wBAAU,iBACL,IAAI,CAAC,WAAW,OAAO,MAAM,GAAG,EAAE,CAAC,CAAC,EACpC,KAAK,IAAI;AAAA,YAClB,OAAO;AACH,wBACI;AAAA,YACR;AAEA,kBAAM,UAAU,uBAAuB;AAEvC,mBAAO,MAAM,SAAS;AAAA,cAClB,QAAQ;AAAA,cACR,SAAS;AAAA,gBACL,cACI;AAAA,gBACJ,QAAQ;AAAA,cACZ;AAAA,YACJ,CAAC,EAAE,KAAK,CAACA,cAAa;AAClB,oBAAM,OAAOA,UAAS;AACtB,oBAAM,IAAY,aAAK,IAAI;AAC3B,oBAAM,eAAe,EAAE,eAAe,EAAE,KAAK,eAAe;AAE5D,kBAAI,CAAC,cAAc;AACf,uBAAO,OAAO,IAAI,MAAM,iCAAiC,CAAC;AAAA,cAC9D;AACA,sBAAQ;AAAA,gBACJ,SAAS,OAAO;AAAA,gBAChB,QAAQ;AAAA,gBACR,OAAO,UAAU;AAAA,gBACjB,WAAW,UAAU;AAAA,gBACrB,aAAa,UAAU;AAAA,gBACvB,WAAW,UAAU;AAAA,gBACrB,MAAM,KAAK,UAAU,eAAe,IAAI;AAAA,gBACxC,aAAa;AAAA,cACjB,CAAC;AAAA,YACL,CAAC;AAAA,UACL,CAAC;AAAA,QACL,CAAC,EACA,MAAM,CAAC,UAAU;AACd,iBAAO;AAAA,YACH,SAAS,OAAO;AAAA,YAChB,QAAQ;AAAA,YACR,OAAO,MAAM;AAAA,UACjB,CAAC;AAAA,QACL,CAAC;AAAA,MACT,CAAC;AAAA,IACL;AA7VI,SAAK,YAAY,IAAI,UAAU;AAAA,EACnC;AAAA,EAEA,MAAM,SAAS,KAAmD;AAC9D,QAAI;AACA,YAAM,UAAU;AAAA,QACZ,cACI;AAAA,QACJ,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,oBAAoB;AAAA,QACpB,QAAQ;AAAA,MACZ;AAEA,YAAM,OAAO,IAAI,gBAAgB,EAAE,cAAc,KAAK,SAAS,OAAO,CAAC;AAEvE,YAAM,WAA0B,MAAM,MAAM;AAAA,QACxC;AAAA,QACA;AAAA,QACA,EAAE,QAAQ;AAAA,MACd;AAEA,YAAM,IAAY,aAAK,SAAS,IAAI;AACpC,YAAM,WAAW,EAAE,cAAc,EAAE,KAAK,KAAK;AAC7C,YAAM,WAAW,EAAE,KAAK,EAAE,KAAK,KAAK;AAEpC,UAAI,CAAC,YAAY,CAAC,UAAU;AACxB,cAAM,IAAI,MAAM,0CAA0C;AAAA,MAC9D;AAEA,aAAO;AAAA,QACH,SAAS,OAAO;AAAA,QAChB,QAAQ;AAAA,QACR,QAAQ;AAAA,UACJ,WAAW,YAAY;AAAA,UACvB,UAAU,YAAY;AAAA,QAC1B;AAAA,MACJ;AAAA,IACJ,SAAS,OAAO;AACZ,aAAO;AAAA,QACH,SAAS,OAAO;AAAA,QAChB,QAAQ;AAAA,QACR,KAAK,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAClD;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,iBAAiB,KAAiD;AACpE,QAAI;AACA,YAAM,UAAU;AAAA,QACZ,aACI;AAAA,QACJ,cACI;AAAA,MACR;AAEA,YAAM,OAAO,IAAI,gBAAgB;AAAA,QAC7B,IAAI;AAAA,QACJ,QAAQ;AAAA,QACR,IAAI;AAAA,MACR,CAAC;AAED,YAAM,WAA0B,MAAM,MAAM;AAAA,QACxC;AAAA,QACA;AAAA,QACA;AAAA,UACI;AAAA,QACJ;AAAA,MACJ;AAEA,YAAM,IAAY,aAAK,SAAS,IAAI;AACpC,YAAM,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK;AAC1C,YAAM,QAAQ,EAAE,uBAAuB,EAAE,KAAK,MAAM;AACpD,YAAM,QAAQ,EAAE,mCAAmC,EAAE,KAAK,MAAM;AAEhE,UAAI,CAAC,SAAS,CAAC,OAAO;AAClB,cAAM,IAAI,MAAM,iDAAiD;AAAA,MACrE;AAEA,aAAO;AAAA,QACH,SAAS,OAAO;AAAA,QAChB,QAAQ;AAAA,QACR,QAAQ;AAAA,UACJ;AAAA,UACA,OAAO,SAAS;AAAA,UAChB,OAAO,SAAS;AAAA,QACpB;AAAA,MACJ;AAAA,IACJ,SAAS,OAAO;AACZ,aAAO;AAAA,QACH,SAAS,OAAO;AAAA,QAChB,QAAQ;AAAA,QACR,KAAK,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAClD;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,QAAQ,UAAgE;AAC1E,UAAM,UAAU;AAAA,MACZ;AAAA,IACJ;AACA,UAAM,UAAU;AAAA,MACZ,cACI;AAAA,MACJ,QAAQ;AAAA,MACR,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,UAAU;AAAA,MACV,aACI;AAAA,MACJ,oBAAoB;AAAA,MACpB,sBAAsB;AAAA,MACtB,kBAAkB;AAAA,MAClB,kBAAkB;AAAA,MAClB,kBAAkB;AAAA,MAClB,SAAS;AAAA,MACT,mBAAmB;AAAA,IACvB;AACA,QAAI;AACA,YAAM,WAA0B,MAAM,MAAM;AAAA,QACxC;AAAA,QACA;AAAA,QACA,EAAE,QAAQ;AAAA,MACd;AAEA,YAAM,OAA6B,SAAS;AAC5C,YAAM,UAAU,KAAK,QAAQ,IAAI,CAAC,UAAqB,MAAM,MAAM;AAEnE,aAAO;AAAA,QACH,SAAS,OAAO;AAAA,QAChB,QAAQ;AAAA,QACR,QAAQ;AAAA,UACJ,WAAW,KAAK;AAAA,UAChB,OAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ,SAAS,OAAO;AACZ,aAAO;AAAA,QACH,SAAS,OAAO;AAAA,QAChB,QAAQ;AAAA,QACR,KAAK,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAClD;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,UAAU,KAAyD;AACrE,QAAI;AACA,YAAM,SAAS,IAAI,gBAAgB;AAAA,QAC/B;AAAA,QACA,KAAK;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,MACT,CAAC;AAED,YAAM,UAAU;AAAA,QACZ,cACI;AAAA,MACR;AAEA,YAAM,WAAkD,MAAM,MAAM;AAAA,QAChE;AAAA,QACA;AAAA,QACA,EAAE,QAAQ;AAAA,MACd;AAEA,YAAM,gBAAgB,SAAS,KAAK,MAC/B;AAAA,QAAI,CAAC,SACF,KAAK,WAAW,eACV,EAAE,MAAM,SAAkB,KAAK,KAAK,aAAa,GAAG,IACpD,KAAK,WAAW,eACZ,EAAE,MAAM,SAAkB,KAAK,KAAK,gBAAgB,GAAG,IACvD;AAAA,MACd,EACC,OAAO,CAAC,SAAgE,SAAS,IAAI;AAE1F,aAAO;AAAA,QACH,SAAS,OAAO;AAAA,QAChB,QAAQ;AAAA,QACR,QAAQ;AAAA,MACZ;AAAA,IACJ,SAAS,OAAO;AACZ,aAAO;AAAA,QACH,SAAS,OAAO;AAAA,QAChB,QAAQ;AAAA,QACR,KAAK,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAClD;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,kBAAkB,KAAkD;AACtE,QAAI;AACA,YAAM,SAAS,GAAG,UAAU;AAAA,QACxB;AAAA,QACA,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,MAAM;AAAA,MACV,CAAC;AAED,YAAM,UAAU;AAAA,QACZ,cACI;AAAA,MACR;AAEA,YAAM,WAA0B,MAAM,MAAM;AAAA,QACxC;AAAA,QACA;AAAA,QACA,EAAE,QAAQ;AAAA,MACd;AAEA,YAAM,IAAY,aAAK,SAAS,KAAK,MAAM;AAC3C,YAAM,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK;AAC1C,YAAM,gBAAgB;AAAA,QAClB,QAAQ,EAAE,yBAAyB,EAAE,KAAK,MAAM,KAAK;AAAA,QACrD,QAAQ,EAAE,yBAAyB,EAAE,KAAK,MAAM,KAAK;AAAA,QACrD,SAAS,EAAE,0BAA0B,EAAE,KAAK,MAAM,KAAK;AAAA,MAC3D;AACA,YAAM,eAAe,EAAE,sBAAsB,EAAE,KAAK,KAAK;AAEzD,YAAM,oBAAoB,EAAE,gBAAgB;AAC5C,YAAM,WAAW,kBAAkB,KAAK,MAAM;AAE9C,UAAI,CAAC,SAAU,OAAM,IAAI,MAAM,gCAAgC;AAE/D,YAAM,uBAAuB,SAAS;AAAA,QAClC;AAAA,MACJ;AAEA,UAAI,CAAC;AACD,cAAM,IAAI,MAAM,iCAAiC;AAErD,YAAM,kBAAkB,qBAAqB,CAAC;AAE9C,YAAM,cAA6B,MAAM,MAAM;AAAA,QAC3C,wDAAwD,eAAe;AAAA,MAC3E;AAEA,aAAO;AAAA,QACH,SAAS,OAAO;AAAA,QAChB,QAAQ;AAAA,QACR,QAAQ;AAAA,UACJ;AAAA,UACA,WAAW,gBAAgB;AAAA,UAC3B;AAAA,UACA,gBAAgB,wBAAwB,YAAY,KAAK,OAAO,YAAY;AAAA,QAChF;AAAA,MACJ;AAAA,IACJ,SAAS,OAAO;AACZ,aAAO;AAAA,QACH,SAAS,OAAO;AAAA,QAChB,QAAQ;AAAA,QACR,KAAK,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAClD;AAAA,IACJ;AAAA,EACJ;AAAA,EAmGA,MAAM,oBAAoB,KAAoD;AAC1E,QAAI;AACA,YAAM,YAAY,KAAK,UAAU,2BAA2B;AAC5D,YAAM,SAAS,KAAK,UAAU,wBAAwB,WAAW,GAAG;AAEpE,YAAM,UAAU;AAAA,QACZ,MAAM;AAAA,MACV;AAEA,YAAM,UAAU;AAAA,QACZ,cACI;AAAA,QACJ,YAAY;AAAA,QACZ,eAAe;AAAA,QACf,QAAQ;AAAA,QACR,mBAAmB;AAAA,QACnB,gBAAgB;AAAA,QAChB,UAAU;AAAA,QACV,aACI;AAAA,QACJ,oBAAoB;AAAA,QACpB,sBAAsB;AAAA,QACtB,kBAAkB;AAAA,QAClB,kBAAkB;AAAA,QAClB,kBAAkB;AAAA,QAClB,SAAS;AAAA,QACT,mBAAmB;AAAA,MACvB;AAEA,YAAM,WAA8C,MAAM,MAAM;AAAA,QAC5D;AAAA,QACA;AAAA,QACA,EAAE,QAAQ;AAAA,MACd;AACA,YAAM,OAAO,SAAS;AAEtB,YAAM,aAAa,KAAK,OAAO;AAAA,QAC3B,CAAC,UAAwB,MAAM,eAAe;AAAA,MAClD;AACA,YAAM,aAAa,KAAK,OAAO;AAAA,QAC3B,CAAC,UAAwB,MAAM,eAAe;AAAA,MAClD;AAEA,YAAM,gBAAwC,CAAC;AAC/C,UAAI,cAAc,WAAW,SAAS;AAClC,mBAAW,QAAQ,QAAQ,CAAC,WAA0B;AAClD,gBAAM,aAAa,GAAG,OAAO,OAAO;AACpC,wBAAc,UAAU,IAAI,OAAO;AAAA,QACvC,CAAC;AAAA,MACL;AAEA,aAAO;AAAA,QACH,SAAS,OAAO;AAAA,QAChB,QAAQ;AAAA,QACR,QAAQ;AAAA,UACJ,OAAO,KAAK;AAAA,UACZ,YAAW,yCAAY,gBAAe;AAAA,UACtC;AAAA,UACA,QAAO,yCAAY,iBAAgB;AAAA,UACnC,QAAO,yCAAY,iBAAgB;AAAA,UACnC,UAAS,yCAAY,YAAW,CAAC;AAAA,QACrC;AAAA,MACJ;AAAA,IACJ,SAAS,OAAO;AACZ,aAAO;AAAA,QACH,SAAS,OAAO;AAAA,QAChB,QAAQ;AAAA,QACR,KAAK,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAClD;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,gBAAgB,KAAwD;AA7elF;AA8eQ,QAAI;AACA,YAAM,WAA0B,MAAM,MAAM,IAAI,KAAK;AAAA,QACjD,SAAS;AAAA,UACL,cACI;AAAA,UACJ,SAAS;AAAA,UACT,mBAAmB;AAAA,QACvB;AAAA,MACJ,CAAC;AAED,YAAM,IAAY,aAAK,SAAS,IAAI;AACpC,YAAM,WAAW,EAAE,sBAAsB,EAAE,KAAK,KAAK,KAAK;AAC1D,YAAM,aAAW,OAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,EAAE,CAAC,MAAnC,mBAAsC,MAAM,MAAM,OAAM;AACzE,YAAM,eAAe,EAAE,WAAW,EAAE,KAAK,MAAM;AAC/C,YAAM,WAAW,eACX,eAAe,QAAQ,KAAK,MAAM,KAAK,OAAO,KAAK,KAAK,KAAK,KAAK,EAAE,IACpE;AAEN,aAAO;AAAA,QACH,SAAS,OAAO;AAAA,QAChB,QAAQ;AAAA,QACR,QAAQ,EAAE,UAAU,UAAU,SAAS;AAAA,MAC3C;AAAA,IACJ,SAAS,OAAO;AACZ,aAAO;AAAA,QACH,SAAS,OAAO;AAAA,QAChB,QAAQ;AAAA,QACR,KAAK,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAClD;AAAA,IACJ;AAAA,EACJ;AACJ;;;AE7gBA,OAAOC,YAA8B;AACrC,YAAYC,cAAa;AAezB,OAAO,UAAU;AAcjB,IAAqB,SAArB,MAA4B;AAAA,EAA5B;AA6FI,kBAAS,CAAC,SAAqD;AAC3D,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACpC,cAAM,UAAwB;AAAA,UAC1B,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,QAAQ;AAAA,QACZ;AAEA,cAAM,WAAW;AAAA,UACb,aACI;AAAA,UACJ,cACI;AAAA,UACJ,QACI;AAAA,QACR;AAEA,QAAAD,OAAM,+CAA+C;AAAA,UACjD,QAAQ;AAAA,UACR,MAAM,IAAI,gBAAgB,OAAO,QAAQ,OAAO,CAAC;AAAA,UACjD,SAAS;AAAA,QACb,CAAC,EACI,KAAK,CAAC,EAAE,KAAK,MAAM;AAChB,gBAAM,IAAI,KAAK;AACf,gBAAM,KAAK,EAAE,KAAK,MAAM,KAAK,OAAO,IAAI,EAAE,MAAM,CAAC,EAAE;AACnD,gBAAM,MAAM,qCAAqC;AAEjD,gBAAM,SAAuB;AAAA,YACzB,SAAS,4BAA4B;AAAA,YACrC,QAAQ;AAAA,YACR,IAAI;AAAA,YACJ,QAAQ;AAAA,UACZ;AAGA,UAAAA,OAAM,kDAAkD;AAAA,YACpD,QAAQ;AAAA,YACR,MAAM,IAAI,gBAAgB;AAAA,cACtB,KAAK,4BAA4B;AAAA,cACjC,QAAQ;AAAA,cACR,MAAM;AAAA,YACV,CAAC;AAAA,YACD,SAAS;AAAA,UACb,CAAC,EAAE,KAAK,CAAC,EAAE,MAAAE,MAAK,MAAM;AAClB,kBAAM,IAAY,cAAKA,MAAK,MAAM;AAClC,kBAAM,MAAM,EAAE,+BAA+B,EAAE,KAAK,KAAK;AAEzD,YAAAF,OAAM,+CAA+C;AAAA,cACjD,QAAQ;AAAA,cACR,MAAM,IAAI,gBAAgB,OAAO,QAAQ,MAAM,CAAC;AAAA,cAChD,SAAS;AAAA,YACb,CAAC,EAAE,KAAK,CAAC,EAAE,MAAAE,MAAK,MAAM;AAClB,oBAAM,gBAA+B;AAAA,gBACjC,KAAKA,MAAK;AAAA,gBACV,GAAGA,MAAK,MAAM,IAAI,OAAO;AAAA,cAC7B;AAEA,oBAAM,OAAOA,MAAK,MAAM,IAAI,OAAO;AAEnC,cAAAF,OAAM,gDAAgD;AAAA,gBAClD,QAAQ;AAAA,gBACR,MAAM,IAAI,gBAAgB,OAAO,QAAQ,aAAa,CAAC;AAAA,gBACvD,SAAS;AAAA,cACb,CAAC,EACI,KAAK,CAAC,aAAa;AAChB,wBAAQ;AAAA,kBACJ,SAAS,OAAO;AAAA,kBAChB,QAAQ;AAAA,kBACR,QAAQ;AAAA,oBACJ,QAAQ,SAAS,KAAK;AAAA,oBACtB,OAAO,SAAS,KAAK;AAAA,oBACrB,OAAO,SAAS,KAAK;AAAA,oBACrB,OAAO,OAAO;AAAA,oBACd,UAAU;AAAA,oBACV,MAAM,SAAS,KAAK;AAAA,kBACxB;AAAA,gBACJ,CAAC;AAAA,cACL,CAAC,EACA,MAAM,MAAM;AAAA,YACrB,CAAC;AAAA,UACL,CAAC;AAAA,QACL,CAAC,EACA,MAAM,MAAM;AAAA,MACrB,CAAC;AAAA,IACL;AAEA,qBAAY,CACR,OACA,OAAe,QAC2B;AAC1C,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACpC,QAAAA,OACK;AAAA,UACG,sDAAsD,IAAI,MAAM,KAAK;AAAA,QACzE,EACC,KAAK,CAAC,EAAE,KAAK,MAAM;AAChB,gBAAM,IAAY,cAAK,IAAI;AAC3B,gBAAM,QAA2B,CAAC;AAElC,YAAE,eAAe,EAAE,KAAK,SAAU,GAAG,GAAG;AACpC,kBAAM,YAAY,EAAE,CAAC,EAAE,KAAK,UAAU,EAAE,KAAK,OAAO;AACpD,kBAAM,WAAW,EAAE,CAAC,EAAE,KAAK,2BAA2B,EAAE,KAAK;AAC7D,kBAAM,WAAW,EAAE,CAAC,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM;AAC3C,kBAAM,SAAS,EAAE,CAAC,EAAE,KAAK,eAAe,EAAE,KAAK,KAAK;AACpD,kBAAM,UAAU,EAAE,CAAC,EACd,KAAK,+BAA+B,EACpC,KAAK,QAAQ;AAClB,kBAAM,UAAU,EAAE,CAAC,EACd,KAAK,+BAA+B,EACpC,KAAK,QAAQ;AAElB,gBAAI,aAAa,UAAU;AACvB,oBAAM,KAAK;AAAA,gBACP,OAAO,UAAU,KAAK;AAAA,gBACtB,OAAM,qCAAU,WAAU;AAAA,gBAC1B,QAAQ,oCAAoC;AAAA,gBAC5C,OAAO,CAAC,UAAU,IAAI,WAAW,IAAI,WAAW,EAAE;AAAA,cACtD,CAAC;AAAA,YACL;AAAA,UACJ,CAAC;AAED,kBAAQ,EAAE,SAAS,OAAO,SAAS,QAAQ,KAAK,QAAQ,MAAM,CAAC;AAAA,QACnE,CAAC,EACA,MAAM,CAAC,UAAU;AACd,iBAAO,KAAK;AAAA,QAChB,CAAC;AAAA,MACT,CAAC;AAAA,IACL;AAEA,qBAAY,CAAC,UAA2D;AACpE,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACpC,QAAAA,OACK;AAAA,UACG,oDAAoD,KAAK;AAAA,QAC7D,EACC,KAAK,CAAC,QAAQ;AACX,gBAAM,IAAY,cAAK,IAAI,IAAI;AAC/B,gBAAM,QAA2B,CAAC;AAElC,YAAE,8CAA8C,EAAE,KAAK,SACnD,GACA,GACF;AACE,kBAAM,UAAU,EAAE,CAAC,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK;AAC3C,kBAAM,OAAO,EAAE,CAAC,EAAE,KAAK,MAAM;AAC7B,kBAAM,UAAU,EAAE,CAAC,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU;AAChD,kBAAM,MAAM,EAAE,CAAC,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK;AAEvC,gBAAI,WAAW,MAAM;AACjB,oBAAM,KAAK;AAAA,gBACP,OAAO;AAAA,gBACP,QAAQ;AAAA,gBACR,OAAO,WAAW,OAAO;AAAA,cAC7B,CAAC;AAAA,YACL;AAAA,UACJ,CAAC;AAED,kBAAQ,EAAE,SAAS,OAAO,SAAS,QAAQ,KAAK,QAAQ,MAAM,CAAC;AAAA,QACnE,CAAC,EACA,MAAM,MAAM;AAAA,MACrB,CAAC;AAAA,IACL;AAAA;AAAA,EA7PA,MAAM,YACF,OACA,OAAe,GAC0B;AACzC,QAAI;AACA,YAAM,WAA0B,MAAMA,OAAM;AAAA,QACxC,mCAAmC,KAAK,SAAS,IAAI;AAAA,QACrD;AAAA,UACI,SAAS;AAAA,YACL,cACI;AAAA,YACJ,SAAS;AAAA,YACT,mBAAmB;AAAA,UACvB;AAAA,QACJ;AAAA,MACJ;AACA,YAAM,IAAY,cAAK,SAAS,IAAI;AACpC,YAAM,UAA+B,CAAC;AAEtC,QAAE,UAAU,EAAE,KAAK,WAAY;AAC3B,cAAM,QAAQ,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,KAAK;AACrC,cAAM,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,CAAC;AACnD,cAAM,OAAO,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM;AAE1C,YAAI,QAAQ,UAAU;AAClB,kBAAQ,KAAK;AAAA,YACT;AAAA,YACA,MAAM,SAAS,QAAQ,KAAK,EAAE;AAAA,YAC9B;AAAA,UACJ,CAAC;AAAA,QACL;AAAA,MACJ,CAAC;AAED,aAAO;AAAA,QACH,SAAS,OAAO;AAAA,QAChB,QAAQ;AAAA,QACR,QAAQ;AAAA,MACZ;AAAA,IACJ,SAAS,OAAO;AACZ,aAAO;AAAA,QACH,SAAS,OAAO;AAAA,QAChB,QAAQ;AAAA,QACR,KAAK,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAClD;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,SAAS,OAAuD;AA9E1E;AA+EQ,QAAI;AACA,YAAM,UAAU;AAAA,QACZ,QAAQ;AAAA,QACR,mBAAmB;AAAA,QACnB,UAAU;AAAA,QACV,aACI;AAAA,QACJ,oBAAoB;AAAA,QACpB,sBAAsB;AAAA,QACtB,kBAAkB;AAAA,QAClB,kBAAkB;AAAA,QAClB,kBAAkB;AAAA,MACtB;AACA,YAAM,WAA0B,MAAMA,OAAM;AAAA,QACxC,wDAAwD,mBAAmB,KAAK,CAAC;AAAA,QACjF,EAAE,QAAQ;AAAA,MACd;AAEA,YAAM,OAAO,SAAS;AACtB,YAAM,WAAS,kCAAM,SAAN,mBAAY,UAAS,CAAC;AACrC,YAAM,UAA4B,OAAO,IAAI,CAAC,UAIvC;AAAA,QACH,OAAO,KAAK;AAAA,QACZ,WAAW,KAAK;AAAA,QAChB,KAAK,KAAK;AAAA,MACd,EAAE;AAEF,aAAO;AAAA,QACH,SAAS,OAAO;AAAA,QAChB,QAAQ;AAAA,QACR,QAAQ;AAAA,MACZ;AAAA,IACJ,SAAS,OAAO;AACZ,aAAO;AAAA,QACH,SAAS,OAAO;AAAA,QAChB,QAAQ;AAAA,QACR,KAAK,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAClD;AAAA,IACJ;AAAA,EACJ;AAoKJ;;;AC7RA,OAAOG,YAA8B;AACrC,OAAO,cAAc;AAErB,OAAO,UAAU;AAEjB,IAAqB,QAArB,MAA2B;AAAA,EAA3B;AACI,yBAAgB,CAAC,WAAmB;AAChC,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACpC,cAAM,OAAO,IAAI,SAAS;AAC1B,aAAK,OAAO,QAAQ,UAAU;AAC9B,aAAK,OAAO,uBAAuB,QAAQ,MAAM;AACjD,QAAAA,OAAM,KAAK,+DAA+D,MAAM;AAAA,UAC5E,SAAS;AAAA,YACL,GAAG,KAAK,WAAW;AAAA,YACnB,iBAAiB;AAAA,YACjB,gBAAgB;AAAA,YAChB,kBAAkB;AAAA,YAClB,WAAW;AAAA,UACf;AAAA,QACJ,CAAC,EAAE,KAAK,CAAC,sBAAqC;AAC1C,cAAI,kBAAkB,KAAK,SAAS,KAAQ;AACxC,mBAAO;AAAA,cACH,SAAS,OAAO;AAAA,cAChB,QAAQ;AAAA,cACR,OAAO,wBAAwB,kBAAkB,KAAK,QAAQ,EAAE;AAAA,YACpE,CAAC;AACD;AAAA,UACJ;AACA,gBAAM,QAAQ,kBAAkB,KAAK,OAAO;AAC5C,gBAAM,iBAAiB,MAAM;AACzB,YAAAA,OAAM,IAAI,wDAAwD,KAAK,IAAI;AAAA,cACvE,SAAS;AAAA,gBACL,iBAAiB;AAAA,gBACjB,gBAAgB;AAAA,gBAChB,kBAAkB;AAAA,gBAClB,WAAW;AAAA,cACf;AAAA,YACJ,CAAC,EAAE,KAAK,CAAC,gBAA+B;AACpC,kBAAI,YAAY,KAAK,SAAS,KAAQ;AAClC,wBAAQ;AAAA,kBACJ,SAAS,OAAO;AAAA,kBAChB,QAAQ;AAAA,kBACR,QAAQ;AAAA,oBACJ,QAAQ;AAAA,oBACR,WAAW,YAAY,KAAK,OAAO,OAAO,CAAC;AAAA,kBAC/C;AAAA,gBACJ,CAAC;AAAA,cACL,WAAW,YAAY,KAAK,SAAS,QAAQ;AACzC,2BAAW,gBAAgB,GAAI;AAAA,cACnC,OAAO;AACH,uBAAO;AAAA,kBACH,SAAS,OAAO;AAAA,kBAChB,QAAQ;AAAA,kBACR,OAAO,eAAe,YAAY,KAAK,QAAQ,EAAE;AAAA,gBACrD,CAAC;AAAA,cACL;AAAA,YACJ,CAAC,EAAE,MAAM,CAAC,UAAU;AAChB,qBAAO;AAAA,gBACH,SAAS,OAAO;AAAA,gBAChB,QAAQ;AAAA,gBACR,OAAO,MAAM;AAAA,cACjB,CAAC;AAAA,YACL,CAAC;AAAA,UACL;AAEA,yBAAe;AAAA,QACnB,CAAC,EAAE,MAAM,CAAC,UAAU;AAChB,iBAAO;AAAA,YACH,SAAS,OAAO;AAAA,YAChB,QAAQ;AAAA,YACR,OAAO,MAAM;AAAA,UACjB,CAAC;AAAA,QACL,CAAC;AAAA,MACL,CAAC;AAAA,IACL;AAEA,uBAAc,CAAC,WAAmB;AAC9B,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACpC,cAAM,OAAO,IAAI,SAAS;AAC1B,aAAK,OAAO,gBAAgB,QAAQ,WAAW;AAC/C,aAAK,OAAO,WAAW,YAAY;AACnC,aAAK,OAAO,YAAY,EAAE;AAE1B,QAAAA,OAAM,KAAK,mCAAmC,MAAM;AAAA,UAChD,SAAS;AAAA,YACL,GAAG,KAAK,WAAW;AAAA,UACvB;AAAA,QACJ,CAAC,EACI,KAAK,CAAC,aAA4B;AAC/B,kBAAQ;AAAA,YACJ,SAAS,OAAO;AAAA,YAChB,QAAQ;AAAA,YACR,QAAQ,SAAS;AAAA,UACrB,CAAC;AAAA,QACL,CAAC,EACA,MAAM,CAAC,UAAU;AACd,iBAAO;AAAA,YACH,SAAS,OAAO;AAAA,YAChB,QAAQ;AAAA,YACR,OAAO,MAAM;AAAA,UACjB,CAAC;AAAA,QACL,CAAC;AAAA,MACT,CAAC;AAAA,IACL;AAAA;AACJ;;;ACpGA,IAAM,aAAa,IAAI,WAAW;AAClC,IAAM,SAAS,IAAI,OAAO;AAC1B,IAAM,QAAQ,IAAI,MAAM;AACxB,IAAO,gBAAQ;AAAA,EACX;AAAA,EACA;AAAA,EACA;AACJ;","names":["response","axios","cheerio","data","axios"]}
|