descargas-modapk.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import axios from 'axios';
  2. import cheerio from 'cheerio';
  3. //import {search, download} from 'aptoide-scraper';
  4. const handler = async (m, {conn, usedPrefix, command, text}) => {
  5. const apkpureApi = 'https://apkpure.com/api/v2/search?q=';
  6. const apkpureDownloadApi = 'https://apkpure.com/api/v2/download?id=';
  7. if (!text) throw `โš ๏ธ *๐™€๐™จ๐™˜๐™ง๐™ž๐™—๐™– ๐™š๐™ก ๐™ฃ๐™ค๐™ข๐™—๐™ง๐™š ๐™™๐™š๐™ก ๐˜ผ๐™‹๐™†*`
  8. m.react("โŒ›")
  9. try {
  10. const res = await fetch(`https://api.dorratz.com/v2/apk-dl?text=${text}`);
  11. const data = await res.json();
  12. const response = `โ‰ช๏ผค๏ผฅ๏ผณ๏ผฃ๏ผก๏ผฒ๏ผง๏ผก๏ผค๏ผฏ ๏ผก๏ผฐ๏ผซ๏ผณ๐Ÿš€โ‰ซ
  13. โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ€ข
  14. โ”ƒ๐Ÿ’ซ ๐™‰๐™Š๐™ˆ๐˜ฝ๐™๐™€: ${data.name}
  15. โ”ƒ๐Ÿ“ฆ ๐™‹๐˜ผ๐˜พ๐™†๐˜ผ๐™‚๐™€: ${data.package}
  16. โ”ƒ๐Ÿ•’ ๐™๐™‡๐™๐™„๐™ˆ๐˜ผ ๐˜ผ๐˜พ๐™๐™๐™‡๐™„๐™•๐˜ผ๐˜พ๐™„๐™Š๐™‰: ${data.lastUpdate}
  17. โ”ƒ๐Ÿ’ช ๐™‹๐™€๐™Ž๐™Š: ${data.size}
  18. โ”—โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ€ข
  19. > *โณ แดฑหขแต–แต‰สณแต‰ แต˜โฟ แตแต’แตแต‰โฟแต—แต’ หขแต˜หข แตƒแต–แต หขแต‰ แต‰หขแต—แตƒ แต‰โฟแต›แถฆแตƒโฟแตˆแต’...*`;
  20. await conn.sendFile(m.chat, data.icon, 'error.jpg', response, m, null, fake);
  21. const apkSize = data.size.toLowerCase();
  22. if (apkSize.includes('gb') || (apkSize.includes('mb') && parseFloat(apkSize) > 999)) {
  23. return await m.reply('*๐™€๐™ก ๐™–๐™ฅ๐™  ๐™š๐™จ ๐™ข๐™ช๐™ฎ ๐™ฅ๐™š๐™จ๐™–๐™™๐™ค.*');
  24. }
  25. await conn.sendMessage(m.chat, {document: { url: data.dllink }, mimetype: 'application/vnd.android.package-archive', fileName: `${data.name}.apk`, caption: null }, { quoted: m });
  26. await m.react("โœ…");
  27. } catch {
  28. try {
  29. const res = await fetch(`${apis}/download/apk?query=${text}`);
  30. const data = await res.json();
  31. const apkData = data.data;
  32. const response = `โ‰ช๏ผค๏ผฅ๏ผณ๏ผฃ๏ผก๏ผฒ๏ผง๏ผก๏ผค๏ผฏ ๏ผก๏ผฐ๏ผซ๏ผณ๐Ÿš€โ‰ซ
  33. โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ€ข
  34. โ”ƒ๐Ÿ’ซ ๐™‰๐™Š๐™ˆ๐˜ฝ๐™๐™€: ${apkData.name}
  35. โ”ƒ๐Ÿ‘ค ๐˜ฟ๐™€๐™Ž๐˜ผ๐™๐™๐™Š๐™‡๐™‡๐™Š: ${apkData.developer}
  36. โ”ƒ๐Ÿ•’ ๐™๐™‡๐™๐™„๐™ˆ๐˜ผ ๐˜ผ๐˜พ๐™๐™๐™‡๐™„๐™•๐˜ผ๐˜พ๐™„๐™Š๐™‰: ${apkData.publish}
  37. โ”ƒ๐Ÿ’ช ๐™‹๐™€๐™Ž๐™Š: ${apkData.size}
  38. โ”—โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ€ข
  39. > *โณ แดฑหขแต–แต‰สณแต‰ แต˜โฟ แตแต’แตแต‰โฟแต—แต’ หขแต˜หข แตƒแต–แต หขแต‰ แต‰หขแต—แตƒ แต‰โฟแต›แถฆแตƒโฟแตˆแต’...*`
  40. await conn.sendFile(m.chat, apkData.image, 'error,jpg', response, m, null, fake);
  41. if (apkData.size.includes('GB') || parseFloat(apkData.size.replace(' MB', '')) > 999) {
  42. return await m.reply('*๐™€๐™ก ๐™–๐™ฅ๐™  ๐™š๐™จ ๐™ข๐™ช๐™ฎ ๐™ฅ๐™š๐™จ๐™–๐™™๐™ค.*')
  43. }
  44. await conn.sendMessage(m.chat, {document: { url: apkData.download }, mimetype: 'application/vnd.android.package-archive', fileName: `${apkData.name}.apk`, caption: null }, { quoted: m });
  45. await m.react("โœ…")
  46. } catch {
  47. try {
  48. const searchA = await search(text);
  49. const data5 = await download(searchA[0].id);
  50. let response = `โ‰ช๏ผค๏ผฅ๏ผณ๏ผฃ๏ผก๏ผฒ๏ผง๏ผก๏ผค๏ผฏ ๏ผก๏ผฐ๏ผซ๏ผณ๐Ÿš€โ‰ซ
  51. โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ€ข
  52. โ”ƒ๐Ÿ’ซ ๐™‰๐™Š๐™ˆ๐˜ฝ๐™๐™€: ${data5.name}
  53. โ”ƒ๐Ÿ“ฆ ๐™‹๐˜ผ๐˜พ๐™†๐˜ผ๐™‚๐™€: ${data5.package}
  54. โ”ƒ๐Ÿ•’ ๐™๐™‡๐™๐™„๐™ˆ๐˜ผ ๐˜ผ๐˜พ๐™๐™๐™‡๐™„๐™•๐˜ผ๐˜พ๐™„๐™Š๐™‰: ${data5.lastup}
  55. โ”ƒ๐Ÿ’ช ๐™‹๐™€๐™Ž๐™Š: ${data5.size}
  56. โ”—โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ€ข
  57. > *โณ แดฑหขแต–แต‰สณแต‰ แต˜โฟ แตแต’แตแต‰โฟแต—แต’ หขแต˜หข แตƒแต–แต หขแต‰ แต‰หขแต—แตƒ แต‰โฟแต›แถฆแตƒโฟแตˆแต’...*`
  58. await conn.sendFile(m.chat, data5.icon, 'akp.jpg', response, m, false, fake)
  59. //conn.sendMessage(m.chat, {image: {url: data5.icon}, caption: response}, {quoted: m});
  60. if (data5.size.includes('GB') || data5.size.replace(' MB', '') > 999) {
  61. return await m.reply('*๐™€๐™ก ๐™–๐™ฅ๐™  ๐™š๐™จ ๐™ข๐™ช๐™ฎ ๐™ฅ๐™š๐™จ๐™–๐™™๐™ค.*')}
  62. await conn.sendMessage(m.chat, {document: {url: data5.dllink}, mimetype: 'application/vnd.android.package-archive', fileName: data5.name + '.apk', caption: null}, {quoted: m});
  63. m.react("โœ…")
  64. } catch (e) {
  65. m.react(`โŒ`)
  66. console.log(e)
  67. handler.limit = false
  68. }}}}
  69. handler.help = ['apk', 'apkmod'];
  70. handler.tags = ['downloader'];
  71. handler.command = /^(apkmod|apk|modapk|dapk2|aptoide|aptoidedl)$/i;
  72. handler.register = true
  73. handler.limit = 2
  74. export default handler;
  75. async function searchApk(text) {
  76. const response = await axios.get(`${apkpureApi}${encodeURIComponent(text)}`);
  77. const data = response.data;
  78. return data.results;
  79. }
  80. async function downloadApk(id) {
  81. const response = await axios.get(`${apkpureDownloadApi}${id}`);
  82. const data = response.data;
  83. return data;
  84. }