├── temp └── Haiii ├── session └── tempatsesi ├── .gitignore ├── assets ├── header.jpg └── thumb.jpg ├── Procfile ├── lib ├── data.json ├── color.js ├── fb2.js ├── tiktok.js ├── yt.js ├── igpost.js ├── scrape.js └── function.js ├── database.json ├── app.js ├── package.json ├── README.md ├── index.js └── message ├── ind.js └── ichi.js /temp/Haiii: -------------------------------------------------------------------------------- 1 | >///< 2 | -------------------------------------------------------------------------------- /session/tempatsesi: -------------------------------------------------------------------------------- 1 | :) 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | package-lock.json 3 | ichi.json 4 | -------------------------------------------------------------------------------- /assets/header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ichizza/Chizza-md/HEAD/assets/header.jpg -------------------------------------------------------------------------------- /assets/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ichizza/Chizza-md/HEAD/assets/thumb.jpg -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | worker: npm i && npm i pm2 -g && npm install typescript typedoc -g && pm2 install ffmpeg && pm2 start index.js && pm2 logs 2 | -------------------------------------------------------------------------------- /lib/data.json: -------------------------------------------------------------------------------- 1 | {"csrf": "Use Your Own Instagram Cookie", "ds": "Use Your Own Instagram Cookie", "session": "Use Your Own Instagram Cookie"} -------------------------------------------------------------------------------- /lib/color.js: -------------------------------------------------------------------------------- 1 | const chalk = require('chalk') 2 | 3 | module.exports = color = (text, color) => { 4 | return !color ? chalk.green(text) : chalk.keyword(color)(text) 5 | } -------------------------------------------------------------------------------- /database.json: -------------------------------------------------------------------------------- 1 | { 2 | "ownerNumber": ["6285755495437@s.whatsapp.net"], 3 | "ownerNumberg": ["6285755495437"], 4 | "stickerInfo": { 5 | "author": "6285895618295", 6 | "pack": "Ichizza" 7 | } 8 | } -------------------------------------------------------------------------------- /lib/fb2.js: -------------------------------------------------------------------------------- 1 | const axios = require("axios") 2 | 3 | exports.fb2 = async(url) => { 4 | const {data} = await axios('https://ssyoutube.com/api/convert', {method: "POST", data: `url=${url}`}) 5 | return data 6 | } 7 | -------------------------------------------------------------------------------- /lib/tiktok.js: -------------------------------------------------------------------------------- 1 | const axios = require("axios") 2 | const cheerio = require("cheerio") 3 | 4 | exports.tiktok = async(url)=> { 5 | 6 | try { 7 | const {data: gts} = await axios.get("https://tikdown.org/id") 8 | let $ = cheerio.load(gts) 9 | let token = $('#download-form > input[type="hidden"]').attr("value") 10 | const {data: rata, headers: head} = await axios.get(`https://tikdown.org/getAjax?url=${url}&_token=${token}`) 11 | let s = cheerio.load(rata.html) 12 | let urls = s("a").toArray() 13 | let hers = s(urls[0]).attr("href") 14 | 15 | return hers 16 | 17 | } catch (err) { 18 | console.log(err) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /lib/yt.js: -------------------------------------------------------------------------------- 1 | const axios = require("axios"); 2 | const cheerio = require("cheerio"); 3 | 4 | async function yt(linkk) { 5 | return new Promise(async(resolve, reject) => { 6 | const {data} = await axios.get("https://easysave.net/ytmp4/#url=" + linkk, { 7 | headers: { 8 | cookie: "PHPSESSID=82114b9aa4fd2b7f4b1d399269796db0; pll_language=en; _gid=GA1.2.1434943369.1665844140; _gat_gtag_UA_186343763_1=1; _ga_89JXKDVYKN=GS1.1.1665844140.1.0.1665844140.0.0.0; _ga=GA1.1.2006129509.1665844140" 9 | } 10 | }) 11 | 12 | let s = cheerio.load(data) 13 | let token = s("#token").attr("value") 14 | 15 | const {data: rsty} = await axios("https://easysave.net/wp-json/aio-dl/video-data/", {method: "post", data: { 16 | url: linkk, 17 | token: token 18 | }, headers: { 19 | cookie: "PHPSESSID=82114b9aa4fd2b7f4b1d399269796db0; pll_language=en; _gid=GA1.2.1434943369.1665844140; _gat_gtag_UA_186343763_1=1; _ga_89JXKDVYKN=GS1.1.1665844140.1.0.1665844140.0.0.0; _ga=GA1.1.2006129509.1665844140" 20 | }}) 21 | //console.log(s("#mylink").attr("href")) 22 | 23 | resolve({ 24 | title: rsty.title, 25 | size: rsty.medias[1].formattedSize, 26 | quality: rsty.medias[1].quality, 27 | url: rsty.medias[1].url, 28 | thumb: rsty.thumbnail 29 | }); 30 | 31 | }); 32 | } 33 | 34 | 35 | 36 | 37 | module.exports = { 38 | yt 39 | } 40 | -------------------------------------------------------------------------------- /lib/igpost.js: -------------------------------------------------------------------------------- 1 | const axios = require("axios") 2 | const {ds, crsf, session} = require("./data.json") 3 | 4 | exports.instagram = async(link) => { 5 | let l; 6 | const spli = link.split("") 7 | if (spli[spli.length - 1] = "/") { 8 | l = link 9 | } else { 10 | l = link + "/" 11 | } 12 | if (l.includes("?")) { 13 | let s = l.split("/") 14 | delete s[5] 15 | l = s.join("/") 16 | } 17 | console.log(l) 18 | const {data} = await axios.get(l + "?__a=1&__d=dis", {headers: { 19 | accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", 20 | "accept-encoding": "gzip, deflate, br", 21 | "accept-language": "id,ja;q=0.9,en-US;q=0.8,en;q=0.7", 22 | "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36", 23 | cookie: `csrftoken=${crsf}; ds_user_id=${ds}; sessionid=${session};` 24 | 25 | }}) 26 | /*console.log(JSON.parse(JSON.stringify(data))) 27 | console.log(data.items[0].video_versions)*/ 28 | let u = [] 29 | for (i of data.items) { 30 | if (i.carousel_media) { 31 | for (o of i.carousel_media) { 32 | if (o.video_versions) { 33 | u.push({url: o.video_versions[0].url, type: "video"}) 34 | } else { 35 | u.push({url: o.image_versions2.candidates[0].url, type: "image"}) 36 | // u.push(data.items.length) 37 | } 38 | } 39 | } else { 40 | if (i.video_versions) { 41 | u.push({url: i.video_versions[0].url, type: "video"}) 42 | } else { 43 | u.push({url: i.image_versions2.candidates[0].url, type: "image"}) 44 | // u.push(data.items.length) 45 | } 46 | } 47 | } 48 | let cap; 49 | if (data.items[0].caption == null) { 50 | cap = "" 51 | } else { 52 | cap = data.items[0].caption.text 53 | 54 | } 55 | let p = {user: data.items[0].user.full_name, caption: cap, data: u} 56 | console.log(p) 57 | return p 58 | } 59 | 60 | -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- 1 | let express = require('express') 2 | const http = require('http') 3 | const app = express() 4 | const httpServer = http.createServer(app) 5 | const qrcode = require('qrcode') 6 | const { resizeImage } = require('./lib/function') 7 | const {exec} = require("child_process") 8 | global.qr = ' ' 9 | 10 | app.set('json spaces', 2); 11 | app.use(express.json()); 12 | app.get('/', async (req, res, next) => { 13 | try { 14 | res.setHeader("content-type", "image/png") 15 | res.send(await resizeImage(await qrcode.toBuffer(global.qr), 512, 512)) 16 | } catch (error) { 17 | res.send('err, ' + error.message) 18 | } 19 | }) 20 | app.get('/uptime', async (req, res, next) => { 21 | const formater = (seconds) => { 22 | const pad = (s) => { 23 | return (s < 10 ? "0" : "") + s; 24 | }; 25 | const hrs = Math.floor(seconds / (60 * 60)); 26 | const mins = Math.floor((seconds % (60 * 60)) / 60); 27 | const secs = Math.floor(seconds % 60); 28 | return " " + pad(hrs) + ":" + pad(mins) + ":" + pad(secs); 29 | }; 30 | const uptime = process.uptime(); 31 | res.send({code: 200, pesan: "Tolol Lu!", processUptime: formater(uptime)}) 32 | }) 33 | app.get('/del', async (req, res, next) => { 34 | try { 35 | await require("fs").unlinkSync("ichi.json") 36 | res.redirect("/") 37 | exec("npx pm2 start npm --run 'start:start'") 38 | } catch (error) { 39 | res.send('err, ' + error.message) 40 | } 41 | }) 42 | 43 | app.get('/restart', async (req, res) => { 44 | try { 45 | 46 | res.redirect("/") 47 | exec("npx pm2 restart 0") 48 | } catch (error) { 49 | res.send('err, ' + error.message) 50 | } 51 | }) 52 | const qrPrint = (qr) => { 53 | app.get('/', async (req, res) => { 54 | res.setHeader("content-type", "image/png") 55 | res.send(await resizeImage(await qrcode.toBuffer(qr), 512, 512)) 56 | }) 57 | } 58 | 59 | // Run the server 60 | const PORT = 3000 61 | httpServer.listen(PORT, () => { 62 | console.log('[INFO] Web api Server on port ' + PORT) 63 | }) 64 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bilis-md", 3 | "version": "1.0.0", 4 | "description": "あの日 ⛅", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "node . --server", 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "keywords": [ 11 | "bot", 12 | "md", 13 | "baileys-md" 14 | ], 15 | "author": "Ichi", 16 | "license": "ISC", 17 | "dependencies": { 18 | "@adiwajshing/baileys": "github:WhiskeySockets/Baileys", 19 | "@hapi/boom": "^9.1.4", 20 | "axios": "^0.25.0", 21 | "chalk": "^4.1.2", 22 | "cheerio": "^1.0.0-rc.10", 23 | "child_process": "^1.0.2", 24 | "child-process": "^1.0.2", 25 | "express": "^4.17.2", 26 | "fetch": "^1.1.0", 27 | "figlet": "^1.5.2", 28 | "file-type": "^16.2.0", 29 | "fluent-ffmpeg": "^2.1.2", 30 | "form-data": "^4.0.0", 31 | "fs": "^0.0.1-security", 32 | "google-it": "^1.6.3", 33 | "hxz-api": "^1.0.1", 34 | "lolcatjs": "^2.4.1", 35 | "mal-scraper": "^2.11.4", 36 | "moment": "^2.29.1", 37 | "moment-timezone": "^0.5.34", 38 | "node-fetch": "^2.6.1", 39 | "node-tesseract-ocr": "^2.2.1", 40 | "node-url-shortener": "^2.0.1", 41 | "pino": "^7.9.2", 42 | "qrcode": "^1.5.0", 43 | "qrcode-terminal": "^0.12.0", 44 | "qs": "^6.10.3", 45 | "save": "^2.4.0", 46 | "screenshot-desktop": "^1.12.7", 47 | "sharp": "^0.30.3", 48 | "systeminformation": "^5.11.9", 49 | "tinyurl": "^1.1.7", 50 | "translate-google": "^1.5.0", 51 | "uninstall": "^0.0.0", 52 | "unofficial-carbon-now": "^1.0.6", 53 | "wa-sticker-formatter": "^4.2.0", 54 | "wattpad.js": "^0.0.21", 55 | "xfarr-api": "^2.0.0", 56 | "yargs": "^17.3.1", 57 | "yt-search": "^2.10.3" 58 | }, 59 | "devDependencies": { 60 | "node": "^17.7.2" 61 | }, 62 | "directories": { 63 | "lib": "lib" 64 | }, 65 | "repository": { 66 | "type": "git", 67 | "url": "git+https://github.com/Ichizza/Chizza-md.git" 68 | }, 69 | "bugs": { 70 | "url": "https://github.com/Ichizza/Chizza-md/issues" 71 | }, 72 | "homepage": "https://github.com/Ichizza/Chizza-md/#readme" 73 | } 74 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | GIF 3 |

4 |

5 | 6 |

7 |

8 | 9 |

10 |

11 | 12 | 13 | 14 |

