├── 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 |
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 |
--------------------------------------------------------------------------------