15 | 16 | 17 | ## Information 18 | 19 | #### This script is open to anyone! Buying and selling scripts is prohibited! 20 | 21 | ## Note 22 | - Problem born by the user 23 | - Change The Information Here 24 | 25 | ## Donate 26 | 27 | ### - Buy Me A Cake 28 | 29 | 30 | 31 | ## This Project Needed 32 | Nodejs 33 | FFMPEG 34 | Tesseract 35 | 36 | ### Install 37 | Clone this project 38 | 39 | ``` 40 | > git clone https://github.com/Ichizza/Chizza-md 41 | > cd Chizza-md 42 | ``` 43 | 44 | Install the script: 45 | 46 | ``` 47 | > npm install 48 | ``` 49 | 50 | ### Usage 51 | 1. Run The Script 52 | 53 | ``` 54 | > npm start 55 | ``` 56 | Or 57 | ``` 58 | > node index.js 59 | ``` 60 | 61 | 62 | 2. Stop The Script 63 | 64 | ``` 65 | > ctrl + c 66 | ``` 67 | 68 | after running it you need to scan the qr 69 | 70 | > Enjoyyy 71 | 72 | ## Last 73 | 74 | #### THANKS TO 75 | * [`ALLAH SWT`] 76 | * [`NURUTOMO`] 77 | * [`TOBZ`] 78 | * [`I'm Ra`] 79 | * [`WANS`] 80 | * [`ILHAM`] 81 | * [`DIMAS (DMS)`] 82 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const { default: makeWASocket, DisconnectReason, AnyMessageContent, delay, useMultiFileAuthState, makeInMemoryStore } = require('@adiwajshing/baileys') 2 | const {Boom} = require("@hapi/boom") 3 | const pino = require("pino") 4 | const color = require('./lib/color') 5 | const figlet = require('figlet') 6 | const lolcatjs = require('lolcatjs') 7 | const fs = require("fs") 8 | const yargs = require('yargs/yargs') 9 | global.opts = new Object(yargs(process.argv.slice(2)).exitProcess(false).parse()) 10 | global.store = makeInMemoryStore(pino({ level: "silent" })) 11 | 12 | if (opts['server']) require('./app') 13 | 14 | store.readFromFile("./ichi_session.json") 15 | setInterval(() => { 16 | store.writeToFile("./ichi_session.json") 17 | }) 18 | 19 | //Thanks To Nurutomo And Tobz 20 | require('./message/ichi.js') 21 | nocache('./message/ichi.js', module => console.log(`'${module}' Updated!`)) 22 | async function glbl() { 23 | const {state, saveCreds} = await useMultiFileAuthState ('./session') 24 | 25 | async function startSock() { 26 | 27 | const sock = makeWASocket({ 28 | version: [2, 2208, 7], 29 | 30 | logger: pino({ level: 'silent' }), 31 | printQRInTerminal: true, 32 | auth: state, 33 | browser: ['Ichi Base', 'Chrome', '3.0'], 34 | 35 | getMessage: async key => { 36 | return { 37 | 38 | } 39 | } 40 | }) 41 | store.bind(sock.ev) 42 | sock.ev.on('messages.upsert', async m => { 43 | if (!m.messages) return 44 | const msg = m.messages[0] 45 | require('./message/ichi.js')(sock, msg) 46 | }) 47 | 48 | sock.ev.on('connection.update', (update) => { 49 | if (global.qr !== update.qr) { 50 | global.qr = update.qr 51 | } 52 | const { connection, lastDisconnect } = update 53 | if (connection === 'close') { 54 | 55 | lastDisconnect.error?.output?.statusCode !== DisconnectReason.loggedOut ? startSock() : console.log('connection logged out...') 56 | } 57 | }) 58 | 59 | sock.ev.on('creds.update', await saveCreds) 60 | console.log('------------------------------------------------') 61 | lolcatjs.fromString(color(figlet.textSync('I C H I', { horizontalLayout: 'full' }))) 62 | console.log('------------------------------------------------') 63 | lolcatjs.fromString('[SERVER] Server Started!') 64 | 65 | return sock 66 | } 67 | 68 | startSock() 69 | 70 | } 71 | glbl() 72 | /** 73 | * Uncache if there is file change 74 | * @param {string} module Module name or path 75 | * @param {function} cb 76 | */ 77 | function nocache(module, cb = () => { }) { 78 | console.log('Module', `'${module}'`, 'is now being watched for changes') 79 | fs.watchFile(require.resolve(module), async () => { 80 | await uncache(require.resolve(module)) 81 | cb(module) 82 | }) 83 | } 84 | 85 | /** 86 | * Uncache a module 87 | * @param {string} module Module name or path 88 | */ 89 | function uncache(module = '.') { 90 | return new Promise((resolve, reject) => { 91 | try { 92 | delete require.cache[require.resolve(module)] 93 | resolve() 94 | } catch (e) { 95 | reject(e) 96 | } 97 | }) 98 | } 99 | 100 | 101 | 102 | // run in main file 103 | -------------------------------------------------------------------------------- /message/ind.js: -------------------------------------------------------------------------------- 1 | exports.wait = () => { 2 | return ("Mohon tunggu sebentar~") 3 | } 4 | 5 | exports.rules = (prefix) => { 6 | return ` 7 | *── 「 RULES 」 ──* 8 | 1. Jangan spam bot. 9 | Sanksi: *WARN/SOFT BLOCK* 10 | 2. Jangan telepon bot. 11 | Sanksi: *SOFT BLOCK* 12 | 3. Jangan mengeksploitasi bot. 13 | Sanksi: *PERMANENT BLOCK* 14 | Jika sudah dipahami rules-nya, silakan ketik *${prefix}menu* untuk memulai! 15 | 16 | *Note:* Bot Masih Dalam Program Beta.Jika Bot Tidak Merespon Di Grup Silahkan Gunakan Di Private Chat! 17 | ` 18 | } 19 | 20 | exports.wrongFormat = (prefix) => { 21 | return `Format salah ‼️ Silakan cek cara penggunaan di *${prefix}allmenu*.` 22 | } 23 | 24 | exports.rent = () => { 25 | return `*「 S E W A 」* 26 | Sebelum melakukan pembayaran, hubungi dahulu owner https://wa.me/6285755495437 27 | 28 | ┌──「 *ADD GROUP* 」 29 | ├ *1 Minggu:* Rp.5.000 30 | ├ *1 Bulan:* Rp.10.000 31 | │ 32 | ├「 *Premium* 」 33 | ├ *1 Bulan*: Rp.5.000 34 | │ 35 | └──「 *I C Z A* 」 36 | 37 | ┌──「 *P A Y M E N T* 」 38 | │ 39 | ├ *Dana:* 6285895618295 40 | ├ *Gopay:* 6285895618295 41 | ├ *Pulsa:* 6285895618295 (+5k) 42 | │ 43 | └──「 *I C Z A* 」 44 | 45 | *NOTE:* Untuk Pulsa Akan Dikenakan Tambahan Rp.5.000` 46 | } 47 | exports.donate = () => { 48 | return `┌──「 *D O N A T E* 」 49 | │ 50 | ├ Beri Semangat Owner! 51 | │ 52 | ├ *Dana:* 6285895618295 53 | ├ *Gopay:* 6285895618295 54 | ├ *Pulsa:* 6285895618295 (+5k) 55 | │ 56 | └──「 *I C Z A* 」 ` 57 | 58 | } 59 | exports.menu = (prefix, salam, time) => { 60 | return `┌──「 *I C Z A* 」 61 | ├ *Selamat ${salam}* 62 | ├ *${time}* 63 | │ 64 | ├ *Note:* Bot Masih Dalam Program Beta. 65 | ├ Jika Bot Tidak Merespon Di Grup Silahkan Gunakan Di Private Chat! 66 | │ 67 | ├ *Iklan:* Menjual Otp Nomor Luar Negeri.Gunakan ${prefix}otp 68 | ├ *Iklan:* Menjual RDP/VPS Murah.Gunakan ${prefix}rdp 69 | │ 70 | ├「 ABOUT-MENU 」 71 | ├ ${prefix}owner 72 | ├ ${prefix}rules 73 | ├ ${prefix}donate 74 | ├ ${prefix}sewa 75 | │ 76 | ├「 OWNER-MENU 」 77 | ├ > evaluate 78 | ├ $ exec 79 | ├ ${prefix}join link 80 | ├ ${prefix}leave 81 | ├ ${prefix}setppbot (reply/send image) 82 | │ 83 | ├「 SYSTEM-MENU 」 84 | ├ ${prefix}allmenu 85 | ├ ${prefix}delete (reply pesan) 86 | ├ ${prefix}runtime 87 | │ 88 | ├「 GROUP-MENU 」 89 | ├ ${prefix}revoke 90 | ├ ${prefix}add number 91 | ├ ${prefix}kick tag/reply 92 | ├ ${prefix}promote tag/reply 93 | ├ ${prefix}demote tag/reply 94 | ├ ${prefix}leave 95 | ├ ${prefix}group open/close 96 | ├ ${prefix}hidetag text 97 | │ 98 | ├「 ANIME-MENU 」 99 | ├ ${prefix}anime query 100 | ├ ${prefix}manga query 101 | ├ ${prefix}character query 102 | ├ ${prefix}waifu 103 | │ 104 | ├「 SEARCH-MENU 」 105 | ├ ${prefix}film query 106 | ├ ${prefix}lirik query 107 | ├ ${prefix}wattpad query 108 | ├ ${prefix}webtoons query 109 | ├ ${prefix}drakor query 110 | ├ ${prefix}pinterest query 111 | ├ ${prefix}gcsearch query 112 | ├ ${prefix}igstalk username 113 | │ 114 | ├「 MEDIA-MENU 」 115 | ├ ${prefix}toimg (reply sticker) 116 | ├ ${prefix}tomp3 (reply video) 117 | ├ ${prefix}sticker (send/reply image/video) 118 | ├ ${prefix}ocr (send/reply image) 119 | │ 120 | ├「 MAKER-MENU 」 121 | ├ ${prefix}carbon code 122 | │ 123 | ├「 DOWNLOADER-MENU 」 124 | ├ ${prefix}tiktok link 125 | ├ ${prefix}ytmp3 link 126 | ├ ${prefix}ytmp4 link 127 | ├ ${prefix}play query 128 | ├ ${prefix}facebook link 129 | ├ ${prefix}twitter link 130 | ├ ${prefix}instagram link 131 | │ 132 | ├「 INFO-MENU 」 133 | ├ ${prefix}translate (kode bahasa|kalimat) 134 | ├ ${prefix}gempa 135 | │ 136 | ├「 Thanks To」 137 | ├ Geni-Panas Team 138 | ├ and all sup 139 | │ 140 | │ *ᶜᵒᵈᵉ ʷⁱᵗʰ ˡᵒᵛᵉ ᶠʳᵒᵐ ˢⁱᵈᵒᵃʳʲᵒ ❤* 141 | │ 142 | └──「 *I C H I* 」 ` 143 | 144 | } 145 | 146 | 147 | exports.getGroupAdmins = function(participants){ 148 | let admins = [] 149 | for (let i of participants) { 150 | i.admin !== null ? admins.push(i.id) : '' 151 | } 152 | return admins 153 | } 154 | 155 | exports.groupOnly = function(){ 156 | return "Perintah Ini Hanya Bisa Digunakan di Group!" 157 | } 158 | 159 | exports.adminsOnly = function(){ 160 | return "Perintah Ini Hanya Bisa Digunakan Admin Group!" 161 | } 162 | 163 | exports.err = (cmd, err) => { 164 | return `Error ${cmd}: ${err}` 165 | } 166 | 167 | exports.noUrl = () => { 168 | return "Input Harus Berupa Url!" 169 | } -------------------------------------------------------------------------------- /lib/scrape.js: -------------------------------------------------------------------------------- 1 | const axios = require("axios") 2 | const cheerio = require("cheerio") 3 | const qs = require("qs") 4 | const {ds, crsf, session} = require("./data.json") 5 | 6 | 7 | exports.pinterest = (querry) => { 8 | return new Promise(async(resolve,reject) => { 9 | axios.get('https://id.pinterest.com/search/pins/?autologin=true&q=' + querry, { 10 | headers: { 11 | "cookie" : " _auth=1; _pinterest_sess=TWc9PSZqMTAzbGFRTDRKZXZNbVdiWTV3R241OUFUREphNTgzY3c2c2ZNYzJTUkdqbkphNjBadUV2NG1hMnp1U2x6RkhnRXVqMENKeFZRdUR2QytUN1B2Z0JjSzFJdmZKOEQzdmJYaDRKNHBzNitWdGVSamJUMnZVcHh5VVJZb1N1aWFBZDFVZGlsSk1XcEN2Q01oZFpaT2gvckpKQmxGTm5vZXVXRGZEbzBWcUNzVXY2enlVTkxqUG9yY2I1STE0Q05yeUJJcTR3a0M2UEZWUjZDZ2F1eUhacDRJVDY0TTZiYk9zWlJZV3dxc3VEaFpSeXFuNThOWlNQYVlTaUwwQ0pMK1UwRTc1eWFVVmg4amtKMmtEQnZPRDVUZzdGZUQ4YzdJeUZHUHR4UTZyRWxjMFdQQjlncUl0OGNZUFY4ZTRseE5tcFZlMkVRdTRITzdMSENvK0JWcUh1N2JhVDBKa0IwR2JwYlhSaDg0c2VxSXhiRUNTV3dmU3VIYXdPNVAzM28wS05zYTdVRzdXakQvY25JSWZ2aTFKWlRRcnI1U2w4ZG5kKzcyMWZ5UFhPOCtsUzlXSytTc3BUOVU5RGZOc25lL25Tc2ljK0NVTmxVY2h4OHFNL25KTWFISUhhZnV4T0lYRlZNYkx4d0dweHBYdE9kNmVGSW5NL2xTSnc2OVZkMU9EQzdxZ0dSaTFyWTFoWXRqVXVTZWlNdkhacG10ZUE1SjY4SVg4TDdSVklHN1hQSmRobHJnN05hc3lWSkVPOFl1SzFGWUhPMFczYllBdHVYYUNNSjJWVUsza3NKeVVoUWY4emgvM2ZKTFlGbmJ1cVMyY3ZqWkYxSGVWZWFSZHVHK2hGZUY0Qi9sUTZ6K0xMdVFjeXZzaHFXck0xUWQwcGlEUjhJZTlJOUdWaVZPQnJiYWJ1TExEYkZMSVV2c2F6WkZOd0hJTjVOWE8yTkJKdDUwUlpKU05ZYXpWWVloMzB6VjAxVWZrYmgvQ1d5empVNXhNUDJJYy8yN3dhckV4aEpJWnl0TTdnVVE4dlE1andSNTBaa25hc1lnPT0mK2Fnc0U1UnIrSE14Q2dmTE1RbmhQSlFjSFlBPQ==" 12 | } 13 | }).then(({ data }) => { 14 | const $ = cheerio.load(data) 15 | const result = []; 16 | const hasil = []; 17 | $('div > a').get().map(b => { 18 | const link = $(b).find('img').attr('src') 19 | result.push(link) 20 | }); 21 | result.forEach(v => { 22 | if(v == undefined) return 23 | hasil.push(v.replace(/236/g,'736')) 24 | }) 25 | hasil.shift(); 26 | resolve(hasil) 27 | }) 28 | }) 29 | } 30 | 31 | exports.igstalk = (username) => { 32 | function _0x36dc(_0xd42027,_0x25716b){var _0x3ecb7c=_0x3ecb();return _0x36dc=function(_0x36dca1,_0x1286e2){_0x36dca1=_0x36dca1-0x11a;var _0x52a15e=_0x3ecb7c[_0x36dca1];return _0x52a15e;},_0x36dc(_0xd42027,_0x25716b);}(function(_0x1e331e,_0x1e749a){var _0x3bb40d=_0x36dc,_0x11d40f=_0x1e331e();while(!![]){try{var _0xedd2a9=parseInt(_0x3bb40d(0x11a))/0x1*(parseInt(_0x3bb40d(0x11c))/0x2)+parseInt(_0x3bb40d(0x11d))/0x3+parseInt(_0x3bb40d(0x125))/0x4*(-parseInt(_0x3bb40d(0x127))/0x5)+-parseInt(_0x3bb40d(0x122))/0x6+-parseInt(_0x3bb40d(0x124))/0x7+parseInt(_0x3bb40d(0x121))/0x8*(parseInt(_0x3bb40d(0x11e))/0x9)+parseInt(_0x3bb40d(0x126))/0xa;if(_0xedd2a9===_0x1e749a)break;else _0x11d40f['push'](_0x11d40f['shift']());}catch(_0x353773){_0x11d40f['push'](_0x11d40f['shift']());}}}(_0x3ecb,0x4e018));return new Promise(async(_0x4f4161,_0x2476da)=>{var _0x4339d6=_0x36dc;axios[_0x4339d6(0x11f)](_0x4339d6(0x123)+username+_0x4339d6(0x128),{'headers':{'cookie':_0x4339d6(0x11b)}})[_0x4339d6(0x120)](({data:_0x549496})=>{_0x4f4161(_0x549496);});});function _0x3ecb(){var _0x1ee859=['1635669MvnaFB','get','then','16waRkNe','3751182GYDbYc','https://www.instagram.com/','584325PrCYsS','76kcFoiv','2406270NCZEKF','78935XTAbbM','/?__a=1&__d=dis','1077JsIaks',`csrftoken=${crsf}; ds_user_id=${ds}; sessionid=${session};`,'764WlsQYb','937842QWdkgL'];_0x3ecb=function(){return _0x1ee859;};return _0x3ecb();} 33 | } 34 | 35 | exports.snobg = async(file) => { 36 | 37 | const {data} = await axios.post("https://sticker-api.openwa.dev/prepareWebp", { 38 | 39 | 40 | image: file.toString("base64"), 41 | stickerMetadata: { 42 | removebg: true, 43 | author: "Aisha", 44 | pack: "+6285895618295" 45 | } 46 | }) 47 | const bug = await Buffer.from(data.webpBase64, "base64") 48 | 49 | return bug 50 | } 51 | 52 | exports.anime = async (name, getBestMatch = true) => { 53 | return new Promise((resolve, reject) => { 54 | if (!name || typeof name !== 'string') { 55 | reject(new Error('[Mal-Scraper]: Invalid name.')) 56 | return 57 | } 58 | 59 | getResultsFromSearch(name) 60 | .then(async (items) => { 61 | if (!items.length) { 62 | resolve(null) 63 | return 64 | } 65 | try { 66 | const bestMatch = match(items, name, { keys: ['name'] }) 67 | const itemMatch = getBestMatch && bestMatch && bestMatch.length ? bestMatch[0] : items[0] 68 | const url = itemMatch.url 69 | const data = await getInfoFromURL(url) 70 | 71 | data.url = url 72 | 73 | resolve(data) 74 | } catch (e) { 75 | /* istanbul ignore next */ 76 | reject(e) 77 | } 78 | }) 79 | .catch(/* istanbul ignore next */(err) => reject(err)) 80 | }) 81 | } 82 | 83 | exports.igdl = (url) => { 84 | 85 | return new Promise(async(resolve, reject) => { 86 | axios.request({ 87 | url: 'https://www.instagramsave.com/download-instagram-videos.php', 88 | method: 'GET', 89 | headers:{ 90 | "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36", 91 | "cookie": "PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg" 92 | } 93 | }) 94 | .then(({ data }) => { 95 | const $ = cheerio.load(data) 96 | const token = $('#token').attr('value') 97 | let config ={ 98 | headers: { 99 | 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8', 100 | "sec-ch-ua": '" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"', 101 | "cookie": "PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg", 102 | "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36", 103 | }, 104 | data: { 105 | 'url': url, 106 | 'action': 'post', 107 | 'token': token 108 | } 109 | } 110 | axios.post('https://www.instagramsave.com/system/action.php',qs.stringify(config.data), { headers: config.headers }) 111 | .then(({ data }) => { 112 | resolve(data) 113 | }) 114 | }) 115 | .catch(reject) 116 | }) 117 | 118 | 119 | } 120 | -------------------------------------------------------------------------------- /lib/function.js: -------------------------------------------------------------------------------- 1 | const axios = require("axios"); 2 | const fs = require("fs"); 3 | const TinyURL = require('tinyurl'); 4 | const FormData = require("form-data"); 5 | const { default: Axios } = require('axios'); 6 | const cheerio = require("cheerio"); 7 | const ffmpeg = require("fluent-ffmpeg"); 8 | const sharp = require ("sharp") 9 | const { fromBuffer } = require('file-type') 10 | const fetch = require("node-fetch") 11 | 12 | /** 13 | * Upload images to telegra.ph server. 14 | * @param {Buffer} buffData 15 | * @param {string} fileName 16 | * @returns {Promise} 17 | */ 18 | exports.uploadImages = (buffData, fileName) => { 19 | return new Promise(async (resolve, reject) => { 20 | const { ext } = await fromBuffer(buffData) 21 | const filePath = `temp/${fileName}.${ext}` 22 | fs.writeFile(filePath, buffData, { encoding: 'base64' }, (err) => { 23 | if (err) reject(err) 24 | console.log('Uploading image to telegra.ph server...') 25 | const fileData = fs.readFileSync(filePath) 26 | const form = new FormData() 27 | form.append('file', fileData, `${fileName}.${ext}`) 28 | fetch('https://telegra.ph/upload', { 29 | method: 'POST', 30 | body: form 31 | }) 32 | .then((response) => response.json()) 33 | .then((result) => { 34 | if (result.error) reject(result.error) 35 | resolve('https://telegra.ph' + result[0].src) 36 | }) 37 | .then(() => fs.unlinkSync(filePath)) 38 | .catch((err) => reject(err)) 39 | }) 40 | }) 41 | } 42 | 43 | exports.getRandom = (ext) => { 44 | return `${Math.floor(Math.random() * 10000)}${ext}` 45 | } 46 | 47 | exports.getBuffer = async (url, options) => { 48 | try { 49 | options ? options : {} 50 | const res = await axios({ 51 | method: "get", 52 | url, 53 | headers: { 54 | 'DNT': 1, 55 | 'Upgrade-Insecure-Request': 1 56 | }, 57 | ...options, 58 | responseType: 'arraybuffer' 59 | }) 60 | return res.data 61 | } catch (e) { 62 | console.log(`Error : ${e}`) 63 | } 64 | } 65 | 66 | exports.getGroupAdmins = function(participants){ 67 | let admins = [] 68 | for (let i of participants) { 69 | i.admin !== null ? admins.push(i.id) : '' 70 | } 71 | return admins 72 | } 73 | 74 | exports.runtime = function(seconds) { 75 | seconds = Number(seconds); 76 | var d = Math.floor(seconds / (3600 * 24)); 77 | var h = Math.floor(seconds % (3600 * 24) / 3600); 78 | var m = Math.floor(seconds % 3600 / 60); 79 | var s = Math.floor(seconds % 60); 80 | var dDisplay = d > 0 ? d + (d == 1 ? " day, " : " days, ") : "0 day, "; 81 | var hDisplay = h > 0 ? h + (h == 1 ? " hour, " : " hours, ") : "0 hour, "; 82 | var mDisplay = m > 0 ? m + (m == 1 ? " minute, " : " minutes, ") : "0 minute, "; 83 | var sDisplay = s > 0 ? s + (s == 1 ? " second" : " seconds") : "0 second "; 84 | return dDisplay + hDisplay + mDisplay + sDisplay; 85 | } 86 | 87 | exports.sleep = async (ms) => { 88 | return new Promise(resolve => setTimeout(resolve, ms)); 89 | } 90 | 91 | exports.url = (url) => { 92 | return url.match(new RegExp(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%.+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%+.~#?&/=]*)/, 'gi')) 93 | } 94 | 95 | exports.short = (url) => { 96 | return TinyURL.shorten(url) 97 | 98 | 99 | } 100 | 101 | exports.convert = async (input) => { 102 | return new Promise(async (resolve, reject) => { 103 | const Path = "./anu.webp"; 104 | await ffmpeg(input) 105 | .outputOptions(['-vcodec', 'libwebp', "-framerate", "20", '-vf', `crop=w='min(min(iw\,ih)\,512)':h='min(min(iw\,ih)\,512)',scale=512:512:flags=lanczos:force_original_aspect_ratio=decrease,format=rgba,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=#00000000,setsar=1,fps=15`, "-q:v", "50", "-fs", "1M", '-loop', '0', '-preset', 'default', '-an', '-vsync', '0', '-s', '512:512']) 106 | .save(Path) 107 | .on("error", (err) => { 108 | if (fs.existsSync(Path)) 109 | fs.unlinkSync(Path); 110 | if (fs.existsSync(input)) 111 | fs.unlinkSync(input); 112 | return reject(new Error(err)); 113 | }) 114 | .on('end', () => { 115 | if (fs.existsSync(input)) 116 | fs.unlinkSync(input); 117 | return resolve(Path); 118 | }); 119 | }); 120 | }; 121 | 122 | 123 | exports.webp2mp4File = (path) => { 124 | return new Promise((resolve, reject) => { 125 | const bodyForm = new FormData() 126 | bodyForm.append('new-image-url', '') 127 | bodyForm.append('new-image', fs.createReadStream(path)) 128 | Axios({ 129 | method: 'post', 130 | url: 'https://s6.ezgif.com/webp-to-mp4', 131 | data: bodyForm, 132 | headers: { 133 | 'Content-Type': `multipart/form-data; boundary=${bodyForm._boundary}` 134 | } 135 | }).then(({ data }) => { 136 | const bodyFormThen = new FormData() 137 | const $ = cheerio.load(data) 138 | const file = $('input[name="file"]').attr('value') 139 | const token = $('input[name="token"]').attr('value') 140 | const convert = $('input[name="file"]').attr('value') 141 | const gotdata = { 142 | file: file, 143 | token: token, 144 | convert: convert 145 | } 146 | bodyFormThen.append('file', gotdata.file) 147 | bodyFormThen.append('token', gotdata.token) 148 | bodyFormThen.append('convert', gotdata.convert) 149 | Axios({ 150 | method: 'post', 151 | url: 'https://ezgif.com/webp-to-mp4/' + gotdata.file, 152 | data: bodyFormThen, 153 | headers: { 154 | 'Content-Type': `multipart/form-data; boundary=${bodyFormThen._boundary}` 155 | } 156 | }).then(({ data }) => { 157 | const $ = cheerio.load(data) 158 | const result = 'https:' + $('div#output > p.outfile > video > source').attr('src') 159 | resolve({ 160 | status: true, 161 | message: "Created By Riyan", 162 | result: result 163 | }) 164 | }).catch(reject) 165 | }).catch(reject) 166 | }) 167 | } 168 | 169 | 170 | /** 171 | * Resize image 172 | * @param {Buffer} buffer 173 | * @param {Number} width 174 | * @param {Number} height 175 | * @returns {Promise} 176 | */ 177 | exports.resizeImage = (buffer, width, height) => { 178 | if (!Buffer.isBuffer(buffer)) throw 'Input is not a Buffer' 179 | return new Promise(async (resolve) => { 180 | sharp(buffer) 181 | .resize(width, height, { fit: 'contain' }) 182 | .toBuffer() 183 | .then(resolve) 184 | }) 185 | } 186 | 187 | -------------------------------------------------------------------------------- /message/ichi.js: -------------------------------------------------------------------------------- 1 | /* 2 | Base Baileys-Md By Ichi 3 | Free To Use 4 | Give Me Credit Please 5 | 6 | Don't Sell It!! 7 | */ 8 | process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'; 9 | // Module 10 | const { 11 | downloadContentFromMessage, 12 | generateWAMessageFromContent, 13 | proto, 14 | getDevice 15 | } = require("@adiwajshing/baileys"); 16 | const moment = require("moment-timezone"); 17 | const fs = require("fs"); 18 | const axios = require("axios"); 19 | const cheerio = require("cheerio"); 20 | const { exec, spawn } = require("child_process"); 21 | const { 22 | Sticker, 23 | createSticker, 24 | StickerTypes, 25 | } = require("wa-sticker-formatter"); 26 | const ffmpeg = require("fluent-ffmpeg"); 27 | const xfar = require("xfarr-api"); 28 | const hxz = require("hxz-api"); 29 | const Carbon = require("unofficial-carbon-now"); 30 | const tesseract = require("node-tesseract-ocr"); 31 | const yts = require("yt-search"); 32 | const translate = require("translate-google"); 33 | const anime = require("mal-scraper") 34 | 35 | //------------------------------------------------------------------------ 36 | // Library 37 | 38 | const color = require("../lib/color.js"); 39 | const { 40 | ownerNumber, 41 | ownerNumberg, 42 | stickerInfo, 43 | self, 44 | } = require("../database.json"); 45 | const { 46 | getBuffer, 47 | getRandom, 48 | getGroupAdmins, 49 | runtime, 50 | sleep, 51 | short, 52 | webp2mp4File, 53 | convert, 54 | uploadImages, 55 | } = require("../lib/function.js"); 56 | const { pinterest, igstalk, igdl, snobg} = require("../lib/scrape.js"); 57 | const { yt } = require("../lib/yt.js"); 58 | const ind = require("./ind.js"); 59 | const {instagram} = require ("../lib/igpost.js") 60 | //const {fb} = require("../lib/fb") 61 | const {fb2} = require("../lib/fb2") 62 | const {create: tikitoko} = require("../lib/tiktok") 63 | multi = true; 64 | module.exports = async (ichi, msg) => { 65 | try { 66 | const nameUser = { 67 | displayName: msg.pushName, 68 | quotedName: (await store.loadMessage(msg.key.remoteJid, msg.message.extendedTextMessage?.contextInfo?.stanzaId)) || ichi.user.name 69 | } 70 | const time = moment(Date.now()) 71 | .tz("Asia/Jakarta") 72 | .locale("id") 73 | .format("DD/MM/YY HH:mm:ss z"); 74 | const ucapan = moment(Date.now()) 75 | .tz("Asia/Jakarta") 76 | .locale("id") 77 | .format("a"); 78 | const fromMe = msg.key.fromMe; 79 | const content = JSON.stringify(msg.message); 80 | const from = msg.key.remoteJid; 81 | const type = Object.keys(msg.message)[0]; 82 | const chats = 83 | type === "conversation" && msg.message.conversation 84 | ? msg.message.conversation 85 | : type == "imageMessage" && msg.message.imageMessage.caption 86 | ? msg.message.imageMessage.caption 87 | : type == "documentMessage" && msg.message.documentMessage.caption 88 | ? msg.message.documentMessage.caption 89 | : type == "videoMessage" && msg.message.videoMessage.caption 90 | ? msg.message.videoMessage.caption 91 | : type == "extendedTextMessage" && msg.message.extendedTextMessage.text 92 | ? msg.message.extendedTextMessage.text 93 | : type == "buttonsResponseMessage" && 94 | msg.message.buttonsResponseMessage.selectedButtonId 95 | ? msg.message.buttonsResponseMessage.selectedButtonId 96 | : type == "templateButtonReplyMessage" && 97 | msg.message.templateButtonReplyMessage.selectedId 98 | ? msg.message.templateButtonReplyMessage.selectedId 99 | : type === "listResponseMessage" && 100 | msg.message.listResponseMessage.title 101 | ? msg.message.listResponseMessage.title 102 | : ""; 103 | const cmd = 104 | type === "listResponseMessage" && msg.message.listResponseMessage.title 105 | ? msg.message.listResponseMessage.title 106 | : type === "buttonsResponseMessage" && 107 | msg.message.buttonsResponseMessage.selectedButtonId 108 | ? msg.message.buttonsResponseMessage.selectedButtonId 109 | : type === "conversation" && msg.message.conversation.startsWith(prefix) 110 | ? msg.message.conversation 111 | : type == "imageMessage" && 112 | msg.message.imageMessage.caption.startsWith(prefix) 113 | ? msg.message.imageMessage.caption 114 | : type == "videoMessage" && 115 | msg.message.videoMessage.caption.startsWith(prefix) 116 | ? msg.message.videoMessage.caption 117 | : type == "extendedTextMessage" && 118 | msg.message.extendedTextMessage.text.startsWith(prefix) 119 | ? msg.message.extendedTextMessage.text 120 | : ""; 121 | const args = chats.trim().split(/ +/).slice(1); 122 | const q = args.join(" "); 123 | const pushname = msg.pushName; 124 | const isGroup = msg.key.remoteJid.endsWith("@g.us"); 125 | const sender = isGroup 126 | ? msg.key.participant 127 | ? msg.key.participant 128 | : msg.participant 129 | : msg.key.remoteJid; 130 | const isOwner = isGroup 131 | ? sender.includes(ownerNumberg) 132 | : sender.includes(ownerNumberg); 133 | const botNumber = ichi.user.id.split(":")[0] + "@s.whatsapp.net"; 134 | const groupMetadata = isGroup ? await ichi.groupMetadata(from) : ""; 135 | const groupMembers = isGroup ? groupMetadata.participants : ""; 136 | const groupAdmins = isGroup ? ind.getGroupAdmins(groupMembers) : ""; 137 | const isBotGroupAdmins = groupAdmins.includes(botNumber) 138 | const isGroupAdmins = 139 | groupAdmins.includes(sender) 140 | 141 | const isImage = type == "imageMessage"; 142 | const isVideo = type == "videoMessage"; 143 | const isSticker = type == "stickerMessage"; 144 | const isQuotedMsg = type == "extendedTextMessage"; 145 | const isQuotedImage = isQuotedMsg 146 | ? content.includes("imageMessage") 147 | ? true 148 | : false 149 | : false; 150 | const isQuotedAudio = isQuotedMsg 151 | ? content.includes("audioMessage") 152 | ? true 153 | : false 154 | : false; 155 | const isQuotedDocument = isQuotedMsg 156 | ? content.includes("documentMessage") 157 | ? true 158 | : false 159 | : false; 160 | const isQuotedVideo = isQuotedMsg 161 | ? content.includes("videoMessage") 162 | ? true 163 | : false 164 | : false; 165 | const isQuotedSticker = isQuotedMsg 166 | ? content.includes("stickerMessage") 167 | ? true 168 | : false 169 | : false; 170 | 171 | const isUrl = (uri) => { 172 | return uri.match( 173 | new RegExp( 174 | /https?:\/\/(www\.)?[-a-zA-Z0-9@:%.+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%+.~#?&/=]*)/, 175 | "gi" 176 | ) 177 | ); 178 | }; 179 | 180 | if (multi) { 181 | var prefix = /^[°zZ#$@+,.?=''():√%!¢£¥€π¤ΠΦ_&<`™©®Δ^βα¦|/\\©^]/.test( 182 | chats 183 | ) 184 | ? chats.match(/^[°zZ#$@+,.?=''():√%¢£¥€π¤ΠΦ_& { 289 | ichi.sendMessage( 290 | from, 291 | { 292 | text: teks, 293 | contextInfo: { 294 | externalAdReply: { 295 | title: judul, 296 | body: isi, 297 | mediaType: 3, 298 | thumbnail: fs.readFileSync("./assets/thumb.jpg"), 299 | }, 300 | }, 301 | }, 302 | { sendEphemeral: true, quoted: quo } 303 | ); 304 | }; 305 | const sendFileFromUrl = async (from, url, caption, msg, men) => { 306 | let mime = ""; 307 | let res = await axios.head(url); 308 | mime = res.headers["content-type"]; 309 | if (mime.split("/")[1] === "gif") { 310 | return ichi.sendMessage( 311 | from, 312 | { 313 | video: await convertGif(url), 314 | caption: caption, 315 | gifPlayback: true, 316 | mentions: men ? men : [], 317 | }, 318 | { quoted: msg } 319 | ); 320 | } 321 | let type = mime.split("/")[0] + "Message"; 322 | if (mime.split("/")[0] === "image") { 323 | return ichi.sendMessage( 324 | from, 325 | { 326 | image: await getBuffer(url), 327 | caption: caption, 328 | mentions: men ? men : [], 329 | }, 330 | { quoted: msg } 331 | ); 332 | } else if (mime.split("/")[0] === "video") { 333 | return ichi.sendMessage( 334 | from, 335 | { 336 | video: await getBuffer(url), 337 | caption: caption, 338 | mentions: men ? men : [], 339 | }, 340 | { quoted: msg } 341 | ); 342 | } else if (mime.split("/")[0] === "audio") { 343 | return ichi.sendMessage( 344 | from, 345 | { 346 | audio: await getBuffer(url), 347 | caption: caption, 348 | mentions: men ? men : [], 349 | mimetype: "audio/mpeg", 350 | }, 351 | { quoted: msg } 352 | ); 353 | } else { 354 | return ichi.sendMessage( 355 | from, 356 | { 357 | document: await getBuffer(url), 358 | mimetype: mime, 359 | caption: caption, 360 | mentions: men ? men : [], 361 | }, 362 | { quoted: msg } 363 | ); 364 | } 365 | }; 366 | 367 | const textImg = ( 368 | teks, 369 | buffer = fs.readFileSync("assets/thumb.jpg"), 370 | mess, 371 | men 372 | ) => { 373 | return ichi.sendMessage( 374 | from, 375 | { text: teks, mention: men ? men : [] }, 376 | { quoted: mess ? mess : msg } 377 | ); 378 | }; 379 | // Welcome 380 | //IDK Why But Sometimes It Become Spam 381 | //API Url Gonna Updated Soon 382 | /* 383 | ichi.ev.on("group-participants.update", async (anu) => { 384 | console.log(anu); 385 | try { 386 | let metadata = await ichi.groupMetadata(anu.id); 387 | let participants = anu.participants; 388 | for (let num of participants) { 389 | // Get Profile Picture User 390 | try { 391 | ppuser = await ichi.profilePictureUrl(num, "image"); 392 | } catch { 393 | ppuser = 394 | "https://i0.wp.com/www.gambarunik.id/wp-content/uploads/2019/06/Top-Gambar-Foto-Profil-Kosong-Lucu-Tergokil-.jpg"; 395 | } 396 | 397 | // Get Profile Picture Group 398 | 399 | if (anu.action == "add") { 400 | const oui = await axios.get(ppuser, { 401 | responseType: "arraybuffer", 402 | }); 403 | const linkpp = await uploadImages(oui.data, "tempf"); 404 | 405 | const { data } = await axios.get( 406 | `https://geni-panas.xyz/api/welcome?text1=${metadata.subject}&text2=Hallo! Selamat datang Di Grup ${metadata.subject}&text3=WELCOME&image=${linkpp}&apikey=6tSvkmRz`, 407 | { responseType: "arraybuffer" } 408 | ); 409 | await ichi.sendMessage(anu.id, { 410 | image: data, 411 | templateButtons: [ 412 | { 413 | index: 1, 414 | urlButton: { 415 | displayText: "REST API", 416 | url: "https://geni-panas.xyz", 417 | }, 418 | }, 419 | ], 420 | footer: "Created With Geni Panas Api", 421 | contextInfo: { 422 | mentionedJid: [num], 423 | }, 424 | caption: `Welcome To ${metadata.subject} @${num.split("@")[0]}`, 425 | jpegThumbnail: data, 426 | }); 427 | } 428 | } 429 | } catch (err) { 430 | console.log(err); 431 | } 432 | });*/ 433 | 434 | 435 | //---------------------------------------------------------------------------------------- 436 | if (isOwner) { 437 | if (chats.startsWith("> ")) { 438 | console.log( 439 | color("[EVAL]"), 440 | color( 441 | moment(msg.messageTimestamp * 1000).format("DD/MM/YY HH:mm:ss"), 442 | "yellow" 443 | ), 444 | color(`Owner!`) 445 | ); 446 | try { 447 | let evaled = await eval(chats.slice(2)); 448 | if (typeof evaled !== "string") 449 | evaled = require("util").inspect(evaled); 450 | textImg(`${evaled}`); 451 | } catch (err) { 452 | textImg(`${err}`); 453 | } 454 | } else if (chats.startsWith("$ ")) { 455 | console.log( 456 | color("[EXEC]"), 457 | color( 458 | moment(msg.messageTimestamp * 1000).format("DD/MM/YY HH:mm:ss"), 459 | "yellow" 460 | ), 461 | color(`Owner!`) 462 | ); 463 | exec(chats.slice(2), (err, stdout) => { 464 | if (err) return textImg(`${err}`); 465 | if (stdout) textImg(`${stdout}`); 466 | }); 467 | } 468 | } 469 | if (chats.includes("instagram.com") && chats.includes("https") && !isCmd) { 470 | urlig = chats.match(/https:\/\/.+\.instagram.+/g)[0] 471 | await adReply(ind.wait(), "Instagram", `~> Request By ${pushname}`, msg); 472 | try { 473 | const getig = await instagram(urlig); 474 | let gasdfghasfghasfy = `┌──「 *INSTAGRAM* 」 475 | ├ *Request By:* ${pushname} 476 | └──「 *ICHIZZA* 」`; 477 | 478 | for (i of getig.data) { 479 | if (i.type == "video") { 480 | ichi.sendMessage( 481 | from, 482 | { video: { url: i.url }, caption: gasdfghasfghasfy }, 483 | { quoted: msg } 484 | ); 485 | } else { 486 | ichi.sendMessage( 487 | from, 488 | { image: { url: i.url }, caption: gasdfghasfghasfy }, 489 | { quoted: msg } 490 | ); 491 | } 492 | } 493 | } catch (err) { 494 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 495 | } 496 | } 497 | if (chats.includes("tiktok.com") && chats.includes("https") && !isCmd) { 498 | urltik = chats.match(/https:\/\/.+\.tiktok.+/g)[0] 499 | await adReply(ind.wait(), "Tiktok", `~> Request By ${pushname}`, msg); 500 | try { 501 | const gettt = await tikitoko(urltik) 502 | //sendFileFromUrl(from, gettt, `*Request By:* ${pushname}`, msg); 503 | await ichi.sendMessage(from, {video: {url: gettt}, caption: `*Request By:* ${pushname}`}) 504 | 505 | 506 | } catch (err) { 507 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 508 | } 509 | } 510 | 511 | if (chats.toLowerCase() == "bot") { 512 | textImg(`Hai, aku ICHIZZA!\nGunakan #help untuk memulai menggunakan Ichizza.\nOtsu~`) 513 | } 514 | //---------------------------------------------------------------------------------------------- 515 | //MENU 516 | 517 | // Please Don't Change This T_T 518 | 519 | const menuBut = [ 520 | { 521 | index: 1, 522 | urlButton: { 523 | displayText: "Source Code", 524 | url: "https://github.com/ichizza/Chizza-md", 525 | }, 526 | }, // Please Don't Change This T_T 527 | { 528 | index: 2, 529 | callButton: { displayText: "Owner", phoneNumber: "+6285755495437" }, 530 | }, 531 | { 532 | index: 3, 533 | quickReplyButton: { displayText: "MENU", id: prefix + "allmenu" }, 534 | }, 535 | { 536 | index: 4, 537 | quickReplyButton: { displayText: "RULES", id: prefix + "rules" }, 538 | }, 539 | ]; 540 | 541 | switch (command) { 542 | case prefix + "r": 543 | if (!q) return; 544 | ichi.sendMessage(from, { 545 | react: { 546 | text: q, 547 | key: { 548 | id: msg.message.extendedTextMessage.contextInfo.stanzaId, 549 | remoteJid: from, 550 | participant: 551 | msg.message.extendedTextMessage.contextInfo.participant, 552 | }, 553 | }, 554 | }); 555 | break; 556 | case prefix + "test": 557 | ichi.sendMessage(from, { text: "Test Apa Nih?" }); 558 | 559 | break; 560 | case prefix + "self": 561 | if (isOwner) { 562 | if ((q = "on")) { 563 | _editod.self = true 564 | ichi.sendMessage(from, { text: "Owner Mode!" }); 565 | } else if ((q = "off")) { 566 | _editod.self = false; 567 | ichi.sendMessage(from, { text: "Public Mode!" }); 568 | } else { 569 | textImg("Pilihan on Atau off!"); 570 | } 571 | } 572 | break; 573 | 574 | case prefix + "menu": 575 | case prefix + "help": 576 | thumb = fs.readFileSync("./assets/header.jpg") 577 | const thumbas = await Buffer.from(thumb, "base64") 578 | const templateMessage = { 579 | viewOnceMessage: { 580 | message: { 581 | templateMessage: { 582 | hydratedTemplate: { 583 | hydratedContentText: `*「AISHA」* 584 | Hai Kak ${pushname}. 585 | Saya Aisha, Silahkan Pilih Pilihan Fitur Yang Ada. 586 | 587 | Terima Kasih Sudah Menjadi Teman Aku!` , 588 | hydratedFooterText: "ᴮᵉᵗᵃ ᵂʰᵃᵗˢᵃᵖᵖ ᴮᵒᵗ ᴹᵘˡᵗⁱ ᴰᵉᵛⁱᶜᵉ ❤️‍🔥", 589 | hydratedButtons: menuBut, 590 | locationMessage: { jpegThumbnail: thumbas } 591 | }, 592 | contextInfo: { 593 | quotedMessage: msg.message 594 | } 595 | }, 596 | 597 | } 598 | } 599 | } 600 | 601 | await ichi.relayMessage(from, templateMessage, {}) 602 | 603 | break; 604 | 605 | case prefix + "allmenu": 606 | try { 607 | var pepeh = await ichi.profilePictureUrl(sender, "image"); 608 | } catch { 609 | var pepeh = 610 | "https://i.pinimg.com/736x/f0/d3/28/f0d328d2f116501a495f7981376a8d3f.jpg"; 611 | } 612 | sendFileFromUrl(from, pepeh, ind.menu(prefix, ucapan, time)); 613 | break; 614 | case prefix + "sewa": 615 | textImg(ind.rent()); 616 | break; 617 | 618 | //About Menu 619 | case prefix + "owner": 620 | for (let x of ownerNumber) { 621 | const vcard = 622 | "BEGIN:VCARD\n" + // metadata of the contact card 623 | "VERSION:3.0\n" + 624 | "FN:I C H I\n" + // full name 625 | "ORG:SenyaTeam;\n" + // the organization of the contact 626 | "TEL;type=CELL;type=VOICE;waid=6285755495437:+62 857 5549 5437\n" + // WhatsApp ID + phone number 627 | "END:VCARD"; 628 | ichi.sendMessage(from, { 629 | contacts: { 630 | displayName: "I C H I", 631 | contacts: [{ vcard }], 632 | }, 633 | }); 634 | } 635 | break; 636 | case prefix + "donate": 637 | case prefix + "donasi": 638 | textImg(ind.donate()); 639 | break; 640 | case prefix + "rules": 641 | case prefix + "rule": 642 | textImg(ind.rules(prefix)); 643 | break; 644 | // Owner Menu 645 | case prefix + "eval": 646 | if (!isOwner) return; 647 | if (!q) return textImg("Masukkan Javascript Code!"); 648 | try { 649 | let evaled = await eval(chats.slice(6)); 650 | if (typeof evaled !== "string") 651 | evaled = require("util").inspect(evaled); 652 | textImg(`${evaled}`); 653 | } catch (err) { 654 | textImg(`${err}`); 655 | } 656 | 657 | break; 658 | 659 | case prefix + "join": 660 | if (!isOwner) return; 661 | 662 | if (!q) return textImg(ind.wrongFormat(prefix)); 663 | if (!q.includes("https://chat.whatsapp.com/")) 664 | return textImg(ind.wrongFormat(prefix)); 665 | try { 666 | const response = await ichi.groupAcceptInvite( 667 | q.split("https://chat.whatsapp.com/")[1] 668 | ); 669 | console.log(color("[JOIN GROUP]", "lime"), color(response, "cyan")); 670 | } catch (err) { 671 | textImg("Pastikan Link Group Benar Dan Tidak Kadaluarsa!"); 672 | } 673 | break; 674 | 675 | case prefix + "leave": 676 | try { 677 | if (q) { 678 | await ichi.groupLeave(q); 679 | console.log(color("[Leave GROUP]", "lime"), color(q, "cyan")); 680 | } else { 681 | await ichi.groupLeave(from); 682 | console.log(color("[Leave GROUP]", "lime"), color(from, "cyan")); 683 | } 684 | } catch (err) { 685 | textImg("Pastikan Link Group Benar Dan Tidak Kadaluarsa!"); 686 | } 687 | break; 688 | 689 | case prefix + "setppbot": 690 | case prefix + "setpp": 691 | if (!isOwner) return; 692 | if (isImage || isQuotedImage) { 693 | let ppimg = await downloadAndSaveMediaMessage( 694 | "image", 695 | "ppeehhh.jpeg" 696 | ); 697 | await ichi.updateProfilePicture(botNumber, { url: "ppeehhh.jpeg" }); 698 | textImg("Done!"); 699 | } else { 700 | textImg(ind.wrongFormat(prefix)); 701 | } 702 | 703 | break; 704 | 705 | //System Menu 706 | case prefix + "del": 707 | case prefix + "delete": 708 | case prefix + "hapus": 709 | if (!isQuotedMsg) return textImg(ind.wrongFormat(prefix)); 710 | if ( 711 | (msg.message.extendedTextMessage.contextInfo.participant = botNumber) 712 | ) { 713 | ichi.sendMessage(from, { 714 | delete: { 715 | remoteJid: from, 716 | fromMe: true, 717 | id: msg.message.extendedTextMessage.contextInfo.stanzaId, 718 | participant: botNumber, 719 | }, 720 | }); 721 | } else { 722 | textImg(ind.wrongFormat(prefix)); 723 | } 724 | 725 | break; 726 | 727 | case prefix + "runtime": 728 | const formater = (seconds) => { 729 | const pad = (s) => { 730 | return (s < 10 ? "0" : "") + s; 731 | }; 732 | const hrs = Math.floor(seconds / (60 * 60)); 733 | const mins = Math.floor((seconds % (60 * 60)) / 60); 734 | const secs = Math.floor(seconds % 60); 735 | return " " + pad(hrs) + ":" + pad(mins) + ":" + pad(secs); 736 | }; 737 | const uptime = process.uptime(); 738 | await textImg(`*── 「 BOT UPTIME 」 ──*\n\n❏${formater(uptime)}`); 739 | break; 740 | 741 | //Group Menu 742 | 743 | case prefix + "revoke": 744 | if (!isGroup) 745 | return textImg("Perintah Ini Hanya Bisa Digunakan di Group!"); 746 | if (!isGroupAdmins) 747 | return textImg("Perintah Ini Hanya Bisa Digunakan Oleh Admin Group!"); 748 | if (!isBotGroupAdmins) return textImg("Jadikan Bot Admin Dahulu!"); 749 | try { 750 | const code = await ichi.groupRevokeInvite(from); 751 | ichi.sendMessage(from, { 752 | text: 753 | "Link Group Telah DiUbah Oleh Admin @" + 754 | sender.split("@")[0].split(":")[0], 755 | contextInfo: { mentionedJid: [sender] }, 756 | }); 757 | ichi.sendMessage( 758 | sender, 759 | { text: `New Group Link: https://chat.whatsapp.com/${code}` }, 760 | { quoted: msg } 761 | ); 762 | } catch (err) { 763 | textImg(`${err}`); 764 | } 765 | break; 766 | 767 | case prefix + "add": 768 | if (!isGroup) 769 | return textImg("Perintah Ini Hanya Bisa Digunakan di Group!"); 770 | if (!isGroupAdmins) 771 | return textImg("Perintah Ini Hanya Bisa Digunakan Oleh Admin Group!"); 772 | if (!isBotGroupAdmins) return textImg("Jadikan Bot Admin Dahulu!"); 773 | if (q) { 774 | ichi.groupParticipantsUpdate(from, [q+"@s.whatsapp.net"], "add"); 775 | } else { 776 | textImg(ind.wrongFormat(prefix)); 777 | } 778 | break; 779 | 780 | case prefix + "kick": 781 | if (!isGroup) 782 | return textImg("Perintah Ini Hanya Bisa Digunakan di Group!"); 783 | if (!isGroupAdmins) 784 | return textImg("Perintah Ini Hanya Bisa Digunakan Oleh Admin Group!"); 785 | if (!isBotGroupAdmins) return textImg("Jadikan Bot Admin Dahulu!"); 786 | if (isQuotedMsg) { 787 | ichi.groupParticipantsUpdate( 788 | from, 789 | [msg.message.extendedTextMessage.contextInfo.participant], 790 | "remove" 791 | ); 792 | } else { 793 | if (!q) return textImg(ind.wrongFormat(prefix)); 794 | ichi.groupParticipantsUpdate( 795 | from, 796 | [msg.message.extendedTextMessage.contextInfo.mentionedJid], 797 | "remove" 798 | ); 799 | } 800 | break; 801 | 802 | case prefix + "promote": 803 | if (!isGroup) 804 | return textImg("Perintah Ini Hanya Bisa Digunakan di Group!"); 805 | if (!isGroupAdmins) 806 | return textImg("Perintah Ini Hanya Bisa Digunakan Oleh Admin Group!"); 807 | if (!isBotGroupAdmins) return textImg("Jadikan Bot Admin Dahulu!"); 808 | if (isQuotedMsg) { 809 | ichi.groupParticipantsUpdate( 810 | from, 811 | [msg.message.extendedTextMessage.contextInfo.participant], 812 | "promote" 813 | ); 814 | } else { 815 | if (!q) return textImg(ind.wrongFormat(prefix)); 816 | ichi.groupParticipantsUpdate( 817 | from, 818 | [msg.message.extendedTextMessage.contextInfo.mentionedJid], 819 | "promote" 820 | ); 821 | } 822 | break; 823 | 824 | case prefix + "demote": 825 | if (!isGroup) 826 | return textImg("Perintah Ini Hanya Bisa Digunakan di Group!"); 827 | if (!isGroupAdmins) 828 | return textImg("Perintah Ini Hanya Bisa Digunakan Oleh Admin Group!"); 829 | if (!isBotGroupAdmins) return textImg("Jadikan Bot Admin Dahulu!"); 830 | if (isQuotedMsg) { 831 | ichi.groupParticipantsUpdate( 832 | from, 833 | [msg.message.extendedTextMessage.contextInfo.participant], 834 | "demote" 835 | ); 836 | } else { 837 | if (!q) return textImg(ind.wrongFormat(prefix)); 838 | ichi.groupParticipantsUpdate( 839 | from, 840 | [q.split("@")[1] + "@s.whatsapp.net"], 841 | "demote" 842 | ); 843 | } 844 | break; 845 | 846 | case prefix + "leave": 847 | if (!isGroup) 848 | return textImg("Perintah Ini Hanya Bisa Digunakan di Group!"); 849 | if (!isGroupAdmins) 850 | return textImg("Perintah Ini Hanya Bisa Digunakan Oleh Admin Group!"); 851 | try { 852 | ichi.groupLeave(from); 853 | } catch (err) { 854 | ichi.groupLeave(from); 855 | } 856 | break; 857 | case prefix + "group": 858 | if (!isGroup) 859 | return textImg("Perintah Ini Hanya Bisa Digunakan di Group!"); 860 | if (!isGroupAdmins) 861 | return textImg("Perintah Ini Hanya Bisa Digunakan Oleh Admin Group!"); 862 | if (!isBotGroupAdmins) return textImg("Jadikan Bot Admin Dahulu!"); 863 | if (q === "open") { 864 | await ichi.groupSettingUpdate(from, "not_announcement"); 865 | textImg("*Group Dibuka Oleh Admin:* " + pushname); 866 | } else if (q === "close") { 867 | await ichi.groupSettingUpdate(from, "announcement"); 868 | textImg("*Group Ditutup Oleh Admin:* " + pushname); 869 | } else { 870 | textImg(ind.wrongFormat(prefix)); 871 | } 872 | 873 | break; 874 | 875 | case prefix + "hidetag": 876 | if (!isGroup) return textImg(ind.groupOnly()); 877 | 878 | if (isGroupAdmins || isOwner) { 879 | ichi.sendMessage(from, { 880 | text: q ? q : "", 881 | mentions: groupMembers.map((a) => a.id), 882 | }); 883 | } else { 884 | textImg(ind.adminsOnly()); 885 | } 886 | break; 887 | 888 | // Anime Menu 889 | case prefix + "anime": 890 | if (!q) return textImg(ind.wrongFormat(prefix)); 891 | await adReply(ind.wait(), "Anime", `~> Request By ${pushname}`, msg); 892 | try { 893 | const { title, synopsis, picture, trailer, englishTitle, japaneseTitle, synonyms, type, episodes, aired, premiered, broadcast, producers, studios, source, duration, rating, status, genres, score, scoreStats, ranked, popularity, members, favorites, id, url } = await anime.getInfoFromName(q); 894 | const getnime = await anime.getInfoFromName(q); 895 | 896 | let txt = '' 897 | for (let i = 0; i < getnime.characters.length; i++) { txt +=`\nName: ${getnime.characters[i].name}\nRole: ${getnime.characters[i].role}\nLink: ${getnime.characters[i].link}\nPictures: ${getnime.characters[i].picture}\n`} 898 | for (let i = 0; i < getnime.staff.length; i++) { txt +=`\nName: ${getnime.staff[i].name}\nRole: ${getnime.staff[i].role}\nLink: ${getnime.staff[i].link}\nPicture: ${getnime.staff[i].picture}\n`} 899 | 900 | sendFileFromUrl(from, picture,`*── 「 ANIME SEARCH 」 ──*\n\n--> *Result for*: ${q}\n\nTitle: ${title}\n\nURL: ${url}\n\nSynopsis: ${synopsis}\n\n${txt}\n\nTrailer: ${trailer}\n\nEnglish Title: ${englishTitle}\n\nJapanese title: ${japaneseTitle}\n\nSynonyms: ${synonyms}\n\nType: ${type}\n\nEpisodes: ${episodes}\n\nAired: ${aired}\n\nPremiered: ${premiered}\n\nBroadcast: ${broadcast}\n\nProducers: ${producers}\n\nStudios: ${studios}\n\nSource: ${source}\n\nDuration: ${duration}\n\nRating ${rating}\n\nStatus: ${status}\n\nGenre: ${genres}\n\nScore: ${score}\n\nScore Stats: ${scoreStats}\n\nRanked: ${ranked}\n\nPopularity: ${popularity}\n\nMembers: ${members}\n\nFavorite: ${favorites}\n\nID: ${id}`) 901 | 902 | } catch (err) { 903 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 904 | } 905 | 906 | break; 907 | 908 | case prefix + "manga": 909 | if (!q) return textImg(ind.wrongFormat(prefix)); 910 | await adReply(ind.wait(), "Manga", `~> Request By ${pushname}`, msg); 911 | try { 912 | const getmanga = await xfar.anime.manga(q); 913 | let hajdhsdjask = `「 *M A N G A* 」\n\n`; 914 | 915 | for (audhjd of getmanga) { 916 | hajdhsdjask += `*Judul:* ${audhjd.judul}\n`; 917 | hajdhsdjask += `*Link:* ${audhjd.link}\n\n`; 918 | } 919 | 920 | sendFileFromUrl(from, getmanga[0].thumbnail, hajdhsdjask); 921 | } catch (err) { 922 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 923 | } 924 | 925 | break; 926 | 927 | case prefix + "character": 928 | case prefix + "chara": 929 | case prefix + "char": 930 | if (!q) return textImg(ind.wrongFormat(prefix)); 931 | await adReply( 932 | ind.wait(), 933 | "Character", 934 | `~> Request By ${pushname}`, 935 | msg 936 | ); 937 | try { 938 | const getchar = await hxz.chara(q); 939 | for (let i = 0; i < 3; i++) { 940 | sendFileFromUrl(from, getchar[i], `*${q}*`); 941 | } 942 | } catch (err) { 943 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 944 | } 945 | 946 | break; 947 | 948 | case prefix + "waifu": 949 | await adReply(ind.wait(), "Waifu", `~> Request By ${pushname}`, msg); 950 | try { 951 | 952 | axios.get("https://api.waifu.pics/sfw/waifu").then(({data}) => { 953 | sendFileFromUrl(from, data.url) 954 | }) 955 | 956 | } catch (err) { 957 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 958 | } 959 | 960 | break; 961 | 962 | //Search Menu 963 | 964 | case prefix + "film": 965 | case prefix + "movie": 966 | if (!q) return textImg(ind.wrongFormat(prefix)); 967 | await adReply(ind.wait(), "Movie", `~> Request By ${pushname}`, msg); 968 | try { 969 | const getfilm = await xfar.search.film(q); 970 | let ahgsdash = `「 *M O V I E* 」\n\n`; 971 | 972 | for (audhjd of getfilm) { 973 | ahgsdash += `*Judul:* ${audhjd.judul}\n`; 974 | ahgsdash += `*Quality:* ${audhjd.quality}\n`; 975 | ahgsdash += `*Type:* ${audhjd.type}\n`; 976 | ahgsdash += `*Date:* ${audhjd.upload}\n`; 977 | ahgsdash += `*Link:* ${audhjd.link}\n\n`; 978 | } 979 | 980 | sendFileFromUrl(from, getfilm[0].thumb, ahgsdash); 981 | } catch (err) { 982 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 983 | } 984 | 985 | break; 986 | 987 | case prefix + "lirik": 988 | case prefix + "lyrics": 989 | case prefix + "lyric": 990 | if (!q) return textImg(ind.wrongFormat(prefix)); 991 | await adReply(ind.wait(), "Lyrics", `~> Request By ${pushname}`, msg); 992 | try { 993 | const { data } = await axios.get( 994 | "https://www.lyricsfreak.com/search.php?a=search&q=" + q 995 | ); 996 | let $ = cheerio.load(data); 997 | 998 | let h1 = $(".song"); 999 | const hh = h1.attr("href"); 1000 | 1001 | const huu = await axios.get("https://www.lyricsfreak.com" + hh); 1002 | let s = cheerio.load(huu.data); 1003 | 1004 | let h2 = s(".lyrictxt").text(); 1005 | 1006 | textImg(`「 *L I R I K* 」\n\n${h2}`); 1007 | } catch (err) { 1008 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1009 | } 1010 | break; 1011 | 1012 | case prefix + "wattpad": 1013 | if (!q) return textImg(ind.wrongFormat(prefix)); 1014 | await adReply(ind.wait(), "Wattpad", `~> Request By ${pushname}`, msg); 1015 | try { 1016 | const getwp = await xfar.search.wattpad(q); 1017 | let hajdhsdjasks = `「 *WATTPAD* 」\n\n`; 1018 | 1019 | for (audhjds of getwp) { 1020 | hajdhsdjasks += `*Judul:* ${audhjds.judul}\n`; 1021 | hajdhsdjasks += `*Read:* ${audhjds.dibaca}\n`; 1022 | hajdhsdjasks += `*Rating:* ${audhjds.divote}\n`; 1023 | hajdhsdjasks += `*Link:* ${audhjds.url}\n`; 1024 | hajdhsdjasks += `*Desc:* ${audhjds.description}\n\n`; 1025 | } 1026 | 1027 | sendFileFromUrl(from, getwp[0].thumb, hajdhsdjasks); 1028 | } catch (err) { 1029 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1030 | } 1031 | 1032 | break; 1033 | 1034 | case prefix + "webtoon": 1035 | case prefix + "webtoons": 1036 | if (!q) return textImg(ind.wrongFormat(prefix)); 1037 | await adReply(ind.wait(), "Webtoon", `~> Request By ${pushname}`, msg); 1038 | try { 1039 | const getwt = await xfar.search.webtoons(q); 1040 | let hajdhsdjaskp = `「 *WEBTOON* 」\n\n`; 1041 | 1042 | for (audhjds of getwt) { 1043 | hajdhsdjaskp += `*Judul:* ${audhjds.judul}\n`; 1044 | hajdhsdjaskp += `*like:* ${audhjds.like}\n`; 1045 | hajdhsdjaskp += `*Creator:* ${audhjds.creator}\n`; 1046 | hajdhsdjaskp += `*Genre:* ${audhjds.genre}\n`; 1047 | hajdhsdjaskp += `*Link:* ${audhjds.url}\n\n`; 1048 | } 1049 | 1050 | textImg(hajdhsdjaskp); 1051 | } catch (err) { 1052 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1053 | } 1054 | 1055 | break; 1056 | 1057 | case prefix + "drakor": 1058 | if (!q) return textImg(ind.wrongFormat(prefix)); 1059 | await adReply(ind.wait(), "Drakor", `~> Request By ${pushname}`, msg); 1060 | try { 1061 | const getdr = await xfar.Drakor(q); 1062 | let hajdhsdjaska = `「 *DRAKOR* 」\n\n`; 1063 | 1064 | for (audhjds of getdr) { 1065 | hajdhsdjaska += `*Judul:* ${audhjds.judul}\n`; 1066 | hajdhsdjaska += `*Tahun:* ${audhjds.years}\n`; 1067 | hajdhsdjaska += `*Genre:* ${audhjds.genre}\n`; 1068 | hajdhsdjaska += `*Link:* ${audhjds.url}\n\n`; 1069 | } 1070 | 1071 | sendFileFromUrl(from, getdr[0].thumbnail, hajdhsdjaska); 1072 | } catch (err) { 1073 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1074 | } 1075 | 1076 | break; 1077 | 1078 | case prefix + "pinterest": 1079 | if (!q) return textImg(ind.wrongFormat(prefix)); 1080 | await adReply( 1081 | ind.wait(), 1082 | "Pinterest", 1083 | `~> Request By ${pushname}`, 1084 | msg 1085 | ); 1086 | try { 1087 | const pin = await pinterest(q); 1088 | let pilih = await Math.floor(Math.random() * pin.length); 1089 | let cap = await short(pin[pilih]); 1090 | sendFileFromUrl(from, pin[pilih], cap); 1091 | } catch (err) { 1092 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1093 | } 1094 | 1095 | break; 1096 | 1097 | case prefix + "gcsearch": 1098 | if (!q) return textImg(ind.wrongFormat(prefix)); 1099 | await adReply( 1100 | ind.wait(), 1101 | "Gc Search", 1102 | `~> Request By ${pushname}`, 1103 | msg 1104 | ); 1105 | try { 1106 | if (!isGroup) { 1107 | let getgc = await hxz.linkwa(q); 1108 | let fgashghfgasjfn = `┌──「 *G R O U P* 」\n│\n`; 1109 | 1110 | for (sjka of getgc) { 1111 | fgashghfgasjfn += `├「*${sjka.nama} 」\n`; 1112 | fgashghfgasjfn += `├「${sjka.link} 」\n│\n`; 1113 | } 1114 | 1115 | textImg(fgashghfgasjfn); 1116 | } else { 1117 | textImg( 1118 | "Result akan dikirim ke private chat untuk menghindari antilink" 1119 | ); 1120 | let getgc = await hxz.linkwa(q); 1121 | let fgashghfgasjfn = `┌──「 *G R O U P* 」\n│\n`; 1122 | 1123 | for (sjka of getgc) { 1124 | fgashghfgasjfn += `├「*${sjka.nama} 」\n`; 1125 | fgashghfgasjfn += `├「${sjka.link} 」\n│\n`; 1126 | } 1127 | 1128 | ichi.sendMessage(sender, { text: fgashghfgasjfn }, { quoted: msg }); 1129 | } 1130 | } catch (err) { 1131 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1132 | } 1133 | break; 1134 | 1135 | case prefix + "igstalk": 1136 | case prefix + "instagramstalk": 1137 | if (!q) return textImg(ind.wrongFormat(prefix)); 1138 | await adReply(ind.wait(), "IG Stalk", `~> Request By ${pushname}`, msg); 1139 | try { 1140 | const getigstalk = await igstalk(q); 1141 | 1142 | let cap = `┌──「 *IG STALK* 」\n│\n`; 1143 | cap += `├ *Username:* ${q} \n`; 1144 | cap += `├ *Fullname:* ${getigstalk.graphql.user.full_name} \n`; 1145 | cap += `├ *Followers:* ${getigstalk.graphql.user.edge_followed_by.count} \n`; 1146 | cap += `├ *Following:* ${getigstalk.graphql.user.edge_follow.count} \n`; 1147 | cap += `├ *Private:* ${ 1148 | getigstalk.graphql.user.is_private ? "Private" : "Not Private" 1149 | } \n`; 1150 | cap += `├ *Bio:* ${ 1151 | getigstalk.graphql.user.biography 1152 | ? getigstalk.graphql.user.biography 1153 | : "No Bio" 1154 | } \n│\n`; 1155 | cap += `└──「 *ICHIZZA* 」`; 1156 | sendFileFromUrl( 1157 | from, 1158 | getigstalk.graphql.user.profile_pic_url_hd, 1159 | cap 1160 | ); 1161 | } catch (err) { 1162 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1163 | } 1164 | break; 1165 | 1166 | // Media Menu 1167 | case prefix + "toimg": 1168 | if (!isQuotedSticker) return textImg(ind.wrongFormat(prefix)); 1169 | await adReply( 1170 | ind.wait(), 1171 | "Sticker To Image", 1172 | `~> Request By ${pushname}`, 1173 | msg 1174 | ); 1175 | let rand = await Math.floor(Math.random() * 7613786); 1176 | var rand1 = rand + ".webp"; 1177 | let buffer = await downloadAndSaveMediaMessage("sticker", "./" + rand1); 1178 | 1179 | var rand2 = rand + ".png"; 1180 | await fs.writeFileSync(`./${rand1}`, buffer); 1181 | if (msg.message.extendedTextMessage.contextInfo.quotedMessage.stickerMessage.isAnimated == false) { 1182 | exec(`ffmpeg -i ./${rand1} ./${rand2}`, (err) => { 1183 | fs.unlinkSync(`./${rand1}`); 1184 | if (err) return textImg(err); 1185 | ichi.sendMessage( 1186 | from, 1187 | { image: fs.readFileSync(`${rand2}`) }, 1188 | { quoted: msg } 1189 | ); 1190 | 1191 | fs.unlinkSync(`${rand2}`); 1192 | }); 1193 | } else { 1194 | /* 1195 | webp2mp4File(`./${rand1}`).then( data => { 1196 | fs.unlinkSync(`./${rand1}`) 1197 | ichi.sendMessage(from, { video: { url: data.result }}, { quoted: msg }) 1198 | 1199 | })*/ 1200 | } 1201 | break; 1202 | case prefix+"stickernobg": 1203 | case prefix+"snobg": 1204 | if (isImage || isQuotedImage) { 1205 | await adReply( 1206 | ind.wait(), 1207 | "Sticker", 1208 | `~> Request By ${pushname}`, 1209 | msg 1210 | ); 1211 | let file = await downloadAndSaveMediaMessage( 1212 | "image", 1213 | "temp/" + sender + ".png" 1214 | ); 1215 | const ngcgnchnhcjj = await snobg(file) 1216 | ichi.sendMessage(from, {sticker: ngcgnchnhcjj}, {quoted: msg}) 1217 | } else { 1218 | textImg("Hanya Bisa Menggunakan Gambar!") 1219 | } 1220 | 1221 | 1222 | break 1223 | case prefix + "sticker": 1224 | case prefix + "stiker": 1225 | case prefix + "s": 1226 | if (isImage || isQuotedImage) { 1227 | await adReply( 1228 | ind.wait(), 1229 | "Sticker", 1230 | `~> Request By ${pushname}`, 1231 | msg 1232 | ); 1233 | let file = await downloadAndSaveMediaMessage( 1234 | "image", 1235 | "temp/" + sender + ".png" 1236 | ); 1237 | let sticker = new Sticker(file, { 1238 | pack: stickerInfo.pack, // The pack name 1239 | author: stickerInfo.author, // The author name 1240 | type: StickerTypes.FULL, // The sticker type 1241 | categories: ["🤩", "🎉"], // The sticker category 1242 | id: "12345", // The sticker id 1243 | quality: 75, // The quality of the output file 1244 | background: "transparent", // The sticker background color (only for full stickers) 1245 | }); 1246 | 1247 | const buffer = await sticker.toBuffer(); 1248 | ichi.sendMessage(from, { sticker: buffer }, { quoted: msg }); 1249 | } else if (isVideo || isQuotedVideo) { 1250 | await adReply( 1251 | ind.wait(), 1252 | "Sticker", 1253 | `~> Request By ${pushname}`, 1254 | msg 1255 | ); 1256 | if ( 1257 | isQuotedVideo 1258 | ? msg.message.extendedTextMessage.contextInfo.quotedMessage 1259 | .videoMessage.seconds > 15 1260 | : msg.message.videoMessage.seconds > 15 1261 | ) 1262 | return textImg("too long duration, max 15 seconds"); 1263 | let file = await downloadAndSaveMediaMessage( 1264 | "video", 1265 | "./temp/" + sender + ".mp4" 1266 | ); 1267 | let ahsuhfkj = await convert("./temp/" + sender + ".mp4"); 1268 | 1269 | let sticker = new Sticker(fs.readFileSync(ahsuhfkj), { 1270 | pack: stickerInfo.pack, // The pack name 1271 | author: stickerInfo.author, // The author name 1272 | type: StickerTypes.FULL, // The sticker type 1273 | categories: ["🤩", "🎉"], // The sticker category 1274 | id: "12345", // The sticker id 1275 | quality: 75, // The quality of the output file 1276 | background: "transparent", // The sticker background color (only for full stickers) 1277 | }); 1278 | 1279 | const stikk = await sticker.toBuffer(); 1280 | 1281 | ichi.sendMessage(from, { sticker: stikk }, { quoted: msg }); 1282 | } else { 1283 | textImg("Reply Gambar Atau Video!"); 1284 | } 1285 | break; 1286 | 1287 | case prefix + "ocr": 1288 | try { 1289 | if (isImage) { 1290 | await adReply(ind.wait(), "OCR", `~> Request By ${pushname}`, msg); 1291 | let media = await downloadAndSaveMediaMessage( 1292 | "image", 1293 | "temp/ocr.png" 1294 | ); 1295 | const asjfhasjkfhasji = await tesseract.recognize(media, configocr); 1296 | 1297 | textImg(asjfhasjkfhasji); 1298 | } else if (isQuotedImage) { 1299 | await adReply(ind.wait(), "OCR", `~> Request By ${pushname}`, msg); 1300 | let media = await downloadAndSaveMediaMessage( 1301 | "image", 1302 | "temp/ocr.png" 1303 | ); 1304 | const asjfhasjkfhasjia = await tesseract.recognize( 1305 | media, 1306 | configocr 1307 | ); 1308 | 1309 | textImg(asjfhasjkfhasjia); 1310 | } 1311 | } catch (err) { 1312 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1313 | } 1314 | break; 1315 | //Maker Menu 1316 | case prefix + "carbon": 1317 | case prefix + "code": 1318 | if (!q) return textImg(ind.wrongFormat(prefix)); 1319 | await adReply( 1320 | ind.wait(), 1321 | "Carbon Now-Sh", 1322 | `~> Request By ${pushname}`, 1323 | msg 1324 | ); 1325 | try { 1326 | const carbon = new Carbon.createCarbon() 1327 | .setCode(q) 1328 | .setBackgroundColor("#1b3648"); 1329 | 1330 | const bufferr = await Carbon.generateCarbon(carbon); 1331 | ichi.sendMessage(from, { image: bufferr }, { quoted: msg }); 1332 | } catch (err) { 1333 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1334 | } 1335 | 1336 | break; 1337 | 1338 | // Downloader Menu 1339 | 1340 | case prefix + "tiktok": 1341 | case prefix + "tik": 1342 | case prefix + "tt": 1343 | case prefix + "ttdl": 1344 | if (!q) return textImg(ind.wrongFormat(prefix)); 1345 | if (!isUrl) return textImg(ind.noUrl()); 1346 | await adReply(ind.wait(), "Tiktok", `~> Request By ${pushname}`, msg); 1347 | try { 1348 | const gettt = await tikitoko(q) 1349 | //sendFileFromUrl(from, gettt, `*Request By:* ${pushname}`, msg); 1350 | await ichi.sendMessage(from, {video: {url: gettt}, caption: `*Request By:* ${pushname}`}) 1351 | } catch (err) { 1352 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1353 | } 1354 | break; 1355 | 1356 | case prefix + "ytmp3": 1357 | case prefix + "mp3": 1358 | if (!q) return textImg(ind.wrongFormat(prefix)); 1359 | if (!isUrl) return textImg(ind.noUrl()); 1360 | await adReply( 1361 | ind.wait(), 1362 | "Youtube Mp3", 1363 | `~> Request By ${pushname}`, 1364 | msg 1365 | ); 1366 | try { 1367 | const gmp3 = await yt(q); 1368 | const {data: datmp3} = await axios.get(gmp3.url, {responseType: "arraybuffer"}) 1369 | await fs.writeFileSync("ytmp3.mp4", datmp3) 1370 | let sifugtgfrasdjkfhsdj = `┌──「 *YTMP3* 」 1371 | │ 1372 | ├ *Title:* ${gmp3.title} 1373 | ├ *Size:* ${gmp3.size} 1374 | │ 1375 | └──「 *AISHA* 」`; 1376 | sendFileFromUrl(from, gmp3.thumb, sifugtgfrasdjkfhsdj, msg); 1377 | ichi.sendMessage(from, {audio: fs.readFileSync("ytmp3.mp4"), mimetype: "audio/mp4"}, {quoted: msg}) 1378 | /*await exec("ffmpeg -i ytmp3.mp4 ytmp3.mp3", (err, stdout) => { 1379 | if (err) return textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1380 | if (stdout) return 1381 | 1382 | });*/ 1383 | 1384 | } catch (err) { 1385 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1386 | } 1387 | 1388 | break; 1389 | 1390 | case prefix + "ytmp4": 1391 | case prefix + "mp4": 1392 | if (!q) return textImg(ind.wrongFormat(prefix)); 1393 | if (!isUrl) return textImg(ind.noUrl()); 1394 | await adReply( 1395 | ind.wait(), 1396 | "Youtube Mp4", 1397 | `~> Request By ${pushname}`, 1398 | msg 1399 | ); 1400 | try { 1401 | const gmp4 = await yt(q); 1402 | let asjdghfashgfashgf = `┌──「 *YTMP4* 」 1403 | │ 1404 | ├ *Title:* ${gmp4.title} 1405 | ├ *Size:* ${gmp4.size} 1406 | │ 1407 | └──「 *AISHA* 」`; 1408 | sendFileFromUrl(from, gmp4.thumb, asjdghfashgfashgf, msg); 1409 | sendFileFromUrl(from, gmp4.url, asjdghfashgfashgf, msg); 1410 | } catch (err) { 1411 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1412 | } 1413 | 1414 | 1415 | break; 1416 | 1417 | case prefix + "yts": 1418 | case prefix + "ytsearch": 1419 | if (!q) return textImg(ind.wrongFormat(prefix)); 1420 | await adReply( 1421 | ind.wait(), 1422 | "Youtube Search", 1423 | `~> Request By ${pushname}`, 1424 | msg 1425 | ); 1426 | try { 1427 | const getyts = await yts(q); 1428 | let afhasuyduytsduyt = `┌──「 *YT SEARCH* 」\n│\n`; 1429 | 1430 | for (i of getyts.all) { 1431 | afhasuyduytsduyt += `├ *Title:* ${i.title}\n`; 1432 | afhasuyduytsduyt += `├ *Url* ${i.url}\n│\n`; 1433 | } 1434 | afhasuyduytsduyt += "└──「 *ICHIZZA* 」"; 1435 | sendFileFromUrl(from, getyts.all[0].image, afhasuyduytsduyt); 1436 | } catch (err) { 1437 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1438 | } 1439 | break; 1440 | 1441 | case prefix + "play": 1442 | case prefix + "ytplay": 1443 | if (!q) return textImg(ind.wrongFormat(prefix)); 1444 | await adReply( 1445 | ind.wait(), 1446 | "Youtube Play", 1447 | `~> Request By ${pushname}`, 1448 | msg 1449 | ); 1450 | try { 1451 | const waitget = await yts(q); 1452 | const glink = await yt(waitget.all[0].url); 1453 | const {data: datm} = await axios.get(glink.url, {responseType: "arraybuffer"}) 1454 | await fs.writeFileSync("temp/"+"ytmp3.mp4", datm) 1455 | 1456 | let ashgasfgashfash = `┌──「 *PLAY* 」 1457 | │ 1458 | ├ *Title:* ${glink.title} 1459 | ├ *Size:* ${glink.size} 1460 | │ 1461 | └──「 *AISHA* 」`; 1462 | 1463 | await sendFileFromUrl(from, glink.thumb, ashgasfgashfash, msg); 1464 | ichi.sendMessage(from, {audio: fs.readFileSync("temp/"+"ytmp3.mp4"), mimetype: "audio/mp4"}, {quoted: msg}) 1465 | fs.unlinkSync("temp/ytmp3.mp4") 1466 | } catch (err) { 1467 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1468 | } 1469 | 1470 | 1471 | break; 1472 | 1473 | case prefix + "fb": 1474 | case prefix + "facebook": 1475 | if (!q) return textImg(ind.wrongFormat(prefix)); 1476 | if (!isUrl) return textImg(ind.noUrl()); 1477 | await adReply(ind.wait(), "Facebook", `~> Request By ${pushname}`, msg); 1478 | try { 1479 | const getfb = await fb2(q) 1480 | let abdvhjasdashjh = `*Request By:* ${pushname}` 1481 | sendFileFromUrl(from, getfb.url[1].url, abdvhjasdashjh, msg); 1482 | } catch (err) { 1483 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1484 | } 1485 | 1486 | break; 1487 | 1488 | case prefix + "twitter": 1489 | case prefix + "twiter": 1490 | case prefix + "twt": 1491 | if (!q) return textImg(ind.wrongFormat(prefix)); 1492 | if (!isUrl) return textImg(ind.noUrl()); 1493 | await adReply(ind.wait(), "Twitter", `~> Request By ${pushname}`, msg); 1494 | try { 1495 | const gettwt = await xfar.Twitter(q); 1496 | 1497 | sendFileFromUrl(from, gettwt.medias[1].url, txt, msg); 1498 | } catch (err) { 1499 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1500 | } 1501 | 1502 | break; 1503 | 1504 | case prefix + "ig": 1505 | case prefix + "igdl": 1506 | case prefix + "instagram": 1507 | if (!q) return textImg(ind.wrongFormat(prefix)); 1508 | if (!isUrl) return textImg(ind.noUrl()); 1509 | await adReply( 1510 | ind.wait(), 1511 | "Instagram ", 1512 | `~> Request By ${pushname}`, 1513 | msg 1514 | ); 1515 | try { 1516 | const getig = await instagram(q); 1517 | let gasdfghasfghasfy = `┌──「 *INSTAGRAM* 」 1518 | ├ *Request By:* ${pushname} 1519 | └──「 *ICHIZZA* 」`; 1520 | 1521 | for (i of getig.data) { 1522 | if (i.type == "video") { 1523 | ichi.sendMessage( 1524 | from, 1525 | { video: { url: i.url }, caption: gasdfghasfghasfy }, 1526 | { quoted: msg } 1527 | ); 1528 | } else { 1529 | ichi.sendMessage( 1530 | from, 1531 | { image: { url: i.url }, caption: gasdfghasfghasfy }, 1532 | { quoted: msg } 1533 | ); 1534 | } 1535 | } 1536 | } catch (err) { 1537 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1538 | } 1539 | 1540 | break; 1541 | 1542 | case prefix + "tr": 1543 | case prefix + "translate": 1544 | if (!q) return textImg(ind.wrongFormat(prefix)); 1545 | await adReply( 1546 | ind.wait(), 1547 | "Translate", 1548 | `~> Request By ${pushname}`, 1549 | msg 1550 | ); 1551 | try { 1552 | const trs = await translate(q.slice(2), { to: q.split(" ")[0] }); 1553 | textImg(trs); 1554 | } catch (err) { 1555 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1556 | } 1557 | 1558 | break; 1559 | 1560 | case prefix + "gempa": 1561 | await adReply( 1562 | ind.wait(), 1563 | "BMKG Gempa", 1564 | `~> Request By ${pushname}`, 1565 | msg 1566 | ); 1567 | try { 1568 | const { data } = await axios.get( 1569 | "https://data.bmkg.go.id/DataMKG/TEWS/autogempa.json" 1570 | ); 1571 | let asbnfvashfgyjas = `┌──「 *G E M P A* 」 1572 | │ 1573 | ├ *TimeStamp:* ${data.Infogempa.gempa.Tanggal} 1574 | ├ *Time:* ${data.Infogempa.gempa.Jam} 1575 | ├ *Coordinates:* ${data.Infogempa.gempa.Coordinates} 1576 | ├ *Magnitude:* ${data.Infogempa.gempa.Magnitude} 1577 | ├ *Depth:* ${data.Infogempa.gempa.Kedalaman} 1578 | ├ *Region:* ${data.Infogempa.gempa.Wilayah} 1579 | ├ *Potention:* ${data.Infogempa.gempa.Potensi} 1580 | ├ *Effect:* ${data.Infogempa.gempa.Dirasakan} 1581 | │ 1582 | └──「 *ICHIZZA* 」 `; 1583 | 1584 | sendFileFromUrl( 1585 | from, 1586 | "https://data.bmkg.go.id/DataMKG/TEWS/" + 1587 | data.Infogempa.gempa.Shakemap, 1588 | asbnfvashfgyjas 1589 | ); 1590 | } catch (err) { 1591 | textImg(ind.err(chats.split(" ")[0].split(prefix)[1], err)); 1592 | } 1593 | 1594 | break; 1595 | //---------------------------------------------------------------------------------------------------- 1596 | } 1597 | } catch (err) { 1598 | console.log(color("[ERR]", "red"), color(err, "cyan")); 1599 | } 1600 | }; 1601 | --------------------------------------------------------------------------------