├── Dockerfile
├── LICENSE
├── Procfile
├── README.md
├── app.json
├── config.js
├── database.json
├── docker-compose.yml
├── handler.js
├── index.js
├── json
└── emoji.json
├── lib
├── canvas.js
├── cloudDBAdapter.js
├── converter.js
├── database.js
├── exif.js
├── gdrive.js
├── jagokata.js
├── levelling.js
├── logs.js
├── misi.json
├── mongoDB.js
├── print.js
├── scrape.js
├── simple.js
├── sticker.js
├── store.js
├── store2.js
├── tictactoe.d.ts
├── tictactoe.js
├── uploadFile.js
├── uploadImage.js
├── util.js
├── webp.js
├── webp2mp4.js
├── welcome.js
└── y2mate.js
├── main.js
├── media
├── elaina.png
├── elaina2.png
├── elaina3.png
├── elaina4.png
├── elaina5.png
├── elaina6.png
├── elaina7.png
└── elaina8.png
├── mp3
├── Bot.opus
├── little-girl-sayingtalking-hello-sound-effectcute-sound-effectsadorable.opus
├── sholawat.opus
├── soundultah.mp3
└── waalaikumsalam.ogg
├── package.json
├── plugins
├── Ayat-kursi.js
├── Credits By Wh Mods Dev
├── HD.js
├── HUUUUUU.js
├── Kata_anime.js
├── Niatsholat.js
├── Waalaikumsalam.js
├── _-role.js
├── _allfake.js
├── _anticulik.js
├── _antilink.js
├── _antispam.js
├── _antitoxic.js
├── _autoban.js
├── _autobio.js
├── _autolevelup.js
├── _autoreact.js
├── _autoreact2.js
├── _autoresponder.js
├── _autovn.js
├── _cmdWithMedia.js
├── _durability.js
├── _expired.js
├── _health.js
├── _premium.js
├── _res.js
├── _simi.js
├── _templateResponse.js
├── afk-_afk.js
├── afk-afk.js
├── all-soundkanemenu.js
├── all-soundmenu.js
├── alquran.js
├── anime-fanart.js
├── anime-husbu.js
├── anime-info.js
├── anime-jahy.js
├── anime-kanna.js
├── anime-kusonime.js
├── anime-link.js
├── anime-loli.js
├── anime-lolice.js
├── anime-megumin.js
├── anime-neko.js
├── anime-otakudesu.js
├── anime-ppcp.js
├── anime-random.js
├── anime-waifu.js
├── anonymous-sendkontak.js
├── anonymous_chat.js
├── anonymous_chat_.js.js
├── antivirtex.js
├── antivirtext.js
├── asmaulhusna.js
├── asupan-loli.js
├── audio-effect.js
├── audio-tomp3.js
├── audio-toptt.js
├── bank-cek.js
├── bank-nabung.js
├── bank-tarik.js
├── bot.js
├── broadcast.js
├── broadcastchats.js
├── broadcastgroups.js
├── cmd-del.js
├── cmd-list.js
├── cmd-lock.js
├── cmd-set.js
├── cnnnews.js
├── creator.js
├── creator2.js
├── delete-pesan-orang-lain.js
├── donasi.js
├── download-tiktok-audio.js
├── downloader-aio.js
├── downloader-apk.js
├── downloader-facebook.js
├── downloader-facebook2.js
├── downloader-gitclone.js
├── downloader-ig.js
├── downloader-igstalk.js
├── downloader-joox.js
├── downloader-mediafire.js
├── downloader-pinterest.js
├── downloader-pixiv.js
├── downloader-savefrom.js
├── downloader-sfile.js
├── downloader-tiktok.js
├── downloader-twitter.js
├── downloader-ytdl.js
├── downloader-zippyshare.js
├── enable.js
├── exp-ceksn.js
├── exp-daftar.js
├── exp-my.js
├── exp-tomoney.js
├── exp-unreg.js
├── expired-cek.js
├── expired-del.js
├── expired-set.js
├── fun-alay.js
├── fun-apakah.js
├── fun-apakah2.js
├── fun-bokep.js
├── fun-darkjoke.js
├── fun-generate_nama.js
├── fun-generate_purba.js
├── fun-how.js
├── fun-jadian.js
├── fun-kapankah.js
├── fun-kapankah2.js
├── fun-kerangajaib.js
├── fun-nomorhoki.js
├── fun-pick.js
├── fun-plusplus.js
├── fun-simi.js
├── fun-taugasi.js
├── game-asahotak.js
├── game-asahotak_ans.js
├── game-asahotak_hint.js
├── game-caklontong.js
├── game-caklontong_ans.js
├── game-caklontong_hint.js
├── game-family100.js
├── game-family100_answer.js
├── game-gombal-ans.js
├── game-gombal-hint.js
├── game-gombal.js
├── game-iqtest.js
├── game-lengkapikalimat-ans.js
├── game-lengkapikalimat-hint.js
├── game-lengkapikalimat.js
├── game-math.js
├── game-math_answer.js
├── game-siapakahaku.js
├── game-siapakahaku_ans.js
├── game-siapakahaku_hint.js
├── game-slot.js
├── game-suit.js
├── game-suitpvp.js
├── game-suitpvp_ans.js
├── game-susunkata.js
├── game-susunkata_ans.js
├── game-susunkata_hint.js
├── game-tebakan-ans.js
├── game-tebakan-hint.js
├── game-tebakan.js
├── game-tebakanjime-ans.js
├── game-tebakanjime-hint.js
├── game-tebakanjime.js
├── game-tebakbendera.js
├── game-tebakbendera_ans.js
├── game-tebakbendera_hint.js
├── game-tebakchara-ans.js
├── game-tebakchara-hint.js
├── game-tebakchara.js
├── game-tebakgambar.js
├── game-tebakgambar_answer.js
├── game-tebakgambar_hint.js
├── game-tebakgame-ans.js
├── game-tebakgame-hint.js
├── game-tebakgame.js
├── game-tebakjenaka-ans.js
├── game-tebakjenaka-hint.js
├── game-tebakjenaka.js
├── game-tebakkabupaten.js
├── game-tebakkabupaten_ans.js
├── game-tebakkabupaten_hint.js
├── game-tebakkalimat-ans.js
├── game-tebakkalimat-hint.js
├── game-tebakkalimat.js
├── game-tebakkimia.js
├── game-tebakkimia_ans.js
├── game-tebakkimia_hint.js
├── game-tebaklagu.js
├── game-tebaklagu_ans.js
├── game-tebaklagu_hint.js
├── game-tebaklirik.js
├── game-tebaklirik_ans.js
├── game-tebaklirik_hint.js
├── game-tebaklogo-ans.js
├── game-tebaklogo-hint.js
├── game-tebaklogo.js
├── game-tebaksiapa-ans.js
├── game-tebaksiapa-hint.js
├── game-tebaksiapa.js
├── game-tebakumur.js
├── game-tekateki.js
├── game-tekateki_ans.js
├── game-tekateki_hint.js
├── game-war-attack.js
├── game-war.js
├── games-_tictactoe.js
├── games-tebakkata.js
├── games-tebakkata_ans.js
├── games-tebakkata_hint.js
├── games-tictactoe.js
├── get-icons.js
├── github-stalk.js
├── google.js
├── group-add.js
├── group-demote.js
├── group-info.js
├── group-kick.js
├── group-link.js
├── group-pengumuman.js
├── group-promote.js
├── group-setname-gc.js
├── group-setppgc.js
├── group-settings.js
├── group-tagall.js
├── group-tagme.js
├── hello.js
├── host-bcgcb.js
├── image-gimage.js
├── image-pinterest.js
├── image-wallpaper.js
├── info-boosting.js
├── info-grouplist.js
├── info-paystore.js
├── info-report.js
├── info-runtime.js
├── info-runtime1.js
├── info-runtime2.js
├── info-script.js
├── info-speedtest.js
├── info-statserver.js
├── info-totalfitur.js
├── info-tqto.js
├── internet-blackpink.js
├── internet-brainly.js
├── internet-bts.js
├── internet-cecan-random.js
├── internet-cecan-ukhty.js
├── internet-cuaca.js
├── internet-darkjokes.js
├── internet-exo.js
├── internet-fetch.js
├── internet-ghsearch.js
├── internet-jadwalbola.js
├── internet-kbbi.js
├── internet-manga.js
├── internet-memeindo.js
├── internet-randommeme.js
├── internet-ssweb.js
├── intro.js
├── jadwalsholat.js
├── kodenuklir.js
├── kompasnews.js
├── levelup.js
├── logo-kaneki.js
├── logo-loli.js
├── logo-neko.js
├── logo-rem.js
├── logo-sadboy.js
├── lyrics.js
├── maker-ephoto360-part2.js
├── maker-ephoto360-part3.js
├── maker-ephoto360.js
├── menpes-ans.js
├── menpes.js
├── menu.js
├── motivasi.js
├── nsfw-nhentai.js
├── nulis-hartatahta..js
├── nulis-magernulis.js
├── nulis-nulis.js
├── nulis-nulis2.js
├── owner-add.js
├── owner-addowner.js
├── owner-addprem.js
├── owner-backup.js
├── owner-balas.js
├── owner-banchat.js
├── owner-banuser.js
├── owner-cleartmp.js
├── owner-delprem.js
├── owner-deluser.js
├── owner-demote.js
├── owner-df.js
├── owner-exec.js
├── owner-exec2.js
├── owner-fiturplus.js
├── owner-getdb.js
├── owner-getfile.js
├── owner-getplugins.js
├── owner-gp.js
├── owner-join.js
├── owner-kick.js
├── owner-leavegc.js
├── owner-listprem.js
├── owner-order.js
├── owner-promote.js
├── owner-restart.js
├── owner-sesi.js
├── owner-setbotpp.js
├── owner-sf.js
├── owner-simulate.js
├── owner-tagall.js
├── owner-unbanchat.js
├── owner-unbanuser.js
├── ppcouple.js
├── prem-nsfw.js
├── quotes-bacot.js
├── quotes-bucin.js
├── quotes-dare.js
├── quotes-islam.js
├── quotes-katabijak.js
├── quotes-pantun.js
├── quotes-truth.js
├── renungan.js
├── rpg-adventure.js
├── rpg-bansos.js
├── rpg-berburu.js
├── rpg-berdagang.js
├── rpg-berkebon.js
├── rpg-bet.js
├── rpg-bonus.js
├── rpg-buah.js
├── rpg-build.js
├── rpg-casino.js
├── rpg-cek.js
├── rpg-chop.js
├── rpg-collect.js
├── rpg-cook.js
├── rpg-cooldown.js
├── rpg-craft.js
├── rpg-cupon.js
├── rpg-daily.js
├── rpg-duel.js
├── rpg-dungeon.js
├── rpg-eat.js
├── rpg-feed.js
├── rpg-fight-centaur.js
├── rpg-fight-griffin.js
├── rpg-fight-kucing.js
├── rpg-fight-kyubi.js
├── rpg-fight-naga.js
├── rpg-fight-phonix.js
├── rpg-freegift.js
├── rpg-gajian.js
├── rpg-heal.js
├── rpg-hourly.js
├── rpg-hunt.js
├── rpg-inventory.js
├── rpg-kandang.js
├── rpg-kerja.js
├── rpg-koboy.js
├── rpg-kolam.js
├── rpg-leaderboard.js
├── rpg-maling.js
├── rpg-mancing.js
├── rpg-mentransfer.js
├── rpg-meracik.js
├── rpg-merampok.js
├── rpg-mining.js
├── rpg-mission.js
├── rpg-monthly.js
├── rpg-mulung.js
├── rpg-nabung.js
├── rpg-nambang.js
├── rpg-nebang.js
├── rpg-ngewe.js
├── rpg-ngocok.js
├── rpg-nguli.js
├── rpg-ojek.js
├── rpg-open-crate.js
├── rpg-open.js
├── rpg-pasar.js
├── rpg-petstore.js
├── rpg-pointxp.js
├── rpg-polisi.js
├── rpg-profile.js
├── rpg-ramuan.js
├── rpg-redeem.js
├── rpg-repair.js
├── rpg-rob.js
├── rpg-roket.js
├── rpg-role.js
├── rpg-shop.js
├── rpg-shopfish.js
├── rpg-shops.js
├── rpg-slect-skill.js
├── rpg-slot.js
├── rpg-tarik.js
├── rpg-taxy.js
├── rpg-toko.js
├── rpg-transfer.js
├── rpg-upgrade.js
├── rpg-use.js
├── rpg-weekly.js
├── rpg-work.js
├── search-joox.js
├── sholawat.js
├── smeme.js
├── sound-kane-1-24.js
├── sound120.js
├── sounds-new-1-119.js
├── speed.js
├── sticker-attp.js
├── sticker-bonk.js
├── sticker-colong.js
├── sticker-full.js
├── sticker-getexif.js
├── sticker-meme.js
├── sticker-sticker.js
├── sticker-stickerLLT.js
├── sticker-toimg.js
├── sticker-tovideo.js
├── sticker-ttp.js
├── sticker-wm.js
├── store-addlist.js
├── store-dellist.js
├── store-list.js
├── telegram-sticker.js
├── tes123.js
├── tool-apkinfo.js
├── tool-apksearch.js
├── tool-blur.js
├── tool-calc.js
├── tool-carigroup.js
├── tool-cekapi.js
├── tool-chord.js
├── tool-delete.js
├── tool-emojimix-v2.js
├── tool-emojimix.js
├── tool-fetch.js
├── tool-hlh.js
├── tool-jadwaltv.js
├── tool-nobg.js
├── tool-ocr.js
├── tool-qrcode.js
├── tool-react.js
├── tool-readmore.js
├── tool-readviewonce.js
├── tool-sendquote.js
├── tool-shorturl.js
├── tool-spamwa.js
├── tool-styletext.js
├── tool-tourl.js
├── tool-tovideo.js
├── tool-translate.js
├── tool-tts.js
├── tool-webcheck.js
├── tool-whatmusic.js
├── wallq.js
├── wikipedia.js
├── xp-profile.js
├── youtube-play.js
├── youtube-yta.js
├── youtube-yts.js
├── youtube-ytv.js
└── zens-virus.js
├── replit.nix
├── server.js
├── session.data.json
├── speed.py
├── src
├── Aesthetic
│ ├── .file
│ ├── Aesthetic_000.jpeg
│ ├── Aesthetic_001.jpg
│ └── Aesthetic_002.jpg
├── LICENSE
├── avatar_contact.png
├── font
│ ├── .file
│ ├── 212BabyGirl.otf
│ ├── 212LeahleeSans.ttf
│ ├── 99HandWritting.ttf
│ ├── ACallingFontDby7NTypes.otf
│ ├── ACasualHandwrittenPenNoncommercial.ttf
│ ├── ADayinSeptember.otf
│ ├── ASMelanieHandwritting.ttf
│ ├── Alittlesunshine.ttf
│ ├── And-This-Happened.ttf
│ ├── AvenirCondensedHand.ttf
│ ├── Avocados.ttf
│ ├── BabyDoll.ttf
│ ├── BattleOfKingsRegular.ttf
│ ├── BrayNotes.ttf
│ ├── Convered-By-Your-Grace.ttf
│ ├── Edoms-Handwritting-Normal.ttf
│ ├── Futura Bold Italic font.ttf
│ ├── Futura Bold font.ttf
│ ├── Futura Book Italic font.ttf
│ ├── Futura Book font.ttf
│ ├── Futura Extra Black font.ttf
│ ├── Futura Heavy Italic font.ttf
│ ├── Futura Heavy font.ttf
│ ├── Futura Light Italic font.ttf
│ ├── Futura Light font.ttf
│ ├── Futura Medium Italic font.ttf
│ ├── Futura XBlk BT.ttf
│ ├── Futura-CondensedLight.otf
│ ├── GloriaHallelujah-Regular.ttf
│ ├── HandwritingCR-2.ttf
│ ├── Kempton-Demo-Handwritting.ttf
│ ├── MyHandsareHoldingYou.ttf
│ ├── My_handwriting.ttf
│ ├── Nadeznas-Handwritting.ttf
│ ├── Roboto-Black.ttf
│ ├── Roboto-BlackItalic.ttf
│ ├── Roboto-Bold.ttf
│ ├── Roboto-BoldItalic.ttf
│ ├── Roboto-Italic.ttf
│ ├── Roboto-Light.ttf
│ ├── Roboto-LightItalic.ttf
│ ├── Roboto-Medium.ttf
│ ├── Roboto-MediumItalic.ttf
│ ├── Roboto-Regular.ttf
│ ├── Roboto-Thin.ttf
│ ├── Roboto-ThinItalic.ttf
│ ├── ShadowsIntoLight-Regular.ttf
│ ├── Zahraaa.ttf
│ ├── angelina.ttf
│ ├── futur.ttf
│ ├── futura light bt.ttf
│ ├── futura medium bt.ttf
│ ├── futura medium condensed bt.ttf
│ ├── level_c.otf
│ ├── michellehandwritting.ttf
│ └── texts.otf
├── jadwaltv.json
├── kertas
│ ├── .file
│ └── magernulis1.jpg
├── level_c.otf
├── texts.otf
└── welcome.svg
├── sticker
├── ress1.webp
├── ress2.webp
├── ress3.webp
├── ress4.webp
├── ress5.webp
├── ress6.webp
├── ress7.webp
├── ress8.webp
├── ress9.webp
├── ynkts1.webp
├── ynkts2.webp
├── ynkts3.webp
├── ynkts4.webp
├── ynkts5.webp
├── ynkts6.webp
├── ynkts7.webp
├── ynkts8.webp
└── ynkts9.webp
├── test.js
├── thumbnail.jpg
└── views
├── img
├── dark
│ ├── .file
│ ├── balloon_centered_normal.9.png
│ ├── balloon_centered_pressed.9.png
│ ├── balloon_centered_shadow.9.png
│ ├── balloon_incoming_frame.9.png
│ ├── balloon_incoming_normal.9.png
│ ├── balloon_incoming_normal_ext.9.png
│ ├── balloon_incoming_normal_stkr.9.png
│ ├── balloon_incoming_pressed.9.png
│ ├── balloon_incoming_pressed_ext.9.png
│ ├── balloon_live_location_incoming_frame.9.png
│ ├── balloon_live_location_outgoing_frame.9.png
│ ├── balloon_outgoing_frame.9.png
│ ├── balloon_outgoing_normal.9.png
│ ├── balloon_outgoing_normal_ext.9.png
│ ├── balloon_outgoing_normal_stkr.9.png
│ ├── balloon_outgoing_pressed.9.png
│ └── balloon_outgoing_pressed_ext.9.png
└── light
│ ├── .file
│ ├── balloon_centered_normal.9.png
│ ├── balloon_centered_pressed.9.png
│ ├── balloon_centered_shadow.9.png
│ ├── balloon_incoming_frame.9.png
│ ├── balloon_incoming_normal.9.png
│ ├── balloon_incoming_normal_ext.9.png
│ ├── balloon_incoming_normal_stkr.9.png
│ ├── balloon_incoming_pressed.9.png
│ ├── balloon_incoming_pressed_ext.9.png
│ ├── balloon_live_location_incoming_frame.9.png
│ ├── balloon_live_location_outgoing_frame.9.png
│ ├── balloon_outgoing_frame.9.png
│ ├── balloon_outgoing_normal.9.png
│ ├── balloon_outgoing_normal_ext.9.png
│ ├── balloon_outgoing_normal_stkr.9.png
│ ├── balloon_outgoing_pressed.9.png
│ └── balloon_outgoing_pressed_ext.9.png
├── index.html
├── index.js
└── style.css
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM node:lts-buster
2 |
3 | RUN apt-get update && \
4 | apt-get install -y \
5 | ffmpeg \
6 | imagemagick \
7 | webp && \
8 | apt-get upgrade -y && \
9 | rm -rf /var/lib/apt/lists/*
10 |
11 | COPY package.json .
12 |
13 | RUN npm install && npm install qrcode-terminal
14 |
15 | COPY . .
16 |
17 | EXPOSE 5000
18 |
19 | CMD ["node", "index.js"]
20 |
--------------------------------------------------------------------------------
/Procfile:
--------------------------------------------------------------------------------
1 | worker: npm i -g pm2 && pm2 start index.js && pm2 save && pm2 logs
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Albedo BOT
2 | SC ORI WH MODS DEV
3 | RECODE ZENS
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "games-wabot",
3 | "description": "Customizable WhatsApp Bot",
4 | "repository": "https://github.com/BochilGaming/games-wabot",
5 | "logo": "https://node-js-sample.herokuapp.com/node.png",
6 | "keywords": ["bot", "whatsapp", "whatsapp-bot", "rpg", "games-wabot", "epic rpg"]
7 | }
8 |
--------------------------------------------------------------------------------
/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "3.9"
2 | services:
3 | web:
4 | build: .
5 | ports:
6 | - "8000:5000"
7 | volumes:
8 | - .:/code
9 | - logvolume01:/var/log
10 | links:
11 | - redis
12 | redis:
13 | image: redis
14 | volumes:
15 | logvolume01: {}
--------------------------------------------------------------------------------
/lib/jagokata.js:
--------------------------------------------------------------------------------
1 | import cheerio from 'cheerio'
2 | import fetch from 'node-fetch'
3 |
4 | async function quotes(input) {
5 | return new Promise((resolve, reject) => {
6 | fetch('https://jagokata.com/kata-bijak/kata-' + input.replace(/\s/g, '_') + '.html?page=1')
7 | .then(res => res.text())
8 | .then(res => {
9 | const $ = cheerio.load(res)
10 | data = []
11 | $('div[id="main"]').find('ul[id="citatenrijen"] > li').each(function (index, element) {
12 | x = $(this).find('div[class="citatenlijst-auteur"] > a').text().trim()
13 | y = $(this).find('span[class="auteur-beschrijving"]').text().trim()
14 | z = $(element).find('q[class="fbquote"]').text().trim()
15 | data.push({ author: x, bio: y, quote: z })
16 | })
17 | data.splice(2, 1)
18 | if (data.length == 0) return resolve({ creator: '@neoxr - Wildan Izzudin & @ariffb.id - Ariffb', status: false })
19 | resolve({ creator: '@neoxr - Wildan Izzudin & @ariffb.id - Ariffb', status: true, data })
20 | }).catch(reject)
21 | })
22 | }
23 |
24 | export {
25 | quotes
26 | }
27 |
--------------------------------------------------------------------------------
/lib/logs.js:
--------------------------------------------------------------------------------
1 | let stdouts = []
2 | export default (maxLength = 200) => {
3 | let oldWrite = process.stdout.write.bind(process.stdout)
4 | module.exports.disable = () => {
5 | module.exports.isModified = false
6 | return process.stdout.write = oldWrite
7 | }
8 | process.stdout.write = (chunk, encoding, callback) => {
9 | stdouts.push(Buffer.from(chunk, encoding))
10 | oldWrite(chunk, encoding, callback)
11 | if (stdouts.length > maxLength) stdouts.shift()
12 | }
13 | module.exports.isModified = true
14 | return module.exports
15 | }
16 |
17 | export const isModified = false
18 | export function logs() { return Buffer.concat(stdouts)}
19 |
20 |
--------------------------------------------------------------------------------
/lib/tictactoe.d.ts:
--------------------------------------------------------------------------------
1 | export declare class TicTacToe {
2 | /* X PlayerName */
3 | playerX: string;
4 | /* Y PlayerName */
5 | playerY: string;
6 | /* X if true, Y if false */
7 | _currentTurn: boolean;
8 | _x: number;
9 | _y: number;
10 | _turns: number;
11 | constructor(playerX: string, playerY: string);
12 | get board(): number;
13 | turn(player, index: number): boolean;
14 | turn(player, x: number, y: number): boolean;
15 | }
16 |
--------------------------------------------------------------------------------
/lib/uploadImage.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch';
2 | import { FormData, Blob } from 'formdata-node';
3 | import { fileTypeFromBuffer } from 'file-type'
4 |
5 | /**
6 | * Upload image to telegra.ph
7 | * Supported mimetype:
8 | * - `image/jpeg`
9 | * - `image/jpg`
10 | * - `image/png`s
11 | * @param {Buffer} buffer Image Buffer
12 | * @return {Promise}
13 | */
14 | export default async buffer => {
15 | const { ext, mime } = await fileTypeFromBuffer(buffer)
16 | let form = new FormData()
17 | const blob = new Blob([buffer.toArrayBuffer()], { type: mime })
18 | form.append('file', blob, 'tmp.' + ext)
19 | let res = await fetch('https://telegra.ph/upload', {
20 | method: 'POST',
21 | body: form
22 | })
23 | let img = await res.json()
24 | if (img.error) throw img.error
25 | return 'https://telegra.ph' + img[0].src
26 | }
27 |
28 |
--------------------------------------------------------------------------------
/lib/util.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 |
3 | export const shortUrl = async (url) => {
4 | return await (await fetch(`https://tinyurl.com/api-create.php?url=${url}`)).text()
5 | }
6 |
--------------------------------------------------------------------------------
/media/elaina.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/media/elaina.png
--------------------------------------------------------------------------------
/media/elaina2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/media/elaina2.png
--------------------------------------------------------------------------------
/media/elaina3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/media/elaina3.png
--------------------------------------------------------------------------------
/media/elaina4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/media/elaina4.png
--------------------------------------------------------------------------------
/media/elaina5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/media/elaina5.png
--------------------------------------------------------------------------------
/media/elaina6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/media/elaina6.png
--------------------------------------------------------------------------------
/media/elaina7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/media/elaina7.png
--------------------------------------------------------------------------------
/media/elaina8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/media/elaina8.png
--------------------------------------------------------------------------------
/mp3/Bot.opus:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/mp3/Bot.opus
--------------------------------------------------------------------------------
/mp3/little-girl-sayingtalking-hello-sound-effectcute-sound-effectsadorable.opus:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/mp3/little-girl-sayingtalking-hello-sound-effectcute-sound-effectsadorable.opus
--------------------------------------------------------------------------------
/mp3/sholawat.opus:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/mp3/sholawat.opus
--------------------------------------------------------------------------------
/mp3/soundultah.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/mp3/soundultah.mp3
--------------------------------------------------------------------------------
/mp3/waalaikumsalam.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/mp3/waalaikumsalam.ogg
--------------------------------------------------------------------------------
/plugins/Credits By Wh Mods Dev:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/plugins/HD.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | import FormData from 'form-data'
3 |
4 | let handler = async (m) => {
5 |
6 | try {
7 | await m.reply('Sedang membuat...')
8 | let q = m.quoted ? m.quoted : m
9 | let mime = (q.msg || q).mimetype || ''
10 | if (!mime) throw 'Fotonya Mana?'
11 | if (!/image\/(jpe?g|png)/.test(mime)) throw `Tipe ${mime} tidak didukung!`
12 | let img = await q.download()
13 | let body = new FormData
14 | body.append('image', img, 'image')
15 | let res = await fetch('http://max-image-resolution-enhancer.codait-prod-41208c73af8fca213512856c7a09db52-0000.us-east.containers.appdomain.cloud/model/predict', {
16 | method: 'POST',
17 | body
18 | })
19 | if (res.status !== 200) throw await res.json()
20 | await conn.sendFile(m.chat, await res.buffer(), 'hd.jpg', 'Nihh,, Hade kan?', m)
21 | } catch (e) {
22 | m.reply('Ada yang Erorr!')
23 | }
24 | }
25 | handler.help = ['hd', 'enhance']
26 | handler.tags = ['tools']
27 | handler.command = /^(hd|enhance)$/i
28 |
29 | handler.limit = true
30 |
31 | export default handler
32 |
--------------------------------------------------------------------------------
/plugins/Kata_anime.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | let handler = async(m, { conn, text }) => {
3 | let res = await (await fetch('https://katanime.vercel.app/api/getrandom?limit=1'))
4 | if (!res.ok) throw await res.text()
5 | let json = await res.json()
6 | if(!json.result[0]) throw json
7 | let { indo, character, anime } = json.result[0]
8 | m.reply(`${indo}\n\n${character}\n${anime}`)
9 | }
10 | handler.help = ['katanime']
11 | handler.tags = ['internet']
12 | handler.command = /^(katanime|kataanime)$/i
13 |
14 | export default handler
15 |
--------------------------------------------------------------------------------
/plugins/_antispam.js:
--------------------------------------------------------------------------------
1 | export async function all(m) {
2 | if (!m.message)
3 | return
4 | this.spam = this.spam ? this.spam : {}
5 | if (m.sender in this.spam) {
6 | this.spam[m.sender].count++
7 | if (m.messageTimestamp.toNumber() - this.spam[m.sender].lastspam > 10) {
8 | if (this.spam[m.sender].count > 10) {
9 | //global.db.data.users[m.sender].banned = true
10 | m.reply('*Jangan Spam!!*')
11 | }
12 | this.spam[m.sender].count = 0
13 | this.spam[m.sender].lastspam = m.messageTimestamp.toNumber()
14 | }
15 | }
16 | else
17 | this.spam[m.sender] = {
18 | jid: m.sender,
19 | count: 0,
20 | lastspam: 0
21 | }
22 | }
--------------------------------------------------------------------------------
/plugins/_autoban.js:
--------------------------------------------------------------------------------
1 | let handler = m => m
2 |
3 | handler.before = async function (m) {
4 | if (m.sender.startsWith('212' || '212')) {
5 | global.db.data.users[m.sender].banned = true
6 | }
7 |
8 | if (m.sender.startsWith('265' || '265')) {
9 | global.db.data.users[m.sender].banned = true
10 | }
11 | }
12 |
13 | export default handler
14 |
--------------------------------------------------------------------------------
/plugins/_autobio.js:
--------------------------------------------------------------------------------
1 | let handler = m => m
2 | handler.all = async function (m) {
3 | let setting = global.db.data.settings[this.user.jid]
4 | let chat = global.db.data.chats[m.chat]
5 | if (chat.autoBio) {
6 | if (new Date() * 1 - setting.status > 1000) {
7 | let _uptime = process.uptime() * 1000
8 | let uptime = clockString(_uptime);
9 | let bio = `🚀 Aktif selama ${uptime}\n${htjava} Mode: ${global.opts['self'] ? 'Private' : setting.self ? 'Private' : global.opts['gconly'] ? 'Hanya Grup' : 'Publik'}\n${htjava} 🥀 By ${author}\n${cmenuf}`
10 | await this.updateProfileStatus(bio).catch(_ => _)
11 | setting.status = new Date() * 1
12 | }
13 | }
14 |
15 | }
16 | export default handler
17 | function clockString(ms) {
18 | let d = isNaN(ms) ? '--' : Math.floor(ms / 86400000)
19 | let h = isNaN(ms) ? '--' : Math.floor(ms / 3600000) % 24
20 | let m = isNaN(ms) ? '--' : Math.floor(ms / 60000) % 60
21 | let s = isNaN(ms) ? '--' : Math.floor(ms / 1000) % 60
22 | return [d, ' Hari ️', h, ' Jam ', m, ' Menit ', s, ' Detik '].map(v => v.toString().padStart(2, 0)).join('')
23 | }
24 |
--------------------------------------------------------------------------------
/plugins/_autolevelup.js:
--------------------------------------------------------------------------------
1 | import db from '../lib/database.js'
2 | import { canLevelUp } from '../lib/levelling.js'
3 |
4 | export function before(m) {
5 | let user = db.data.users[m.sender]
6 | if (!user.autolevelup)
7 | return !0
8 | let before = user.level * 1
9 | while (canLevelUp(user.level, user.exp, global.multiplier))
10 | user.level++
11 |
12 | if (before !== user.level) {
13 | user.role = global.rpg.role(user.level).name
14 | m.reply(`
15 | 🎉ᴄᴏɴɢʀᴀᴛᴜʟᴀᴛɪᴏɴs, ${this.getName(m.sender)} ʟᴇᴠᴇʟ ᴜᴩ﹗
16 | • 📉 ᴩʀᴇᴠɪᴏᴜs ʟᴇᴠᴇʟ : ${before}
17 | • 📈 ɴᴇᴡ ʟᴇᴠᴇʟ : ${user.level}
18 | • 🎎 ʀᴏʟᴇ : ${user.role}
19 | gunakan *.profile* untuk mengecek
20 | `.trim())
21 | }
22 | }
23 | export const disabled = true
24 |
--------------------------------------------------------------------------------
/plugins/_autoreact.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, text }) => {
2 |
3 | conn.sendMessage(m.chat, {
4 | react: {
5 | text: `${pickRandom(['😨','😅','😂','😳','😎', '🥵', '😱', '🐦', '🙄', '🐤','🗿','🐦','🤨','🥴','😐','👆','😔', '👀','👎'])}`,
6 | key: m.key,
7 | }})
8 |
9 | }
10 | handler.customPrefix = /(bile?k|ban?h|cum?|knt?l|y?|mmk|p|b(a|i)?c?(o|i)?(t|d)?|wibu|p(a)?nt(e)?k|pepe?k|owner)/i
11 | handler.command = new RegExp
12 |
13 | handler.mods = false
14 |
15 | export default handler
16 |
17 | function pickRandom(list) {
18 | return list[Math.floor(Math.random() * list.length)]
19 | }
20 |
--------------------------------------------------------------------------------
/plugins/_autoreact2.js:
--------------------------------------------------------------------------------
1 | import { readFileSync } from "fs"
2 |
3 | let handler = async (m, { conn, text }) => {
4 | let res = JSON.parse(readFileSync('./json/emoji.json'))
5 | let em = res.emoji
6 |
7 | conn.sendMessage(m.chat, {
8 | react: {
9 | text: em.getRandom(),
10 | key: m.key,
11 | }})
12 |
13 | }
14 | handler.customPrefix = /(bilek|laik|banh|nihh|tytyd|anjir|dek)/i
15 | handler.command = new RegExp
16 |
17 | handler.mods = false
18 |
19 | export default handler
20 |
21 | function pickRandom(list) {
22 | return list[Math.floor(Math.random() * list.length)]
23 | }
24 |
--------------------------------------------------------------------------------
/plugins/_autovn.js:
--------------------------------------------------------------------------------
1 |
2 | import fetch from 'node-fetch'
3 |
4 | export async function before(m, { isAdmin, isBotAdmin }) {
5 | if (m.isBaileys && m.fromMe)
6 | return !0
7 | if (!m.isGroup) return !1
8 | let chat = global.db.data.chats[m.chat]
9 | let bot = global.db.data.settings[this.user.jid] || {}
10 | if (chat.autoVn) {
11 | let sim = await fetch(`https://api.simsimi.net/v2/?text=${m.text}&lc=id`)
12 | let res = await sim.json()
13 | let tts = `https://hadi-api.herokuapp.com/api/tts?language=id&text=${res.success}`
14 | conn.sendMessage(m.chat, { audio: { url: tts }, mimetype: 'audio/mp4' })
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/plugins/_cmdWithMedia.js:
--------------------------------------------------------------------------------
1 | const {
2 | proto,
3 | generateWAMessage,
4 | areJidsSameUser
5 | } = (await import('@adiwajshing/baileys')).default
6 |
7 | export async function all(m, chatUpdate) {
8 | if (m.isBaileys) return
9 | if (!m.message) return
10 | if (!m.msg.fileSha256) return
11 | if (!(Buffer.from(m.msg.fileSha256).toString('base64') in global.db.data.sticker)) return
12 |
13 | let hash = global.db.data.sticker[Buffer.from(m.msg.fileSha256).toString('base64')]
14 | let { text, mentionedJid } = hash
15 | let messages = await generateWAMessage(m.chat, { text: text, mentions: mentionedJid }, {
16 | userJid: this.user.id,
17 | quoted: m.quoted && m.quoted.fakeObj
18 | })
19 | messages.key.fromMe = areJidsSameUser(m.sender, this.user.id)
20 | messages.key.id = m.key.id
21 | messages.pushName = m.pushName
22 | if (m.isGroup) messages.participant = m.sender
23 | let msg = {
24 | ...chatUpdate,
25 | messages: [proto.WebMessageInfo.fromObject(messages)],
26 | type: 'append'
27 | }
28 | this.ev.emit('messages.upsert', msg)
29 | }
30 |
--------------------------------------------------------------------------------
/plugins/_durability.js:
--------------------------------------------------------------------------------
1 | let handler = m => m
2 |
3 | handler.before = async function (m) {
4 | let user = db.data.users[m.sender]
5 |
6 | //Sword
7 | if (user.sword > 0) {
8 | if (user.sworddurability < 1) {
9 | user.sworddurability = 30
10 | user.sword -= 1
11 | }
12 | }
13 | if (user.sword == 0) {
14 | user.sworddurability = 0
15 | }
16 |
17 | //pickaxe
18 | if (user.pickaxe > 0) {
19 | if (user.pickaxedurability < 1) {
20 | user.pickaxedurability = 30
21 | user.pickaxe -= 1
22 | }
23 | }
24 | if (user.pickaxe == 0) {
25 | user.pickaxedurability = 0
26 | }
27 |
28 | //armor
29 | if (user.armor > 0) {
30 | if (user.armordurability < 1) {
31 | user.armordurability = 30
32 | user.armor -= 1
33 | }
34 | }
35 | if (user.armor == 0) {
36 | user.armordurability = 0
37 | }
38 | }
39 | export default handler
--------------------------------------------------------------------------------
/plugins/_expired.js:
--------------------------------------------------------------------------------
1 | export async function all(m) {
2 | if (!m.isGroup)
3 | return
4 | let chats = global.db.data.chats[m.chat]
5 | if (!chats.expired)
6 | return !0
7 | if (+new Date() > chats.expired) {
8 | await this.reply(m.chat, 'Bye🖐 bot akan left!!')
9 | await this.groupLeave(m.chat)
10 | chats.expired = null
11 | }
12 | }
--------------------------------------------------------------------------------
/plugins/_health.js:
--------------------------------------------------------------------------------
1 | let handler = m => m
2 |
3 | handler.before = async function (m) {
4 | let user = db.data.users[m.sender]
5 | if (user.health > 100) {
6 | user.health = 100
7 | }
8 | if (user.health < 0) {
9 | user.health = 0
10 | }
11 | }
12 |
13 | export default handler
--------------------------------------------------------------------------------
/plugins/_premium.js:
--------------------------------------------------------------------------------
1 | let handler = m => m
2 |
3 | handler.before = async function (m) {
4 | let user = db.data.users[m.sender]
5 | if (new Date() - user.premiumTime > 0) {
6 | user.premiumTime = 0
7 | user.premium = false
8 | }
9 | }
10 |
11 | export default handler
--------------------------------------------------------------------------------
/plugins/_res.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | import fs from 'fs'
3 |
4 | export async function all(m) {
5 | let pp = await this.profilePictureUrl(m.sender, 'image').catch(_ => 'https://telegra.ph/file/24fa902ead26340f3df2c.png')
6 |
7 | let vr = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
8 | let num = vr.getRandom()
9 | let stc = await fs.readFileSync('./sticker/ress' + num + '.webp')
10 |
11 |
12 | if (m.isBaileys) return
13 | if (m.chat.endsWith('broadcast')) return
14 | try {
15 | if (m.mentionedJid.includes(this.user.jid) && m.isGroup) {
16 | await this.sendMessage(m.chat, { sticker : stc, thumbnail: await( await fetch(pp)).buffer() , contextInfo:{ externalAdReply: { showAdAttribution: true,
17 | mediaType: 1,
18 | mediaUrl: 'https://wa.me/6282127487538',
19 | title: '「 ❔ 」',
20 | body: wm,
21 | sourceUrl: 'http://github.com/Wahidhidayatulla', thumbnail: await( await fetch(pp)).buffer()
22 | }
23 | }}, { quoted: m })
24 |
25 | }
26 | } catch (e) {
27 | return
28 | }
29 |
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/plugins/_simi.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | let handler = m => m
3 |
4 | handler.before = async (m) => {
5 | let chat = global.db.data.chats[m.chat]
6 | if (chat.simi && !chat.isBanned ) {
7 | if (/^.*false|disnable|(turn)?off|0/i.test(m.text)) return
8 | if (!m.text) return
9 | let res = await fetch(global.API('https://api.simsimi.net', '/v2/', { text: encodeURIComponent(m.text), lc: "id" }, ''))
10 | if (!res.ok) throw eror
11 | let json = await res.json()
12 | if (json.success == 'gapaham banh:v') return m.reply('lu ngetik apaaan sih')
13 | await m.reply(`${json.success}`)
14 | return !0
15 | }
16 | return true
17 | }
18 | export default handler
--------------------------------------------------------------------------------
/plugins/afk-_afk.js:
--------------------------------------------------------------------------------
1 | export function before(m) {
2 | let user = global.db.data.users[m.sender]
3 | if (user.afk > -1) {
4 | conn.sendButtonDoc(m.chat,`
5 | Kamu berhenti AFK${user.afkReason ? ' setelah ' + user.afkReason : ''}
6 | Selama ${(new Date - user.afk).toTimeString()}
7 | `,wm,'Hai Kak','Ya',m,fakeig)
8 | user.afk = -1
9 | user.afkReason = ''
10 | }
11 | let jids = [...new Set([...(m.mentionedJid || []), ...(m.quoted ? [m.quoted.sender] : [])])]
12 | for (let jid of jids) {
13 | let user = global.db.data.users[jid]
14 | if (!user)
15 | continue
16 | let afkTime = user.afk
17 | if (!afkTime || afkTime < 0)
18 | continue
19 | let reason = user.afkReason || ''
20 | conn.sendButtonDoc(m.chat,`
21 | Jangan tag dia!
22 | Dia sedang AFK ${reason ? 'dengan alasan ' + reason : 'tanpa alasan'}
23 | Selama ${(new Date - afkTime).toTimeString()}
24 | `,wm,'Maaf Kak','Ya',m,fakeig)
25 | }
26 | return true
27 | }
28 |
--------------------------------------------------------------------------------
/plugins/afk-afk.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { text }) => {
2 | let user = global.db.data.users[m.sender]
3 | user.afk = + new Date
4 | user.afkReason = text
5 | m.reply(`
6 | ${conn.getName(m.sender)} is now AFK${text ? ': ' + text : ''}
7 | `)
8 | }
9 | handler.help = ['afk [alasan]']
10 | handler.tags = ['main']
11 | handler.command = /^afk$/i
12 |
13 | export default handler
--------------------------------------------------------------------------------
/plugins/alquran.js:
--------------------------------------------------------------------------------
1 | import {alquran} from '@bochilteam/scraper'
2 | let handler = async (m, { args, usedPrefix, command }) => {
3 | if (!(args[0] || args[1])) throw `contoh:\n${usedPrefix + command} 1 2\n\nmaka hasilnya adalah surah Al-Fatihah ayat 2 beserta audionya, & ayatnya 1 saja`
4 | if (isNaN(args[0]) || isNaN(args[1])) throw `contoh:\n${usedPrefix + command} 1 2\n\nmaka hasilnya adalah surah Al-Fatihah ayat 2 beserta audionya, dan ayatnya 1 aja`
5 | let api = await alquran()
6 | let mes = `
7 | ${api[args[0] - 1].ayahs[args[1] - 1].text.ar}
8 |
9 | ${api[args[0] - 1].ayahs[args[1] - 1].translation.id}
10 | ( Q.S ${api[args[0] - 1 ].asma.id.short} : ${api[args[0] - 1].ayahs[args[1] - 1].number.insurah} )
11 | `.trim()
12 | m.reply(mes)
13 | conn.sendFile(m.chat, api[args[0] - 1].ayahs[args[1] - 1].audio.url, '', '', m)
14 | }
15 |
16 | handler.command = ['alquran']
17 | handler.help = ['alquran']
18 | handler.tags = ['quran', 'limitmenu']
19 | handler.limit = true
20 | export default handler
21 |
--------------------------------------------------------------------------------
/plugins/anime-fanart.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 |
3 | let handler = async (m, { conn, command }) => {
4 | let url = 'https://api.lolhuman.xyz/api/random/art?apikey=8e66d0934cf741bfd2182c16'
5 | conn.sendButton(m.chat, 'Nih FanArtnya ', wm, await(await fetch(url)).buffer(), [['Next',`.${command}`]],m)
6 | }
7 | handler.command = /^(fanart)$/i
8 | handler.tags = ['anime', 'premium', 'limitmenu']
9 | handler.help = ['fanart']
10 | handler.limit = true
11 | handler.premium = true
12 | handler.register = true
13 | export default handler
14 |
--------------------------------------------------------------------------------
/plugins/anime-husbu.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 |
3 | let handler = async (m, { conn, command }) => {
4 | let url = 'https://api.lolhuman.xyz/api/random/husbu?apikey=ebb6251cc00f9c63'
5 | conn.sendButton(m.chat, 'Bojone Gepenk🐦', wm, await(await fetch(url)).buffer(), [['Next',`.${command}`]],m)
6 | }
7 | handler.command = /^(husbu)$/i
8 | handler.tags = ['anime', 'limitmenu']
9 | handler.help = ['husbu']
10 | handler.limit = true
11 | export default handler
12 |
--------------------------------------------------------------------------------
/plugins/anime-jahy.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 |
3 | let handler = async (m, { conn, command }) => {
4 | let url = 'https://api.xteam.xyz/randomimage/jahy?APIKEY=ebb6251cc00f9c63'
5 | conn.sendButton(m.chat, 'Wangy wangy (≧ω≦)', wm, await(await fetch(url)).buffer(), [['Next',`.${command}`]],m)
6 | }
7 | handler.command = /^(jahy)$/i
8 | handler.tags = ['anime', 'premium', 'nsfw']
9 | handler.help = ['jahy']
10 | handler.premium = true
11 | handler.register = true
12 |
13 | export default handler
14 |
--------------------------------------------------------------------------------
/plugins/anime-kanna.js:
--------------------------------------------------------------------------------
1 | /*import fetch from 'node-fetch'
2 |
3 | let handler = async (m, { conn, command }) => {
4 | let res = await fetch('https://melcanz.com/randomkanna?&apikey=melcantik')
5 | if (!res.ok) throw await res.text()
6 | let json = await res.json()
7 | if (!json.url) throw 'Error!'
8 | conn.sendButton(m.chat, 'Kanna-Chan', author, json.url,[['Next',`.${command}`]],m)
9 | }
10 | handler.command = /^(kanna)$/i
11 | handler.tags = ['anime', 'limitmenu']
12 | handler.help = ['kanna']
13 | handler.limit = true
14 | export default handler
15 | */
--------------------------------------------------------------------------------
/plugins/anime-kusonime.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | let handler = async function (m, { text, isPrems, isOwner }) {
3 | let user = global.db.data.users[m.sender]
4 | if (!text) throw '_Ingin Cari Apa_'
5 | await m.reply(global.wait)
6 | let res = await fetch('https://ardhixsquerpants.herokuapp.com/api/kuso?q=' + encodeURIComponent(text))
7 | let json= await res.json()
8 | const raku = `*JUDUL :* "${json.title}"\n\n*info:* ${json.info}\n\n*SINOPSIS :* ${json.sinopsis}\n\n*LINK DOWNLOADS:* ${json.link_dl}`
9 | conn.sendFile(m.chat,json.thumb, 'image.jpg', raku, m)
10 | }
11 | handler.help = ['kusonime ']
12 | handler.tags = ['anime', 'limitmenu']
13 | handler.command = /^kusonime$/i
14 | handler.group = false
15 | handler.limit = true
16 | export default handler
17 |
--------------------------------------------------------------------------------
/plugins/anime-loli.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 |
3 | let handler = async (m, { conn, text }) => {
4 | let res = await fetch('https://raw.githubusercontent.com/Xmell91/loli/master/loli.json')
5 | if (!res.ok) throw await `${res.status} ${res.statusText}`;
6 | let json = await res.json();
7 | let url = json[Math.floor(Math.random() * json.length)]
8 | await conn.sendButtonImg(m.chat, await (await fetch(url)).buffer(), 'Pedo Pedo', 'Next', '.loli', m)
9 | }
10 | handler.command = /^(loli)$/i
11 | handler.tags = ['anime']
12 | handler.help = ['loli', 'limitmenu']
13 | handler.limit = true
14 | export default handler
15 |
--------------------------------------------------------------------------------
/plugins/anime-lolice.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, usedprefix }) => {
2 | let who = m.quoted ? m.quoted.sender : m.mentionedJid && m.mentionedJid[0] ? m.mentionedJid[0] : m.fromMe ? conn.user.jid : m.sender
3 | conn.sendButton(m.chat, 'liuliuliuliuliu kami dengar disini ada lolicon', author, global.API('https://some-random-api.ml', '/canvas/lolice', {
4 | avatar: await conn.profilePictureUrl(who).catch(_ => 'https://telegra.ph/file/24fa902ead26340f3df2c.png'),
5 | }), [['lolice', `${usedprefix}lolice`]], m)
6 | }
7 |
8 | handler.help = ['lolice']
9 | handler.tags = ['logo']
10 |
11 | handler.command = /^(lolice)$/i
12 |
13 | export default handler
14 |
--------------------------------------------------------------------------------
/plugins/anime-megumin.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 |
3 | let handler = async (m, { conn, usedPrefix }) => {
4 | let res = await fetch('https://api.waifu.pics/sfw/megumin')
5 | if (!res.ok) throw await res.text()
6 | let json = await res.json()
7 | if (!json.url) throw 'Error!'
8 | conn.sendButton(m.chat, 'Istrinya Kartun', author, json.url, [['megumin', `${usedPrefix}megumin`]], m)
9 | }
10 | handler.help = ['megumin']
11 | handler.tags = ['anime']
12 | handler.command = /^(megumin)$/i
13 |
14 | export default handler
15 |
--------------------------------------------------------------------------------
/plugins/anime-neko.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 |
3 | let handler = async (m, { conn, usedPrefix, command }) => {
4 | let res = await fetch(`https://api.waifu.pics/sfw/${command}`)
5 | if (!res.ok) throw await res.text()
6 | let json = await res.json()
7 | conn.sendButton(m.chat, `Nyaww~ 🐾💗 ${command.capitalize()}`, json.url, json.url, [['Next', usedPrefix + command]], m)
8 | }
9 | handler.command = /^(neko)$/i
10 | handler.tags = ['anime']
11 | handler.help = ['neko']
12 |
13 | export default handler
14 |
--------------------------------------------------------------------------------
/plugins/anime-ppcp.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | let handler = async (m, { conn, command }) => {
3 | /*let res = await fetch(`https://api.lolhuman.xyz/api/random/ppcouple?apikey=${lolkey}`)
4 | if (res.status != 200) throw await res.text()
5 | let json = await res.json()
6 | if (!json.status) throw json
7 | conn.sendButton(m.chat, '𝙶𝚒𝚛𝚕𝚜', wm, json.result.female,[['🔄 Next 🔄', `/${command}`]], m)
8 | conn.sendButton(m.chat, '𝙱𝚘𝚢𝚜', wm, json.result.male, [['🔄 Next 🔄', `/${command}`]], m) */
9 | let jsn = await fetch(`https://ziy.herokuapp.com/api/gacha/ppcouple?apikey=xZiyy`)
10 | let json = await jsn.json()
11 | conn.sendButton(m.chat, '𝙶𝚒𝚛𝚕𝚜', wm, json.result.female,[['🔄 Next 🔄', `/${command}`]], m)
12 | conn.sendButton(m.chat, '𝙱𝚘𝚢𝚜', wm, json.result.male, [['🔄 Next 🔄', `/${command}`]], m)
13 | }
14 | handler.help = ['ppcouple']
15 | handler.tags = ['internet']
16 | handler.command = /^(ppcp|ppcouple)$/i
17 | export default handler
18 |
--------------------------------------------------------------------------------
/plugins/anime-waifu.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 |
3 | let handler = async (m, { conn, usedPrefix }) => {
4 | let res = await fetch('https://api.waifu.pics/sfw/waifu')
5 | if (!res.ok) throw await res.text()
6 | let json = await res.json()
7 | if (!json.url) throw 'Error!'
8 | conn.sendButton(m.chat, 'Istrinya Kartun', author, json.url, [['waifu', `${usedPrefix}waifu`]], m)
9 | }
10 | handler.help = ['waifu']
11 | handler.tags = ['anime', 'limitmenu']
12 | handler.limit = true
13 | handler.command = /^(waifu)$/i
14 | //MADE IN ERPAN 1140 BERKOLABORASI DENGAN BTS
15 | export default handler
16 |
--------------------------------------------------------------------------------
/plugins/anonymous_chat_.js.js:
--------------------------------------------------------------------------------
1 | export async function before(m, { match }) {
2 | // if (match) return !1
3 | if (!m.chat.endsWith('@s.whatsapp.net'))
4 | return !0
5 | this.anonymous = this.anonymous ? this.anonymous : {}
6 | let room = Object.values(this.anonymous).find(room => [room.a, room.b].includes(m.sender) && room.state === 'CHATTING')
7 | if (room) {
8 | if (/^.*(next|leave|start)/.test(m.text))
9 | return
10 | let other = [room.a, room.b].find(user => user !== m.sender)
11 | await m.copyNForward(other, true)
12 | }
13 | return !0
14 | }
--------------------------------------------------------------------------------
/plugins/antivirtex.js:
--------------------------------------------------------------------------------
1 | //
--------------------------------------------------------------------------------
/plugins/antivirtext.js:
--------------------------------------------------------------------------------
1 | let handler = m => m
2 |
3 | handler.before = function (m, { user, text }) {
4 |
5 | if (m.isBaileys && m.fromMe) return
6 | let chat = global.db.data.chats[m.chat]
7 | let name = this.getName(m.sender)
8 |
9 | if (chat.antivirtex && text > 2000) {
10 | this.reply(m.chat `
11 | *「 ANTI VIRTEX 」*
12 |
13 | Terdeteksi *${name}* telah mengirim virtex!
14 |
15 | Maaf Kamu akan dikick dari grup ini!
16 | `.trim(), m)
17 |
18 | this.groupRemove(m.chat, [m.sender])
19 | } else return false
20 | }
21 | handler.group = true
22 | handler.register = true
23 |
24 | export default handler
--------------------------------------------------------------------------------
/plugins/audio-tomp3.js:
--------------------------------------------------------------------------------
1 | import { toAudio } from '../lib/converter.js'
2 |
3 | let handler = async (m, { conn, usedPrefix, command }) => {
4 | let q = m.quoted ? m.quoted : m
5 | let mime = (m.quoted ? m.quoted : m.msg).mimetype || ''
6 | if (!/video|audio/.test(mime)) throw `reply video/voice note you want to convert to audio/mp3 with caption *${usedPrefix + command}*`
7 | let media = await q.download?.()
8 | if (!media) throw 'Can\'t download media'
9 | let audio = await toAudio(media, 'mp4')
10 | if (!audio.data) throw 'Can\'t convert media to audio'
11 | conn.sendFile(m.chat, audio.data, 'audio.mp3', '', m, null, { mimetype: 'audio/mp4' })
12 | }
13 | handler.help = ['tomp3'].map(v => v + ' ')
14 | handler.tags = ['audio']
15 |
16 | handler.command = /^to(mp3|a(udio)?)$/i
17 |
18 | export default handler
19 |
--------------------------------------------------------------------------------
/plugins/audio-toptt.js:
--------------------------------------------------------------------------------
1 | import { toPTT } from '../lib/converter.js'
2 |
3 | let handler = async (m, { conn, usedPrefix, command }) => {
4 | let q = m.quoted ? m.quoted : m
5 | let mime = (m.quoted ? m.quoted : m.msg).mimetype || ''
6 | if (!/video|audio/.test(mime)) throw `reply video/audio you want to convert to voice note/vn with caption *${usedPrefix + command}*`
7 | let media = await q.download?.()
8 | if (!media) throw 'Can\'t download media'
9 | let audio = await toPTT(media, 'mp4')
10 | if (!audio.data) throw 'Can\'t convert media to audio'
11 | conn.sendFile(m.chat, audio.data, 'audio.mp3', '', m, true, { mimetype: 'audio/mp4' })
12 | }
13 | handler.help = ['tovn (reply)']
14 | handler.tags = ['audio']
15 |
16 | handler.command = /^to(vn|(ptt)?)$/i
17 |
18 | export default handler
--------------------------------------------------------------------------------
/plugins/bank-cek.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | let user = global.db.data.users[m.sender]
3 | const caption = `
4 | ▧「 *B A N K U S E R* 」
5 | │ 📛 *Name:* ${user.registered ? user.name : conn.getName(m.sender)}
6 | │ 💳 *Atm:* ${user.atm > 0 ? 'Level ' + user.atm : '✖️'}
7 | │ 🏛️ *Bank:* ${user.bank} 💲 / ${user.fullatm} 💲
8 | │ 💹 *Money:* ${user.money} 💲
9 | │ 🤖 *Robo:* ${user.robo > 0 ? 'Level ' + user.robo : '✖️'}
10 | │ 🌟 *Status:* ${user.premiumTime > 0 ? 'Premium' : 'Free'}
11 | │ 📑 *Registered:* ${user.registered ? 'Yes':'No'}
12 | └──···
13 | `.trim()
14 | conn.sendButton(m.chat, caption, global.wm, 'https://telegra.ph/file/0451b07945f7f9633b59b.jpg', [`Inventory`, '.inv'],m)
15 | }
16 | handler.help = ['bank']
17 | handler.tags = ['rpg']
18 | handler.command = /^(bank)$/i
19 |
20 | handler.register = false
21 | export default handler
--------------------------------------------------------------------------------
/plugins/bank-nabung.js:
--------------------------------------------------------------------------------
1 | const xpperlimit = 1
2 | let handler = async (m, { conn, command, args }) => {
3 | let user = global.db.data.users[m.sender]
4 | let count = command.replace(/^nabung/i, '')
5 | count = count ? /all/i.test(count) ? Math.floor(global.db.data.users[m.sender].money / xpperlimit) : parseInt(count) : args[0] ? parseInt(args[0]) : 1
6 | count = Math.max(1, count)
7 | if (user.atm == 0) return m.reply('kamu belum mempuyai atm !')
8 | if (user.bank > user.fullatm) return m.reply('Uang dibankmu sudah penuh!')
9 | if (count > user.fullatm - user.bank) return m.reply('Uangnya ga muat dibank')
10 | if (global.db.data.users[m.sender].money >= xpperlimit * count) {
11 | global.db.data.users[m.sender].money -= xpperlimit * count
12 | global.db.data.users[m.sender].bank += count
13 | conn.reply(m.chat, `Sukses menabung sebesar ${count} Money 💹`, m)
14 | } else conn.reply(m.chat, `[❗] Uang anda tidak mencukupi untuk menabung ${count} money 💹`, m)
15 | }
16 | handler.help = ['nabung ']
17 | handler.tags = ['rpg']
18 | handler.command = /^nabung([0-9]+)|nabung|nabungall$/i
19 |
20 | export default handler
--------------------------------------------------------------------------------
/plugins/bank-tarik.js:
--------------------------------------------------------------------------------
1 | const xpperlimit = 1
2 | let handler = async (m, { conn, command, args }) => {
3 | let user = global.db.data.users[m.sender]
4 | let count = command.replace(/^tarik/i, '')
5 | count = count ? /all/i.test(count) ? Math.floor(global.db.data.users[m.sender].bank / xpperlimit) : parseInt(count) : args[0] ? parseInt(args[0]) : 1
6 | count = Math.max(1, count)
7 | if (user.atm == 0) return m.reply('kamu belum mempuyai atm !')
8 | if (global.db.data.users[m.sender].bank >= xpperlimit * count) {
9 | global.db.data.users[m.sender].bank -= xpperlimit * count
10 | global.db.data.users[m.sender].money += count
11 | conn.reply(m.chat, `Sukses menarik sebesar ${count} Money 💹`, m)
12 | } else conn.reply(m.chat, `[❗] Uang dibank anda tidak mencukupi untuk ditarik sebesar ${count} money 💹`, m)
13 | }
14 | handler.help = ['tarik ']
15 | handler.tags = ['rpg']
16 | handler.command = /^tarik([0-9]+)|tarik|tarikall$/i
17 |
18 | export default handler
--------------------------------------------------------------------------------
/plugins/bot.js:
--------------------------------------------------------------------------------
1 | import fs from'fs'
2 | let { MessageType } = (await import('@adiwajshing/baileys')).default
3 | let handler = async (m, { conn }) => {
4 | let whmods = fs.readFileSync('./mp3/Bot.opus')
5 | conn.sendFile(m.chat, whmods, '', '', m, true)
6 | }
7 |
8 | handler.customPrefix = /^(bot|robot|p|tes|tes123|tes1|tes12|woy)$/i
9 | handler.command = new RegExp
10 |
11 | export default handler
12 |
--------------------------------------------------------------------------------
/plugins/broadcast.js:
--------------------------------------------------------------------------------
1 | import { randomBytes } from 'crypto'
2 |
3 | let handler = async (m, { conn, text }) => {
4 | let chats = Object.entries(conn.chats).filter(([_, chat]) => chat.isChats).map(v => v[0])
5 | let cc = conn.serializeM(text ? m : m.quoted ? await m.getQuotedObj() : false || m)
6 | let teks = text ? text : cc.text
7 | conn.reply(m.chat, `_Mengirim pesan broadcast ke ${chats.length} chat_`, m)
8 | for (let id of chats) await conn.copyNForward(id, conn.cMod(m.chat, cc, /bc|broadcast/i.test(teks) ? `${htki} *BROADCAST* ${htka}\n` + teks : `${htki} *BROADCAST* ${htka}\n` + teks + '\n' + readMore + '\n\n' + botdate), true).catch(_ => _)
9 | m.reply('Selesai Broadcast All Chat :)')
10 | }
11 | handler.help = ['broadcast', 'bc'].map(v => v + ' ')
12 | handler.tags = ['owner']
13 | handler.command = /^(broadcast|bc)$/i
14 |
15 | handler.owner = true
16 |
17 | export default handler
18 |
19 | const more = String.fromCharCode(8206)
20 | const readMore = more.repeat(4001)
21 |
22 | const randomID = length => randomBytes(Math.ceil(length * .5)).toString('hex').slice(0, length)
--------------------------------------------------------------------------------
/plugins/broadcastchats.js:
--------------------------------------------------------------------------------
1 | import { randomBytes } from 'crypto'
2 |
3 | let handler = async (m, { conn, text }) => {
4 | let chats = Object.entries(conn.chats).filter(([jid, chat]) => !jid.endsWith('@g.us') && chat.isChats).map(v => v[0])
5 | let cc = conn.serializeM(text ? m : m.quoted ? await m.getQuotedObj() : false || m)
6 | let teks = text ? text : cc.text
7 | conn.reply(m.chat, `_Mengirim pesan broadcast ke ${chats.length} chat_`, m)
8 | for (let id of chats) await conn.copyNForward(id, conn.cMod(m.chat, cc, /bc|broadcast/i.test(teks) ? teks : teks + '\n' + readMore + '「 ' + author + ' All Chat Broadcast 」\n' + randomID(32)), true).catch(_ => _)
9 | m.reply('Selesai Broadcast All Chat :)')
10 | }
11 | handler.help = ['broadcastchats', 'bcchats'].map(v => v + ' ')
12 | handler.tags = ['owner']
13 | handler.command = /^(broadcastchats?|bcc(hats?)?)$/i
14 |
15 | handler.owner = true
16 |
17 | export default handler
18 |
19 | const more = String.fromCharCode(8206)
20 | const readMore = more.repeat(4001)
21 |
22 | const randomID = length => randomBytes(Math.ceil(length * .5)).toString('hex').slice(0, length)
--------------------------------------------------------------------------------
/plugins/cmd-del.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, usedPrefix, text, command }) => {
2 | let hash = text
3 | if (m.quoted && m.quoted.fileSha256) hash = m.quoted.fileSha256.toString('hex')
4 | if (!hash) throw `Tidak ada hash`
5 | let sticker = global.db.data.sticker
6 | if (sticker[hash] && sticker[hash].locked) throw 'Kamu tidak memiliki izin untuk menghapus perintah stiker ini'
7 | delete sticker[hash]
8 | m.reply(`Berhasil!`)
9 | }
10 |
11 |
12 | handler.help = ['cmd'].map(v => 'del' + v + ' ')
13 | handler.tags = ['database', 'premium']
14 | handler.command = ['delcmd']
15 | handler.premium = true
16 | handler.register = true
17 |
18 | export default handler
19 |
--------------------------------------------------------------------------------
/plugins/cmd-list.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.reply(m.chat, `
3 | *DAFTAR HASH*
4 | \`\`\`
5 | ${Object.entries(global.db.data.sticker).map(([key, value], index) => `${index + 1}. ${value.locked ? `(Terkunci) ${key}` : key} : ${value.text}`).join('\n')}
6 | \`\`\`
7 | `.trim(), null, {
8 | mentions: Object.values(global.db.data.sticker).map(x => x.mentionedJid).reduce((a, b) => [...a, ...b], [])
9 | })
10 | }
11 |
12 |
13 | handler.help = ['listcmd']
14 | handler.tags = ['database']
15 | handler.command = ['listcmd']
16 |
17 | export default handler
18 |
--------------------------------------------------------------------------------
/plugins/cmd-lock.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, text, usedPrefix, command }) => {
2 | if (!m.quoted) throw 'Reply Pesan!'
3 | if (!m.quoted.fileSha256) throw 'SHA256 Hash Missing'
4 | let sticker = db.data.sticker
5 | let hash = m.quoted.fileSha256.toString('hex')
6 | if (!(hash in sticker)) throw 'Hash not found in database'
7 | sticker[hash].locked = !/^un/i.test(command)
8 | m.reply('Done!')
9 | }
10 | handler.help = ['un', ''].map(v => v + 'lockcmd')
11 | handler.tags = ['database', 'premium']
12 | handler.command = /^(un)?lockcmd$/i
13 | handler.premium = true
14 | handler.register = true
15 |
16 | export default handler
17 |
--------------------------------------------------------------------------------
/plugins/cmd-set.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, text, usedPrefix, command }) => {
2 | db.data.sticker = db.data.sticker || {}
3 | if (!m.quoted) throw 'Balas stiker dengan perintah *${usedPrefix + command}*'
4 | if (!m.quoted.fileSha256) throw 'SHA256 Hash Missing'
5 | if (!text) throw `Penggunaan:\n${usedPrefix + command} \n\nContoh:\n${usedPrefix + command} tes`
6 | let sticker = db.data.sticker
7 | let hash = m.quoted.fileSha256.toString('base64')
8 | if (sticker[hash] && sticker[hash].locked) throw 'Kamu tidak memiliki izin untuk mengubah perintah stiker ini'
9 | sticker[hash] = {
10 | text,
11 | mentionedJid: m.mentionedJid,
12 | creator: m.sender,
13 | at: + new Date,
14 | locked: false,
15 | }
16 | m.reply(`Berhasil!`)
17 | }
18 |
19 |
20 | handler.help = ['cmd'].map(v => 'set' + v + ' ')
21 | handler.tags = ['database', 'premium']
22 | handler.command = ['setcmd']
23 | handler.premium = true
24 | handler.register = true
25 |
26 | export default handler
27 |
--------------------------------------------------------------------------------
/plugins/cnnnews.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | import bo from 'dhn-api'
3 | let handler = async(m, { conn }) => {
4 | var a = await bo.CNNNews()
5 | var b = JSON.parse(JSON.stringify(a))
6 | var c = await conn.rand(b)
7 | //var c = b[Math.floor(Math.random() * b.length)]
8 | var { berita, berita_url, berita_thumb } = c
9 | var sell = `📺 *CNN News*
10 | 📢 *Berita:* ${berita}
11 | 🛰 *Source Url:* ${berita_url}`
12 | conn.sendButton(m.chat, sell, wm, berita_thumb, [['CNN News', '.cnnnews']], m, {jpegThumbnail: await(await fetch(berita_thumb)).buffer()})
13 | }
14 | handler.help = ['cnnnews']
15 | handler.tags = ['berita', 'limitmenu']
16 | handler.command = /^cnn(news)?$/i
17 | handler.limit = true
18 |
19 | export default handler
20 |
--------------------------------------------------------------------------------
/plugins/delete-pesan-orang-lain.js:
--------------------------------------------------------------------------------
1 | let handler = function (m) {
2 | if (!m.quoted) throw false
3 | let { chat, fromMe } = m.quoted
4 | if (!fromMe) throw true
5 | conn.sendMessage(chat, { delete: m.quoted.vM.key })
6 | }
7 | handler.help = ['whgans', 'wahidgans']
8 | handler.tags = ['owner']
9 | handler.owner = true
10 |
11 | handler.command = /^(whgans|wahidgans)?$/i
12 |
13 | export default handler
14 |
--------------------------------------------------------------------------------
/plugins/donasi.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, usedPrefix }) => {
2 | conn.relayMessage(m.chat, {
3 | requestPaymentMessage: {
4 | currencyCodeIso4217: 'INR',
5 | amount1000: 8888888889,
6 | requestFrom: m.sender,
7 | noteMessage: {
8 | extendedTextMessage: {
9 | text: `${global.wm}
10 |
11 | ┌─「 Donasi • Pulsa 」
12 | │ • *Three:* [${global.ppulsa}]
13 | ❏────
14 |
15 | ┌─「 Donasi • Non Pulsa 」
16 | │ • *Dana:* [${global.pdana}]
17 | │ • *Gopay:* [${global.pgopay}]
18 | │ • *Ovo:* [${global.povo}]
19 | │ • *Link Aja:* [${global.plinkaja}]
20 | ❏────`,
21 | contextInfo: {
22 | externalAdReply: {
23 | showAdAttribution: false
24 | }}}}}}, {})
25 | }
26 |
27 | handler.help = ['donasi']
28 | handler.tags = ['info']
29 | handler.command = /^dona(te|si)$/i
30 |
31 | export default handler
--------------------------------------------------------------------------------
/plugins/downloader-aio.js:
--------------------------------------------------------------------------------
1 | import {
2 | aiovideodl
3 | } from '@bochilteam/scraper'
4 |
5 | let handler = async (m, { conn, args, usedPrefix, command }) => {
6 |
7 | try {
8 | if (!args[0]) throw `Use example ${usedPrefix}${command} https://vt.tiktok.com/ZSdDyUHcR/https://www.tiktok.com/@kata__kasar/video/7088823247373946138'`
9 | const { title, medias } = await aiovideodl(args[0])
10 | for (const { url, quality, formattedSize} of medias) await conn.sendFile(m.chat, url, 'save.mp4', `*AIOVIDEO DOWNLOADER*\n\n${title ? `*Title:* ${title}` : "NotFound"}\n*💽Format:* ${quality ? `${quality}` : "Unknown"}\n*📨Size:* ${formattedSize ? `${formattedSize}` : "countless" }\n`, m)
11 | } catch (e) {
12 | m.reply("Eror")
13 | }
14 | }
15 | handler.help = ['aiovideo2'].map(v => v + ' ')
16 | handler.tags = ['downloader']
17 |
18 | handler.command = /^(aio(video2)?(dl2)?)$/i
19 |
20 | export default handler
21 |
--------------------------------------------------------------------------------
/plugins/downloader-facebook2.js:
--------------------------------------------------------------------------------
1 | /*import { facebookdl, facebookdlv2 } from '@bochilteam/scraper'
2 | let handler = async (m, { conn, args, usedPrefix, command }) => {
3 | if (!args[0]) throw `Use example ${usedPrefix + command} https://www.facebook.com/watch?v=636541475139*`
4 | const { result } = await facebookdl(args[0]).catch(async _ => await facebookdlv2(args[0]))
5 | for (const { url, isVideo } of result.reverse()) conn.sendFile(m.chat, url, `facebook.${!isVideo ? 'bin' : 'mp4'}`, `✨ *ᴜʀʟ:* ${url}`, m)
6 | let info = `💝 *ʟᴏᴀᴅɪɴɢ.....,
7 | WH-MODS-BOT-V1-ᴍᴜʟᴛɪᴅᴇᴠɪᴄᴇ*
8 | `.trim()
9 |
10 | await conn.sendHydrated(m.chat, info, wm, null, sig, 'ɪɴsᴛᴀɢʀᴀᴍ✨', null, null, [
11 | ['🥀️⃟⃪͡ꦽᴍᴇɴᴜ🔖️⃟⃪͡ꦽ', '/menu'],
12 | ['☙⃝✈️ᴋᴇᴄᴇᴘᴀᴛᴀɴ ʙᴏᴛ☙⃝🚀️', '/ping']
13 | ], m,)
14 | }
15 | handler.help = ['facebook2'].map(v => v + ' ')
16 | handler.tags = ['downloader']
17 | handler.command = /^((facebook2|fb2)(downloder2|dl2)?)$/i
18 | handler.exp = 35
19 | export default handler
20 | */
--------------------------------------------------------------------------------
/plugins/downloader-ig.js:
--------------------------------------------------------------------------------
1 | import instagramGetUrl from 'instagram-url-direct'
2 | let handler = async (m, { conn, args, usedPrefix, command }) => {
3 | if (!args[0]) throw `Use example ${usedPrefix}${command} https://www.instagram.com/p/ByxKbUSnubS/?utm_source=ig_web_copy_link`
4 | const results = (await instagramGetUrl(args[0])).url_list[0]
5 |
6 | conn.sendFile(m.chat, results, 'instagram.mp4', `*INSTAGRAM DOWNLOADER*`, m)
7 | }
8 | handler.help = ['ig'].map(v => v + ' ')
9 | handler.tags = ['downloader']
10 |
11 | handler.command = /^(ig(dl)?)$/i
12 |
13 | export default handler
14 |
--------------------------------------------------------------------------------
/plugins/downloader-igstalk.js:
--------------------------------------------------------------------------------
1 | import { instagramStalk } from '@bochilteam/scraper'
2 |
3 | let handler= async (m, { args, usedPrefix, command }) => {
4 | if (!args[0]) throw `Example use ${usedPrefix}${command} `
5 | const {
6 | username,
7 | name,
8 | description,
9 | followersH,
10 | followingH,
11 | postsH,
12 | } = await instagramStalk(args[0])
13 | m.reply(`
14 | ${name} *(${username})*
15 | https://instagram.com/${username.replace(/^@/, '')}
16 | *${followersH}* Followers
17 | *${followingH}* Following
18 | *${postsH}* Posts
19 | *Bio:* ${description}
20 | `.trim())
21 | }
22 |
23 | handler.help = ['igstalk'].map(v => v + ' ')
24 | handler.tags = ['downloader']
25 |
26 | handler.command = /^(igstalk)$/i
27 |
28 | export default handler
--------------------------------------------------------------------------------
/plugins/downloader-mediafire.js:
--------------------------------------------------------------------------------
1 | import { mediafiredl } from '@bochilteam/scraper'
2 | let handler = async (m, { conn, args, usedPrefix, command }) => {
3 | if (!args[0]) throw `Use example ${usedPrefix}${command} https://www.mediafire.com/file/941xczxhn27qbby/GBWA_V12.25FF-By.SamMods-.apk/file`
4 | let res = await mediafiredl(args[0])
5 | let { url, url2, filename, ext, aploud, filesize, filesizeH } = res
6 | let caption = `
7 | *💌 Name:* ${filename}
8 | *📊 Size:* ${filesizeH}
9 | *🗂️ Extension:* ${ext}
10 | *📨 Uploaded:* ${aploud}
11 | `.trim()
12 | m.reply(caption)
13 | await conn.sendFile(m.chat, url, filename, '', m, null, { mimetype: ext, asDocument: true })
14 | }
15 | handler.help = ['mediafire'].map(v => v + ' ')
16 | handler.tags = ['downloader', 'limitmenu']
17 | handler.command = /^(mediafire|mf)$/i
18 |
19 | handler.limit = true
20 |
21 | export default handler
22 |
--------------------------------------------------------------------------------
/plugins/downloader-zippyshare.js:
--------------------------------------------------------------------------------
1 | import { extract } from 'zs-extract'
2 | import { lookup } from 'mime-types'
3 |
4 | let handler = async (m, { conn, args }) => {
5 | if (!args[0]) throw 'Input URL'
6 | if (!args[0].includes('zippyshare.com/v')) throw 'Invalid URL'
7 | await m.reply('_In progress, please wait..._')
8 | for (let i = 0; i < args.length; i++) {
9 | if (!args[i].includes('zippyshare.com/v')) continue
10 | let res = await extract(args[i])
11 | let mimetype = await lookup(res.download)
12 | conn.sendMessage(m.chat, { document: { url: res.download }, fileName: res.filename, mimetype }, { quoted: m })
13 | }
14 | }
15 | handler.help = ['zippyshare']
16 | handler.tags = ['downloader', 'limitmenu']
17 | handler.alias = ['zs', 'zippy', 'zippydl', 'zippyshare']
18 | handler.command = /^z(s|ippy(dl|share)?)$/i
19 | handler.limit = true
20 | export default handler
21 |
--------------------------------------------------------------------------------
/plugins/exp-ceksn.js:
--------------------------------------------------------------------------------
1 | import { createHash } from 'crypto'
2 |
3 | let Reg = /\|?(.*)([.|] *?)([0-9]*)$/i
4 | let handler = async function (m, { conn, text, usedPrefix }) {
5 | let sn = createHash('md5').update(m.sender).digest('hex')
6 |
7 | m.reply(`*📮 SN:* ${sn}`)
8 | }
9 |
10 | handler.help = ['ceksn']
11 | handler.tags = ['xp']
12 | handler.command = /^(ceksn)$/i
13 | handler.register = true
14 | export default handler
--------------------------------------------------------------------------------
/plugins/exp-tomoney.js:
--------------------------------------------------------------------------------
1 | const xpperlimit = 2
2 | let handler = async (m, { conn, command, args }) => {
3 | let user = global.db.data.users[m.sender]
4 | let count = command.replace(/^tomoney/i, '')
5 | count = count ? /all/i.test(count) ? Math.floor(global.db.data.users[m.sender].exp / xpperlimit) : parseInt(count) : args[0] ? parseInt(args[0]) : 1
6 | count = Math.max(1, count)
7 | if (global.db.data.users[m.sender].exp >= xpperlimit * count) {
8 | global.db.data.users[m.sender].exp -= xpperlimit * count
9 | global.db.data.users[m.sender].money += count
10 | conn.reply(m.chat, `Sukses menukarkan exp sebesar ${count} Exp ✨`, m)
11 | } else conn.reply(m.chat, `[❗] Exp anda tidak mencukupi untuk ditukar sebesar ${count} ✨`, m)
12 | }
13 | handler.help = ['tomoney ']
14 | handler.tags = ['xp']
15 | handler.command = /^tomoney([0-9]+)|tomoney|tomoneyall$/i
16 |
17 | export default handler
--------------------------------------------------------------------------------
/plugins/exp-unreg.js:
--------------------------------------------------------------------------------
1 | import { createHash } from 'crypto'
2 | let handler = async function (m, { args }) {
3 | if (!args[0]) throw 'Serial Number kosong'
4 | let user = global.db.data.users[m.sender]
5 | let sn = createHash('md5').update(m.sender).digest('hex')
6 | if (args[0] !== sn) throw 'Serial Number salah'
7 | user.registered = false
8 | m.reply('```Succes Unreg !```')
9 | }
10 | handler.help = ['', 'ister'].map(v => 'unreg' + v + ' ')
11 | handler.tags = ['xp']
12 |
13 | handler.command = /^unreg(ister)?$/i
14 | handler.register = true
15 |
16 | export default handler
--------------------------------------------------------------------------------
/plugins/fun-alay.js:
--------------------------------------------------------------------------------
1 | function handler(m, { text }) {
2 | let teks = text ? text : m.quoted && m.quoted.text ? m.quoted.text : m.text
3 | m.reply(teks.replace(/[a-z]/gi, v => Math.random() > .5 ? v[['toLowerCase', 'toUpperCase'][Math.floor(Math.random() * 2)]]() : v).replace(/[abegiors]/gi, v => {
4 | if (Math.random() > .5) return v
5 | switch (v.toLowerCase()) {
6 | case 'a': return '4'
7 | case 'b': return Math.random() > .5 ? '8' : '13'
8 | case 'e': return '3'
9 | case 'g': return Math.random() > .5 ? '6' : '9'
10 | case 'i': return '1'
11 | case 'o': return '0'
12 | case 'r': return '12'
13 | case 's': return '5'
14 | }
15 | }))
16 | }
17 | handler.help = ['alay']
18 | handler.tags = ['fun']
19 | handler.command = ['alay']
20 |
21 | export default handler
22 |
--------------------------------------------------------------------------------
/plugins/fun-apakah.js:
--------------------------------------------------------------------------------
1 | let handler = async (m) => m.reply(`
2 | *Pertanyaan:* ${m.text}
3 | *Jawaban:* ${['Ya', 'Mungkin iya', 'Mungkin', 'Mungkin tidak', 'Tidak', 'Tidak mungkin'].getRandom()}
4 | `.trim(), null, m.mentionedJid ? {
5 | mentions: m.mentionedJid
6 | } : {})
7 |
8 | handler.help = ['apakah ?']
9 | handler.tags = ['kerang', 'fun']
10 | handler.customPrefix = /(\?$)/
11 | handler.command = /^apakah$/i
12 |
13 | export default handler
14 |
--------------------------------------------------------------------------------
/plugins/fun-apakah2.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { command, text }) => m.reply(`
2 | *Pertanyaan:* ${command} ${text}
3 | *Jawaban:* ${['Ya', 'Mungkin iya', 'Mungkin', 'Mungkin tidak', 'Tidak', 'Tidak mungkin'].getRandom()}
4 | `.trim(), null, m.mentionedJid ? {
5 | mentions: m.mentionedJid
6 | } : {})
7 |
8 | handler.help = ['apakah ?']
9 | handler.tags = ['kerang', 'fun']
10 | handler.command = /^apakah$/i
11 |
12 | export default handler
13 |
--------------------------------------------------------------------------------
/plugins/fun-bokep.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.sendFile(m.chat, 'https://yog-apikey.herokuapp.com/api/bokep?apikey=YogGanz', 'asupan.mp4', 'Nih', m)
3 | }
4 | handler.help = ['bkp']
5 | handler.tags = ['premium']
6 |
7 | handler.command = /^(bkp)$/i
8 | handler.premium = true
9 | handler.register = true
10 | handler.limit = false
11 | export default handler
--------------------------------------------------------------------------------
/plugins/fun-darkjoke.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | let rest = 'https://api.zacros.my.id/randomimg/darkjokes'
3 | conn.sendButtonImg(m.chat, rest, 'Dark? 🤨', wm2, 'NEXT', '.darkjokes', m)
4 | }
5 | handler.help = ['darkjokes']
6 | handler.tags = ['internet', 'fun']
7 | handler.command = /^(dragjokes|darkjokes)$/i
8 |
9 | export default handler
--------------------------------------------------------------------------------
/plugins/fun-generate_nama.js:
--------------------------------------------------------------------------------
1 | function handler(m, { text }) {
2 | let teks = text ? text : m.quoted && m.quoted.text ? m.quoted.text : m.text
3 | m.reply(teks.replace(/[a-z]/gi, v => {
4 | return {
5 | 'a': 'ka',
6 | 'b': 'tu',
7 | 'c': 'mi',
8 | 'd': 'te',
9 | 'e': 'ku',
10 | 'f': 'lu',
11 | 'g': 'ji',
12 | 'h': 'ri',
13 | 'i': 'ki',
14 | 'j': 'zu',
15 | 'k': 'me',
16 | 'l': 'ta',
17 | 'm': 'rin',
18 | 'n': 'to',
19 | 'o': 'mo',
20 | 'p': 'no',
21 | 'q': 'ke',
22 | 'r': 'shi',
23 | 's': 'ari',
24 | 't': 'ci',
25 | 'u': 'do',
26 | 'v': 'ru',
27 | 'w': 'mei',
28 | 'x': 'na',
29 | 'y': 'fu',
30 | 'z': 'zi'
31 | }[v.toLowerCase()] || v
32 | }))
33 | }
34 | handler.help = ['namaninja ']
35 | handler.tags = ['fun']
36 | handler.command = /^(namaninja|namae)$/i
37 |
38 | export default handler
--------------------------------------------------------------------------------
/plugins/fun-generate_purba.js:
--------------------------------------------------------------------------------
1 | function handler(m, { text }) {
2 | let teks = text ? text : m.quoted && m.quoted.text ? m.quoted.text : m.text
3 | m.reply(teks.replace(/[aiueo]/gi, '$&ve'))
4 | }
5 | handler.help = ['purba ']
6 | handler.tags = ['fun']
7 | handler.command = /^(purba)$/i
8 |
9 |
10 | export default handler
--------------------------------------------------------------------------------
/plugins/fun-how.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, command, text, usedPrefix }) => {
2 | if (!text) throw `Use example ${usedPrefix}${command} i'm`
3 | conn.reply(m.chat, `
4 | ${command} *${text}*
5 | *${text}* is *${(101).getRandom()}*% ${command.replace('how', '').toUpperCase()}
6 | `.trim(), m, m.mentionedJid ? {
7 | mentions: m.mentionedJid
8 | } : {})
9 | }
10 | handler.help = ['gay', 'pintar', 'cantik', 'ganteng', 'gabut', 'gila', 'lesbi', 'stress', 'bucin', 'jones', 'sadboy'].map(v => 'how' + v + ' siapa?')
11 | handler.tags = ['kerang', 'fun']
12 | handler.command = /^how(gay|pintar|cantik|ganteng|gabut|gila|lesbi|stress?|bucin|jones|sadboy)/i
13 |
14 | export default handler
--------------------------------------------------------------------------------
/plugins/fun-jadian.js:
--------------------------------------------------------------------------------
1 | let toM = a => '@' + a.split('@')[0]
2 | function handler(m, { groupMetadata }) {
3 | let ps = groupMetadata.participants.map(v => v.id)
4 | let a = ps.getRandom()
5 | let b
6 | do b = ps.getRandom()
7 | while (b === a)
8 | m.reply(`${toM(a)} ❤️ ${toM(b)}`, null, {
9 | mentions: [a, b]
10 | })
11 | }
12 | handler.help = ['jadian']
13 | handler.tags = ['main', 'fun']
14 | handler.command = ['jadian']
15 |
16 | handler.group = true
17 |
18 | export default handler
--------------------------------------------------------------------------------
/plugins/fun-kapankah.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => conn.reply(m.chat, `
2 | *Pertanyaan:* ${m.text}
3 | *Jawaban:* ${(10).getRandom()} ${['detik', 'menit', 'jam', 'hari', 'minggu', 'bulan', 'tahun', 'dekade', 'abad'].getRandom()} lagi ...
4 | `.trim(), m, m.mentionedJid ? {
5 | mentions: m.mentionedJid
6 | } : {})
7 |
8 | handler.help = ['', 'kah'].map(v => 'kapan' + v + ' ?')
9 | handler.tags = ['kerang', 'fun']
10 | handler.customPrefix = /(\?$)/
11 | handler.command = /^kapan(kah)?$/i
12 |
13 | export default handler
--------------------------------------------------------------------------------
/plugins/fun-kapankah2.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, command, text }) => conn.reply(m.chat, `
2 | *Pertanyaan:* ${command} ${text}
3 | *Jawaban:* ${(10).getRandom()} ${['detik', 'menit', 'jam', 'hari', 'minggu', 'bulan', 'tahun', 'dekade', 'abad'].getRandom()} lagi ...
4 | `.trim(), m, m.mentionedJid ? {
5 | mentions: m.mentionedJid
6 | } : {})
7 |
8 | handler.help = ['', 'kah'].map(v => 'kapan' + v + ' ?')
9 | handler.tags = ['kerang', 'fun']
10 | handler.command = /^kapan(kah)?$/i
11 |
12 | export default handler
--------------------------------------------------------------------------------
/plugins/fun-kerangajaib.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { text, command, usedPrefix }) => {
2 | if (!text) throw `Use example ${usedPrefix}${command} i'm alien?`
3 | m.reply(`"${[
4 | 'Mungkin suatu hari',
5 | 'Tidak juga',
6 | 'Tidak keduanya',
7 | 'Kurasa tidak',
8 | 'Ya',
9 | 'Coba tanya lagi',
10 | 'Tidak ada'
11 | ].getRandom()}."`)
12 | }
13 | handler.help = ['kerang', 'kerangajaib'].map(v => v + ' ')
14 | handler.tags = ['kerang', 'fun']
15 |
16 | handler.command = /^(kulit)?kerang(ajaib)?$/i
17 |
18 | export default handler
19 |
--------------------------------------------------------------------------------
/plugins/fun-nomorhoki.js:
--------------------------------------------------------------------------------
1 | import axios from "axios"
2 | let handler = async(m, { conn, text }) => {
3 |
4 | if (!text) return conn.reply(m.chat, 'Silahkan masukan nomor hpmu yang akan diartikan', m)
5 |
6 | axios.get(`https://kocakz.herokuapp.com/api/primbon/nomorhoki?nomor=${text}`).then ((res) => {
7 | let hasil = `Nomor HP : ${res.data.result.hoki}\nPositif : ${res.data.result.positif}\nNegatif : ${res.data.result.positif}`
8 |
9 | conn.reply(m.chat, hasil, m)
10 | })
11 | }
12 | handler.help = ['nomorhoki'].map(v => v + ' ')
13 | handler.tags = ['fun', 'limitmenu']
14 | handler.command = /^(nomorhoki)$/i
15 | handler.fail = null
16 | handler.exp = 0
17 | handler.limit = true
18 |
19 | export default handler
--------------------------------------------------------------------------------
/plugins/fun-pick.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { text, args, participants, command }) => {
2 | if (args[0] < 0, args.length < 2) throw 'Example: #pick 15 gay'
3 | let users = participants.map(u => u.jid)
4 | m.reply(`*🎉 Kamu Ter${command} sebagai ${text.replace(args, '').trimStart()}*
5 |
6 | ${new Array(Math.min(users.length, args[0])).fill().map(() => {
7 | let index = Math.floor(Math.random() * users.length)
8 | return `@${users.splice(index, 1)}`
9 | }).join`\n`.replace(/@s.whatsapp.net/g,'')}`)
10 | }
11 | handler.help = ['pick ']
12 | handler.tags = ['fun']
13 | handler.command = /^pick/i
14 |
15 | export default handler
16 |
--------------------------------------------------------------------------------
/plugins/fun-simi.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | let handler = async (m, {text, args}) => {
3 | if (!args[0]) throw `Use example .simi halo`
4 | let api = await fetch(`https://simsimi.info/api/?text=${text}&lc=id`)
5 | let res = await api.json()
6 | m.reply(res.success)
7 | }
8 | handler.command = ['simi']
9 | handler.tags = ['fun']
10 | handler.help = ['simi']
11 |
12 | export default handler
--------------------------------------------------------------------------------
/plugins/game-asahotak_hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.asahotak = conn.asahotak ? conn.asahotak : {}
3 | let id = m.chat
4 | if (!(id in conn.asahotak)) throw false
5 | let json = conn.asahotak[id][1]
6 | let clue = json.jawaban.replace(/[AIUEOaiueo]/g, '_')
7 | conn.reply(m.chat, '```' + clue + '```\nBalas soalnya, bukan pesan ini', conn.asahotak[id][0])
8 | }
9 | handler.command = /^ao$/i
10 | handler.limit = false
11 | export default handler
12 |
--------------------------------------------------------------------------------
/plugins/game-caklontong_hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.caklontong = conn.caklontong ? conn.caklontong : {}
3 | let id = m.chat
4 | if (!(id in conn.caklontong)) throw false
5 | let json = conn.caklontong[id][1]
6 | let ans = json.jawaban
7 | let clue = ans.replace(/[AIUEO]/gi, '_')
8 | m.reply('```' + clue + '```')
9 | }
10 | handler.command = /^calo$/i
11 |
12 | handler.limit = true
13 |
14 | export default handler
--------------------------------------------------------------------------------
/plugins/game-family100.js:
--------------------------------------------------------------------------------
1 | import { family100 } from '@bochilteam/scraper'
2 | const winScore = 4999
3 | async function handler(m) {
4 | this.game = this.game ? this.game : {}
5 | let id = 'family100_' + m.chat
6 | if (id in this.game) {
7 | this.reply(m.chat, 'Masih ada kuis yang belum terjawab di chat ini', this.game[id].msg)
8 | throw false
9 | }
10 | const json = await family100()
11 | let caption = `
12 | *Soal:* ${json.soal}
13 | Terdapat *${json.jawaban.length}* jawaban${json.jawaban.find(v => v.includes(' ')) ? `
14 | (beberapa jawaban terdapat spasi)
15 | `: ''}
16 | +${winScore} XP tiap jawaban benar
17 | `.trim()
18 | this.game[id] = {
19 | id,
20 | msg: await this.sendButton(m.chat, caption, author, null, [['Nyerah', 'nyerah']], m),
21 | ...json,
22 | terjawab: Array.from(json.jawaban, () => false),
23 | winScore,
24 | }
25 | }
26 | handler.help = ['family100']
27 | handler.tags = ['game']
28 | handler.command = /^family100$/i
29 |
30 | export default handler
--------------------------------------------------------------------------------
/plugins/game-gombal-hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.tebakgombal = conn.tebakgombal ? conn.tebakgombal : {}
3 | let id = m.chat
4 | if (!(id in conn.tebakgombal)) throw false
5 | let json = conn.tebakgombal[id][1]
6 | conn.sendButton(m.chat, '```' + json.jawaban.replace(/[AIUEOaiueo]/ig, '_') + '```', author, null, [
7 | ['Nyerah', 'menyerah']
8 | ], m)
9 | }
10 | handler.command = /^hgom$/i
11 |
12 | handler.limit = true
13 |
14 | export default handler
--------------------------------------------------------------------------------
/plugins/game-lengkapikalimat-hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.lengkapikalimat = conn.lengkapikalimat ? conn.lengkapikalimat : {}
3 | let id = m.chat
4 | if (!(id in conn.lengkapikalimat)) throw false
5 | let json = conn.lengkapikalimat[id][1]
6 | conn.sendButton(m.chat, '```' + json.jawaban.replace(/[AIUEOaiueo]/ig, '_') + '```', author, null, [
7 | ['Nyerah', 'menyerah']
8 | ], m)
9 | }
10 | handler.command = /^hlen$/i
11 |
12 | handler.limit = true
13 |
14 | export default handler
--------------------------------------------------------------------------------
/plugins/game-siapakahaku_hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.siapakahaku = conn.siapakahaku ? conn.siapakahaku : {}
3 | let id = m.chat
4 | if (!(id in conn.siapakahaku)) throw false
5 | let json = conn.siapakahaku[id][1]
6 | let ans = json.jawaban
7 | let clue = ans.replace(/[bcdfghjklmnpqrstvwxyz]/ig, '_')
8 | m.reply('```' + clue + '```')
9 | }
10 | handler.command = /^who$/i
11 |
12 | handler.limit = true
13 |
14 | export default handler
--------------------------------------------------------------------------------
/plugins/game-susunkata_hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.susunkata = conn.susunkata ? conn.susunkata : {}
3 | let id = m.chat
4 | if (!(id in conn.susunkata)) throw false
5 | let json = conn.susunkata[id][1]
6 | let ans = json.jawaban.trim()
7 | let clue = ans.replace(/[AIUEOaiueo]/g, '_')
8 | conn.reply(m.chat, '```' + clue + '```\nBalas soalnya, bukan pesan ini', conn.susunkata[id][0])
9 | }
10 | handler.command = /^suka$/i
11 | handler.limit = true
12 | export default handler
13 |
--------------------------------------------------------------------------------
/plugins/game-tebakan-hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.tebaktebakan = conn.tebaktebakan ? conn.tebaktebakan : {}
3 | let id = m.chat
4 | if (!(id in conn.tebaktebakan)) throw false
5 | let json = conn.tebaktebakan[id][1]
6 | conn.sendButton(m.chat, '```' + json.jawaban.replace(/[AIUEOaiueo]/ig, '_') + '```', author, null, [
7 | ['Nyerah', 'menyerah']
8 | ], m)
9 | }
10 | handler.command = /^hteb$/i
11 |
12 | handler.limit = true
13 |
14 | export default handler
--------------------------------------------------------------------------------
/plugins/game-tebakanjime-hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.tebakanjime = conn.tebakanjime ? conn.tebakanjime : {}
3 | let id = m.chat
4 | if (!(id in conn.tebakanjime)) throw false
5 | let json = conn.tebakanjime[id][1]
6 | conn.sendButton(m.chat, '```' + json.name.replace(/[AIUEOaiueo]/ig, '_') + '```', author, null, [
7 | ['Nyerah', 'menyerah']
8 | ], m)
9 | }
10 | handler.command = /^hani$/i
11 |
12 | handler.limit = true
13 |
14 | export default handler
--------------------------------------------------------------------------------
/plugins/game-tebakbendera_hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.tebakbendera = conn.tebakbendera ? conn.tebakbendera : {}
3 | let id = m.chat
4 | if (!(id in conn.tebakbendera)) throw false
5 | let json = conn.tebakbendera[id][1]
6 | m.reply('```' + json.name.replace(/[bcdfghjklmnpqrstvwxyz]/g, '_') + '```\nBalas soalnya Bukan Pesan ini_-')
7 | }
8 | handler.command = /^tebe$/i
9 | handler.limit = true
10 | export default handler
11 |
--------------------------------------------------------------------------------
/plugins/game-tebakchara-hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.tebakchara = conn.tebakchara ? conn.tebakchara : {}
3 | let id = m.chat
4 | if (!(id in conn.tebakchara)) throw false
5 | let json = conn.tebakchara[id][1]
6 | conn.sendButton(m.chat, '```' + json.name.replace(/[AIUEOaiueo]/ig, '_') + '```', author, null, [
7 | ['Nyerah', 'menyerah']
8 | ], m)
9 | }
10 | handler.command = /^hcha$/i
11 |
12 | handler.limit = true
13 |
14 | export default handler
--------------------------------------------------------------------------------
/plugins/game-tebakgambar_hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.tebakgambar = conn.tebakgambar ? conn.tebakgambar : {}
3 | let id = m.chat
4 | if (!(id in conn.tebakgambar)) throw false
5 | let json = conn.tebakgambar[id][1]
6 | conn.sendButton(m.chat, '```' + json.jawaban.replace(/[bcdfghjklmnpqrstvwxyz]/ig, '_') + '```', author, null, [
7 | ['nyerah', 'menyerah']
8 | ], m)
9 | }
10 | handler.command = /^hint$/i
11 |
12 | handler.limit = true
13 |
14 | export default handler
--------------------------------------------------------------------------------
/plugins/game-tebakgame-hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.tebakgame = conn.tebakgame ? conn.tebakgame : {}
3 | let id = m.chat
4 | if (!(id in conn.tebakgame)) throw false
5 | let json = conn.tebakgame[id][1]
6 | conn.sendButton(m.chat, '```' + json.jawaban.replace(/[AIUEOaiueo]/ig, '_') + '```', author, null, [
7 | ['Nyerah', 'menyerah']
8 | ], m)
9 | }
10 | handler.command = /^hgame$/i
11 |
12 | handler.limit = true
13 |
14 | export default handler
--------------------------------------------------------------------------------
/plugins/game-tebakjenaka-hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.tebakjenaka = conn.tebakjenaka ? conn.tebakjenaka : {}
3 | let id = m.chat
4 | if (!(id in conn.tebakjenaka)) throw false
5 | let json = conn.tebakjenaka[id][1]
6 | conn.sendButton(m.chat, '```' + json.jawaban.replace(/[AIUEOaiueo]/ig, '_') + '```', author, null, [
7 | ['Nyerah', 'menyerah']
8 | ], m)
9 | }
10 | handler.command = /^hjen$/i
11 |
12 | handler.limit = true
13 |
14 | export default handler
--------------------------------------------------------------------------------
/plugins/game-tebakkabupaten_hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.tebakkabupaten = conn.tebakkabupaten ? conn.tebakkabupaten : {}
3 | let id = m.chat
4 | if (!(id in conn.tebakkabupaten)) throw false
5 | let json = conn.tebakkabupaten[id][1]
6 | conn.reply(m.chat, '```' + json.title.replace(/[AIUEOaiueo]/g, '_') + '```\nBalas gambarnya, bukan pesan ini', conn.tebakkabupaten[id][0])
7 | }
8 | handler.command = /^tebu$/i
9 |
10 | export default handler
--------------------------------------------------------------------------------
/plugins/game-tebakkalimat-hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.tebakkalimat = conn.tebakkalimat ? conn.tebakkalimat : {}
3 | let id = m.chat
4 | if (!(id in conn.tebakkalimat)) throw false
5 | let json = conn.tebakkalimat[id][1]
6 | conn.sendButton(m.chat, '```' + json.jawaban.replace(/[AIUEOaiueo]/ig, '_') + '```', author, null, [
7 | ['Nyerah', 'menyerah']
8 | ], m)
9 | }
10 | handler.command = /^hkal$/i
11 |
12 | handler.limit = true
13 |
14 | export default handler
--------------------------------------------------------------------------------
/plugins/game-tebakkimia_hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.tebakkimia = conn.tebakkimia ? conn.tebakkimia : {}
3 | let id = m.chat
4 | if (!(id in conn.tebakkimia)) throw false
5 | let json = conn.tebakkimia[id][1]
6 | conn.reply(m.chat, '```' + json.bantuan + '```\nBalas soalnya, bukan pesan ini!', conn.tebakkimia[id][0])
7 | }
8 | handler.command = /^teki$/i
9 |
10 | handler.limit = 1
11 |
12 | export default handler
--------------------------------------------------------------------------------
/plugins/game-tebaklagu_hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.tebaklagu = conn.tebaklagu ? conn.tebaklagu : {}
3 | let id = m.chat
4 | if (!(id in conn.tebaklagu)) throw false
5 | let json = conn.tebaklagu[id][1]
6 | let nya = json.judul
7 | let nyanya = nya.replace(/[bcdfghjklmnpqrstvwxyz]/g, '_')
8 | m.reply('```' + nyanya + '```')
9 | }
10 | handler.command = /^cek$/i
11 | handler.limit = true
12 | export default handler
--------------------------------------------------------------------------------
/plugins/game-tebaklirik_hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.tebakirik = conn.tebakirik ? conn.tebakirik : {}
3 | let id = m.chat
4 | if (!(id in conn.tebakirik)) throw false
5 | let json = conn.tebakirik[id][1]
6 | m.reply('```' + json.jawaban.replace(/[AUIEOaiueo]/g, '_') + '```')
7 | }
8 | handler.command = /^teli$/i
9 | handler.limit = true
10 | export default handler
--------------------------------------------------------------------------------
/plugins/game-tebaklogo-hint.js:
--------------------------------------------------------------------------------
1 | /*
2 | let handler = async (m, { conn }) => {
3 | conn.tebaklogo = conn.tebaklogo ? conn.tebaklogo : {}
4 | let id = m.chat
5 | if (!(id in conn.tebaklogo)) throw false
6 | let json = conn.tebaklogo[id][1]
7 | conn.sendButton(m.chat, '```' + json.hasil.data.jawaban.replace(/[AIUEOaiueo]/ig, '_') + '```', author, null, [
8 | ['Nyerah', 'menyerah']
9 | ], m)
10 | }
11 | handler.command = /^hani$/i
12 |
13 | handler.limit = true
14 |
15 | export default handler
16 | */
17 |
--------------------------------------------------------------------------------
/plugins/game-tebaksiapa-hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.tebaksiapa = conn.tebaksiapa ? conn.tebaksiapa : {}
3 | let id = m.chat
4 | if (!(id in conn.tebaksiapa)) throw false
5 | let json = conn.tebaksiapa[id][1]
6 | conn.sendButton(m.chat, '```' + json.jawaban.replace(/[AIUEOaiueo]/ig, '_') + '```', author, null, [
7 | ['Nyerah', 'menyerah']
8 | ], m)
9 | }
10 | handler.command = /^hsia$/i
11 |
12 | handler.limit = true
13 |
14 | export default handler
--------------------------------------------------------------------------------
/plugins/game-tebakumur.js:
--------------------------------------------------------------------------------
1 | import axios from "axios"
2 | let handler = async(m, { conn, text }) => {
3 |
4 | if (!text) return conn.reply(m.chat, 'Masukan Teksnya', m)
5 |
6 | await m.reply('Searching...')
7 | axios.get(`http://lolhuman.herokuapp.com/api/tebakumur?apikey=31caf10e4a64e86c1a92bcba&name=${text}`).then ((res) => {
8 | let hasil = `Namamu : ${text}\nUmurmu : ${res.data.result.age}`
9 |
10 | conn.reply(m.chat, hasil, m)
11 | })
12 | }
13 | handler.help = ['tebakumur'].map(v => v + ' ')
14 | handler.tags = ['internet', 'fun', 'limitmenu']
15 | handler.command = /^(tebakumur)$/i
16 | handler.owner = false
17 | handler.mods = false
18 | handler.premium = false
19 | handler.group = false
20 | handler.private = false
21 |
22 | handler.admin = false
23 | handler.botAdmin = false
24 |
25 | handler.fail = null
26 | handler.exp = 0
27 | handler.limit = true
28 |
29 | export default handler
30 |
--------------------------------------------------------------------------------
/plugins/game-tekateki_hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.tekateki = conn.tekateki ? conn.tekateki : {}
3 | let id = m.chat
4 | if (!(id in conn.tekateki)) throw 0
5 | let json = conn.tekateki[id][1]
6 | conn.reply(m.chat, '```' + json.bantuan + '```\nBalas soalnya, bukan pesan ini!', conn.tekateki[id][0])
7 | }
8 | handler.command = /^tete$/i
9 |
10 | handler.limit = 1
11 |
12 | export default handler
--------------------------------------------------------------------------------
/plugins/games-tebakkata_hint.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | conn.tebakkata = conn.tebakkata ? conn.tebakkata : {}
3 | let id = m.chat
4 | if (!(id in conn.tebakkata)) throw false
5 | let json = conn.tebakkata[id][1]
6 | let ans = json.jawaban.trim()
7 | let clue = ans.replace(/[AIUEO]/gi, '_')
8 | m.reply('```' + clue + '```')
9 | }
10 | handler.command = /^teka$/i
11 |
12 | handler.limit = true
13 |
14 | export default handler
--------------------------------------------------------------------------------
/plugins/group-demote.js:
--------------------------------------------------------------------------------
1 | import { areJidsSameUser } from '@adiwajshing/baileys'
2 | let handler = async (m, { conn, participants }) => {
3 | let users = m.mentionedJid.filter(u => !areJidsSameUser(u, conn.user.id))
4 | let user = m.mentionedJid && m.mentionedJid[0]
5 | await conn.groupParticipantsUpdate(m.chat, [user], 'demote')
6 |
7 | m.reply('Succes')
8 |
9 | }
10 | handler.help = ['demote @tag']
11 | handler.tags = ['group']
12 | handler.command = /^(demote)$/i
13 |
14 | handler.admin = true
15 | handler.group = true
16 | handler.botAdmin = true
17 |
18 | export default handler
--------------------------------------------------------------------------------
/plugins/group-kick.js:
--------------------------------------------------------------------------------
1 | import { areJidsSameUser } from '@adiwajshing/baileys'
2 | let handler = async (m, { conn, participants }) => {
3 | let users = m.mentionedJid.filter(u => !areJidsSameUser(u, conn.user.id))
4 | let kickedUser = []
5 | for (let user of users)
6 | if (user.endsWith('@s.whatsapp.net') && !(participants.find(v => areJidsSameUser(v.id, user)) || { admin: true }).admin) {
7 | const res = await conn.groupParticipantsUpdate(m.chat, [user], 'remove')
8 | kickedUser.concat(res)
9 | await delay(1 * 1000)
10 | }
11 | m.reply(`Succes kick ${kickedUser.map(v => '@' + v.split('@')[0])}`, null, { mentions: kickedUser })
12 |
13 | }
14 | handler.help = ['kick'].map(v => v + ' @user')
15 | handler.tags = ['group']
16 | handler.command = /^(kick)$/i
17 | handler.admin = true
18 | handler.group = true
19 | handler.botAdmin = true
20 |
21 | export default handler
22 |
23 | const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms))
24 |
--------------------------------------------------------------------------------
/plugins/group-link.js:
--------------------------------------------------------------------------------
1 | import { areJidsSameUser } from '@adiwajshing/baileys'
2 | let handler = async (m, { conn, args }) => {
3 | let group = m.chat
4 | if (/^[0-9]{5,16}-?[0-9]+@g\.us$/.test(args[0])) group = args[0]
5 | if (!/^[0-9]{5,16}-?[0-9]+@g\.us$/.test(group)) throw 'Hanya bisa dibuka di grup'
6 | let groupMetadata = await conn.groupMetadata(group)
7 | if (!groupMetadata) throw 'groupMetadata is undefined :\\'
8 | if (!('participants' in groupMetadata)) throw 'participants is not defined :('
9 | let me = groupMetadata.participants.find(user => areJidsSameUser(user.id, conn.user.id))
10 | if (!me) throw 'Aku tidak ada di grup itu :('
11 | if (!me.admin) throw 'Aku bukan admin T_T'
12 | m.reply('https://chat.whatsapp.com/' + await conn.groupInviteCode(group))
13 | }
14 | handler.help = ['linkgroup']
15 | handler.tags = ['group']
16 | handler.command = /^link(gro?up)?$/i
17 |
18 |
19 | export default handler
--------------------------------------------------------------------------------
/plugins/group-pengumuman.js:
--------------------------------------------------------------------------------
1 | import { generateWAMessageFromContent } from '@adiwajshing/baileys'
2 | let handler = async (m, { conn, text, participants }) => {
3 | let users = participants.map(u => conn.decodeJid(u.id))
4 | let q = m.quoted ? m.quoted : m
5 | let c = m.quoted ? m.quoted : m.msg
6 | const msg = conn.cMod(m.chat,
7 | generateWAMessageFromContent(m.chat, {
8 | [c.toJSON ? q.mtype : 'extendedTextMessage']: c.toJSON ? c.toJSON() : {
9 | text: c || ''
10 | }
11 | }, {
12 | quoted: m,
13 | userJid: conn.user.id
14 | }),
15 | text || q.text, conn.user.jid, { mentions: users }
16 | )
17 | await conn.relayMessage(m.chat, msg.message, { messageId: msg.key.id })
18 | }
19 | handler.help = ['pengumuman', 'announce', 'hidetag'].map(v => v + ' [teks]')
20 | handler.tags = ['group']
21 | handler.command = /^(pengumuman|announce|hiddentag|hidetag)$/i
22 |
23 | handler.group = true
24 | handler.admin = true
25 |
26 | export default handler
27 |
28 |
--------------------------------------------------------------------------------
/plugins/group-promote.js:
--------------------------------------------------------------------------------
1 | import { areJidsSameUser } from '@adiwajshing/baileys'
2 | let handler = async (m, { conn, participants }) => {
3 | let users = m.mentionedJid.filter(u => !areJidsSameUser(u, conn.user.id))
4 | let promoteUser = []
5 | for (let user of users)
6 | if (user.endsWith('@s.whatsapp.net') && !(participants.find(v => areJidsSameUser(v.id, user)) || { admin: true }).admin) {
7 | const res = await conn.groupParticipantsUpdate(m.chat, [user], 'promote')
8 | await delay(1 * 1000)
9 | }
10 | m.reply('Succes')
11 |
12 | }
13 | handler.help = ['promote @tag']
14 | handler.tags = ['group']
15 | handler.command = /^(promote)$/i
16 |
17 | handler.admin = true
18 | handler.group = true
19 | handler.botAdmin = true
20 |
21 | export default handler
22 |
23 | const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms))
--------------------------------------------------------------------------------
/plugins/group-setname-gc.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, args, usedPrefix, command }) => {
2 |
3 | await conn.groupUpdateSubject(m.chat, `${args.join(" ")}`);
4 | m.reply('Sukses mengganti nama group')
5 | }
6 |
7 | handler.help = ['setnamegc ']
8 | handler.tags = ['group']
9 | handler.command = /^setnamegc$/i
10 | handler.owner = false
11 | handler.mods = false
12 | handler.premium = false
13 | handler.group = true
14 | handler.private = false
15 | handler.register = false
16 | handler.admin = true
17 | handler.botAdmin = true
18 |
19 | export default handler
20 |
--------------------------------------------------------------------------------
/plugins/group-setppgc.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, usedPrefix, command }) => {
2 | let q = m.quoted ? m.quoted : m
3 | let mime = (q.msg || q).mimetype || ''
4 | if (/image/.test(mime)) {
5 | let img = await q.download()
6 | if (!img) throw 'Gambar tidak ditemukan'
7 | await conn.updateProfilePicture(m.chat, img)
8 | } else throw `kirim/balas gambar dengan caption *${usedPrefix + command}*`
9 | }
10 | handler.help = ['setpp']
11 | handler.tags = ['group']
12 |
13 | handler.command = /^setpp$/i
14 |
15 | handler.group = true
16 | handler.admin = true
17 | handler.botAdmin = true
18 |
19 | export default handler
20 |
--------------------------------------------------------------------------------
/plugins/group-settings.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, args, usedPrefix, command }) => {
2 | let isClose = { // Switch Case Like :v
3 | 'open': 'not_announcement',
4 | 'close': 'announcement',
5 | }[(args[0] || '')]
6 | if (isClose === undefined)
7 | throw `
8 | *Format salah! Contoh :*
9 | *○ ${usedPrefix + command} close*
10 | *○ ${usedPrefix + command} open*
11 | `.trim()
12 | await conn.groupSettingUpdate(m.chat, isClose)
13 | }
14 | handler.help = ['group *open / close*']
15 | handler.tags = ['group']
16 | handler.command = /^(group)$/i
17 |
18 | handler.admin = true
19 | handler.botAdmin = true
20 |
21 | export default handler
22 |
--------------------------------------------------------------------------------
/plugins/group-tagall.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, text, participants, isAdmin, isOwner }) => {
2 | let users = participants.map(u => u.id).filter(v => v !== conn.user.jid)
3 | m.reply(`${text ? `${text}\n` : ''}┌─「 Tag All 」\n` + users.map(v => '│◦❒ @' + v.replace(/@.+/, '')).join`\n` + '\n└────', null, {
4 | mentions: users
5 | })
6 | }
7 |
8 | handler.help = ['tagall']
9 | handler.tags = ['group']
10 | handler.command = ['tagall']
11 | handler.admin = true
12 | handler.group = true
13 |
14 | export default handler
15 |
--------------------------------------------------------------------------------
/plugins/group-tagme.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, text }) => {
2 | let tag = `@${m.sender.replace(/@.+/, '')}`
3 | let mentionedJid = [m.sender]
4 | conn.reply(m.chat, tag, m, { contextInfo: { mentionedJid }})
5 | }
6 | handler.help = ['tagme']
7 | handler.tags = ['group']
8 | handler.command = /^tagme$/i
9 |
10 | handler.group = false
11 |
12 | export default handler
--------------------------------------------------------------------------------
/plugins/hello.js:
--------------------------------------------------------------------------------
1 | import fs from 'fs'
2 | import fetch from 'node-fetch'
3 | let handler = async (m, { conn, usedPrefix: _p }) => {
4 | let info = fs.readFileSync('./mp3/little-girl-sayingtalking-hello-sound-effectcute-sound-effectsadorable.opus')
5 |
6 | let td = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
7 |
8 | conn.reply(m.chat, info, m, { quoted: fkontak },{ contextInfo: { externalAdReply: { showAdAttribution: true,
9 | mediaUrl: "https://www.youtube.com/channel/UCMx4e8anOq_Olt2nMSv0Cow",
10 | mediaType: 2,
11 | description: "https://www.youtube.com/channel/UCMx4e8anOq_Olt2nMSv0Cow",
12 | title: 'whmods-ᴍᴜʟᴛɪᴅᴇᴠɪᴄᴇ',
13 | body: wm,
14 | thumbnail: thumb,
15 | sourceUrl: sig }}})
16 | }
17 | handler.customPrefix = /^(hallo|hello|alo|allo)$/i
18 | handler.command = new RegExp
19 |
20 | export default handler
--------------------------------------------------------------------------------
/plugins/host-bcgcb.js:
--------------------------------------------------------------------------------
1 | import fs from 'fs'
2 | let handler = async (m, { conn, text } ) => {
3 | let groups = Object.entries(conn.chats).filter(([jid, chat]) => jid.endsWith('@g.us') && chat.isChats && !chat.metadata?.read_only && !chat.metadata?.announce).map(v => v[0])
4 |
5 | for (let id of groups) {
6 | let member = (await conn.groupMetadata(id)).participants.map(v => v.jid)
7 | conn.sendButton(id, '────━┅ *BROADCAST* ┅━────\n' + text, wm, fla + 'BROADCAST', [['OWNER 🎐', '.owner'],['DONASI ✨', '.donasi']], false, { contextInfo: { externalAdReply: {title: namebot, body: bottime, sourceUrl: sig, thumbnail: fs.readFileSync('./thumbnail.jpg') }}})
8 | }
9 | }
10 | handler.command = ['bcgcb']
11 | handler.tags = ['host']
12 | handler.help = ['bcgcb']
13 | export default handler
14 |
--------------------------------------------------------------------------------
/plugins/image-gimage.js:
--------------------------------------------------------------------------------
1 | import { googleImage } from '@bochilteam/scraper'
2 | let handler = async (m, { conn, text, usedPrefix, command }) => {
3 | if (!text) throw `Use example ${usedPrefix}${command} Minecraft`
4 | const res = await googleImage(text)
5 | let image = res.getRandom()
6 | let link = image
7 | let whmods = `*${htki} GOOGLE IMAGE ${htka}*
8 | 🔎 *Result:* ${text}
9 | 🌎 *Source:* Google`
10 | //conn.sendFile(m.chat, link, '', whmods, m)
11 | conn.sendButton(m.chat, whmods, botdate, link, [['Next', `.image ${text}`]], m)
12 | /* conn.sendHydrated (m.chat,`
13 | *${htki} GOOGLE IMAGE ${htka}*
14 | 🔎 *Result:* ${text}
15 | 🌎 *Source:* Google
16 | `, wm, link, link, '🔗 URL', null, null, [['Next', `.image ${text}`],[null,null],[null,null]],m) */
17 | }
18 | handler.help = ['gimage ', 'image ']
19 | handler.tags = ['internet', 'tools']
20 | handler.command = /^(gimage|image)$/i
21 |
22 | export default handler
23 |
24 |
--------------------------------------------------------------------------------
/plugins/image-pinterest.js:
--------------------------------------------------------------------------------
1 | import { pinterest } from '@bochilteam/scraper'
2 |
3 | let handler = async(m, { conn, text, usedPrefix, command }) => {
4 | if (!text) throw `Example use ${usedPrefix + command} minecraft`
5 | const json = await pinterest(text)
6 | conn.sendFile(m.chat, json.getRandom(), 'pinterest.jpg', `
7 | *Hasil pencarian*
8 | ${text}
9 | `.trim(), m)
10 | }
11 | handler.help = ['pinterest ']
12 | handler.tags = ['internet', 'image']
13 | handler.command = /^(pinterest)$/i
14 |
15 | export default handler
--------------------------------------------------------------------------------
/plugins/image-wallpaper.js:
--------------------------------------------------------------------------------
1 | import { wallpaper, wallpaperv2 } from '@bochilteam/scraper'
2 | let handler = async (m, { conn, text, usedPrefix, command }) => {
3 | if (!text) throw `Use example ${usedPrefix}${command} Minecraft`
4 | const res = await (/2/.test(command) ? wallpaperv2 : wallpaper)(text)
5 | const img = res[Math.floor(Math.random() * res.length)]
6 | conn.sendFile(m.chat, img, 'wallpaper.jpg', `Result from *${text}*`, m)
7 | }
8 | handler.help = ['', '2'].map(v => 'wallpaper' + v + ' ')
9 | handler.tags = ['downloader', 'image']
10 |
11 | handler.command = /^(wallpaper2?)$/i
12 |
13 | export default handler
--------------------------------------------------------------------------------
/plugins/info-grouplist.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | let txt = ''
3 | for (let [jid, chat] of Object.entries(conn.chats).filter(([jid, chat]) => jid.endsWith('@g.us') && chat.isChats)) txt += `${await conn.getName(jid)}\n🪪${jid} [${chat?.metadata?.read_only ? 'Left' : 'Joined'}]\n\n`
4 | m.reply(`List Groups:
5 | ${txt}
6 | `.trim())
7 | }
8 | handler.help = ['groups', 'grouplist']
9 | handler.tags = ['info']
10 | handler.command = /^(group(s|list))$/i
11 |
12 | export default handler
--------------------------------------------------------------------------------
/plugins/info-report.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, text, usedPrefix, command }) => {
2 | if (!text) throw `kalo kamu nemu pesan eror, lapor pake perintah ini\n\ncontoh:\n${usedPrefix + command} selamat siang owner, sy menemukan eror seperti berikut `
3 | if (text.length < 10) throw `Laporan terlalu pendek, minimal 10 karakter!`
4 | if (text.length > 1000) throw `Laporan terlalu panjang, maksimal 1000 karakter!`
5 | let teks = `*${command.toUpperCase()}!*\n\nDari : *@${m.sender.split`@`[0]}*\n\nPesan : ${text}\n`
6 | conn.reply(global.nomorown + '@s.whatsapp.net', m.quoted ? teks + m.quoted.text : teks, null, {
7 | contextInfo: {
8 | mentionedJid: [m.sender]
9 | }
10 | })
11 | m.reply(`_Pesan terkirim kepemilik bot, jika ${command.toLowerCase()} hanya main-main tidak akan ditanggapi._`)
12 | }
13 | handler.help = ['report', 'request'].map(v => v + ' ')
14 | handler.tags = ['info']
15 | handler.command = /^(report|request)$/i
16 | export default handler
--------------------------------------------------------------------------------
/plugins/info-script.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | let handler = async(m, { conn, text, usedPrefix, command }) => {
3 | let pp = await conn.profilePictureUrl(m.chat).catch(_ => null)
4 |
5 | let str = `*https://youtube.com/channel/UCTVeRHM0v0Hqv_-O8yVkFpw*`
6 | let wibu = `https://hadi-api.herokuapp.com/api/loli`
7 | let thumb = await(await fetch(wibu)).buffer()
8 | conn.sendButtonDoc(m.chat, str, wm,'ᴏᴋ','Bilek', m, { contextInfo: { externalAdReply: { showAdAttribution: true,
9 | mediaUrl: "https://Instagram.com/inizenscuy",
10 | title: 'Albedo-MultiDevice',
11 | body: 'want source code?',
12 | thumbnail: thumb,
13 | sourceUrl: sig
14 | }
15 | } })
16 | }
17 | handler.help = ['sc', 'script']
18 | handler.tags = ['info', 'main']
19 | handler.command = /^(script|sc)$/i
20 |
21 | export default handler
--------------------------------------------------------------------------------
/plugins/info-speedtest.js:
--------------------------------------------------------------------------------
1 | import cp from 'child_process'
2 | import { promisify } from 'util'
3 | let exec = promisify(cp.exec).bind(cp)
4 | let handler = async (m) => {
5 | await conn.reply(m.chat, "Wait", m)
6 | let o
7 | try {
8 | o = await exec('python speed.py')
9 | } catch (e) {
10 | o = e
11 | } finally {
12 | let { stdout, stderr } = o
13 | if (stdout.trim()) m.reply(stdout)
14 | if (stderr.trim()) m.reply(stderr)
15 | }
16 | }
17 | handler.help = ['testspeed']
18 | handler.tags = ['info']
19 | handler.command = /^(testspeed)$/i
20 |
21 | export default handler
22 |
--------------------------------------------------------------------------------
/plugins/info-statserver.js:
--------------------------------------------------------------------------------
1 | import cp from 'child_process'
2 | import { promisify } from 'util'
3 | let exec = promisify(cp.exec).bind(cp)
4 | let handler = async (m) => {
5 | await conn.reply(m.chat, "Wait", m)
6 | let o
7 | try {
8 | o = await exec('df -h')
9 | } catch (e) {
10 | o = e
11 | } finally {
12 | let { stdout, stderr } = o
13 | if (stdout.trim()) m.reply(stdout)
14 | if (stderr.trim()) m.reply(stderr)
15 | }
16 | }
17 | handler.help = ['statserver']
18 | handler.tags = ['info']
19 | handler.command = /^(statserver)$/i
20 |
21 | export default handler
22 |
--------------------------------------------------------------------------------
/plugins/info-totalfitur.js:
--------------------------------------------------------------------------------
1 | import fs from 'fs'
2 | let handler = async (m, { conn, args, command }) => {
3 | let totalf = Object.values(global.plugins).filter(
4 | (v) => v.help && v.tags
5 | ).length;
6 | await conn.sendButton(m.chat, `Total Fitur Bot Saat ini: ${totalf}\n`,wm + '\n\n' + botdate, thumb, [['MENU','.menu']], m, {
7 | contextInfo: { externalAdReply :{
8 | mediaUrl: '',
9 | mediaType: 2,
10 | description: 'anu',
11 | title: bottime,
12 | body: 'Total Cintaku Padamu', previewType: 0,
13 | thumbnail: fs.readFileSync("./thumbnail.jpg"),
14 | sourceUrl: sig
15 | }}
16 | })
17 | }
18 |
19 |
20 | handler.help = ['totalfitur']
21 | handler.tags = ['info']
22 | handler.command = ['totalfitur']
23 | export default handler
--------------------------------------------------------------------------------
/plugins/internet-blackpink.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 |
3 | let bpink = []
4 | fetch('https://raw.githubusercontent.com/arivpn/dbase/master/kpop/blekping.txt')
5 | .then(res => res.text())
6 | .then(txt => bpink = txt.split('\n'))
7 | let handler = async (m, { conn }) => {
8 | let img = bpink[Math.floor(Math.random() * bpink.length)]
9 | if (!img) throw img
10 | await conn.sendFile(m.chat, img, '', '© nih Blackpinknya jangan lupa subscribe channel WH MODS DEV 👍', m, 0, { thumbnail: await (await fetch(img)).buffer() })
11 | }
12 | handler.help = ['blackpink']
13 | handler.tags = ['internet']
14 | handler.limit = false
15 | handler.command = /^(bpink|bp|blackpink)$/i
16 |
17 | export default handler
18 |
--------------------------------------------------------------------------------
/plugins/internet-bts.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | let bts = []
3 | fetch ('https://raw.githubusercontent.com/arivpn/dbase/master/kpop/batues.txt')
4 | .then(res => res.text())
5 | .then(txt => bts = txt.split('\n'))
6 | let handler = async (m, { conn }) => {
7 | let img = bts[Math.floor(Math.random() * bts.length)]
8 | if (!img) throw img
9 | await conn.sendFile(m.chat, img, '', '© nih BTSnya 👍', m, 0, { thumbnail: await (await fetch(img)).buffer() })
10 | }
11 | handler.help = ['bts']
12 | handler.tags = ['internet']
13 | handler.limit = false
14 | handler.command = /^(bts)$/i
15 |
16 | export default handler
17 |
--------------------------------------------------------------------------------
/plugins/internet-cecan-random.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 |
3 | let arr = []
4 | fetch('https://raw.githubusercontent.com/arivpn/dbase/master/kpop/cecan.txt')
5 | .then(res => res.text())
6 | .then(txt => arr = txt.split('\n'))
7 | let handler = async (m, { conn }) => {
8 | let img = arr[Math.floor(Math.random() * arr.length)]
9 | if (!img) throw img
10 | await conn.sendFile(m.chat, img, '', '© nih cecan random nya jangan lupa subscribe channel WH MODS DEV👍', m, 0, { thumbnail: await (await fetch(img)).buffer() })
11 | }
12 | handler.help = ['cecanrandom']
13 | handler.tags = ['internet']
14 | handler.limit = false
15 | handler.command = /^(cecanrandom)$/i
16 |
17 | export default handler
18 |
--------------------------------------------------------------------------------
/plugins/internet-cecan-ukhty.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 |
3 | let zzz = []
4 | fetch('https://raw.githubusercontent.com/arivpn/dbase/master/kpop/ukhty.txt')
5 | .then(res => res.text())
6 | .then(txt => zzz = txt.split('\n'))
7 | let handler = async (m, { conn }) => {
8 | let img = zzz[Math.floor(Math.random() * zzz.length)]
9 | if (!img) throw img
10 | await conn.sendFile(m.chat, img, '', '© nih cecan ukhty nya jangan lupa subscribe channel WH MODS DEV👍', m, 0, { thumbnail: await (await fetch(img)).buffer() })
11 | }
12 | handler.help = ['cecanukhty']
13 | handler.tags = ['internet']
14 | handler.limit = false
15 | handler.command = /^(cecanukhty|ukhty)$/i
16 |
17 | export default handler
18 |
19 |
--------------------------------------------------------------------------------
/plugins/internet-cuaca.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 |
3 | let handler = async (m, { text, usedPrefix, command }) => {
4 | if (!text) throw `Pengunaan:\n${usedPrefix + command} \n\nContoh:\n${usedPrefix + command} Jakarta`
5 | let res = await fetch(API('https://api.openweathermap.org', '/data/2.5/weather', {
6 | q: text,
7 | units: 'metric',
8 | appid: '060a6bcfa19809c2cd4d97a212b19273'
9 | }))
10 | if (!res.ok) throw 'lokasi tidak ditemukan'
11 | let json = await res.json()
12 | if (json.cod != 200) throw json
13 | m.reply(`
14 | Lokasi: ${json.name}
15 | Negara: ${json.sys.country}
16 | Cuaca: ${json.weather[0].description}
17 | Suhu saat ini: ${json.main.temp} °C
18 | Suhu tertinggi: ${json.main.temp_max} °C
19 | Suhu terendah: ${json.main.temp_min} °C
20 | Kelembapan: ${json.main.humidity} %
21 | Angin: ${json.wind.speed} km/jam
22 | `.trim())
23 | }
24 |
25 | handler.help = ['cuaca']
26 | handler.tags = ['internet']
27 | handler.command = /^(cuaca|weather)$/i
28 |
29 | export default handler
30 |
--------------------------------------------------------------------------------
/plugins/internet-darkjokes.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | import bo from 'dhn-api'
3 | let handler = async (m, { conn }) => {
4 | const res = await bo.Darkjokes()
5 | await conn.sendButton(m.chat,`Dark ga si adick adick`, wm, res, [['Darkjoke','.darkjoke']] ,m)
6 | }
7 | handler.help = ['darkjoke']
8 | handler.tags = ['internet', 'limitmenu']
9 | handler.command = /^(darkjoke)$/i
10 | handler.limit = true
11 |
12 | export default handler
--------------------------------------------------------------------------------
/plugins/internet-exo.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 |
3 | let arr = []
4 | fetch('https://raw.githubusercontent.com/arivpn/dbase/master/kpop/exo.txt')
5 | .then(res => res.text())
6 | .then(txt => arr = txt.split('\n'))
7 | let handler = async (m, { conn }) => {
8 | let img = arr[Math.floor(Math.random() * arr.length)]
9 | if (!img) throw img
10 | await conn.sendFile(m.chat, img, '', '© nih EXOnya jangan lupa subscribe channel WH MODS DEV👍', m, 0, { thumbnail: await (await fetch(img)).buffer() })
11 | }
12 | handler.help = ['exo']
13 | handler.tags = ['internet']
14 | handler.limit = false
15 | handler.command = /^(exo)$/i
16 |
17 | export default handler
18 |
--------------------------------------------------------------------------------
/plugins/internet-jadwalbola.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | let handler = async (m, { conn, command }) => {
3 | let res = await fetch('https://x-restapi.herokuapp.com/api/jadwal-bola?apikey=BETA')
4 | if (res.status != 200) throw await res.text()
5 | let json = await res.json()
6 | if (!json.status) throw json
7 | m.reply(` *JADWAL BOLA*
8 |
9 | _*${json.data[0].kickoff}*_
10 | Waktu: _${json.data[0].waktu}_
11 | Channel tv: ${json.data[0].channel}
12 |
13 | _*${json.data[1].kickoff}*_
14 | Waktu: _${json.data[1].waktu}_
15 | Channel tv: ${json.data[1].channel}
16 |
17 | _*${json.data[2].kickoff}*_
18 | Waktu: _${json.data[2].waktu}_
19 | Channel tv: ${json.data[2].channel}
20 |
21 | _*${json.data[3].kickoff}*_
22 | Waktu: _${json.data[3].waktu}_
23 | Channel tv: ${json.data[3].channel}
24 |
25 | _*${json.data[4].kickoff}*_
26 | Waktu: _${json.data[4].waktu}_
27 | Channel tv: ${json.data[4].channel}
28 | `)
29 |
30 | }
31 | handler.help = ['jadwalbola']
32 | handler.tags = ['internet']
33 | handler.command = /^jadwalbola$/i
34 |
35 |
36 | export default handler
--------------------------------------------------------------------------------
/plugins/internet-kbbi.js:
--------------------------------------------------------------------------------
1 | import { kbbi } from '@bochilteam/scraper'
2 |
3 | let handler = async (m, { text, usedPrefix, command }) => {
4 | if (!text) throw `Example use ${usedPrefix}${command} halo`
5 | const res = await kbbi(text)
6 | m.reply(`
7 | ${res.map(v => `
8 | *📌${v.title}*
9 |
10 | ${v.means.map(v => '- ' + v).join('\n`')}
11 | `).join('\n').trim()}
12 |
13 | Note:
14 | p = Partikel: kelas kata yang meliputi kata depan, kata sambung, kata seru, kata sandang, ucapan salam
15 | n = Nomina: kata benda
16 | `.trim())
17 | }
18 | handler.help = ['kbbi ']
19 | handler.tags = ['internet']
20 | handler.command = /^kbbi$/i
21 |
22 | export default handler
--------------------------------------------------------------------------------
/plugins/internet-manga.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | let handler = async(m, { conn, text }) => {
3 | if (!text) throw `Masukkan query!`
4 | let res = await fetch(global.API('https://api.jikan.moe', '/v3/search/manga', { q: text }))
5 | if (!res.ok) throw await res.text()
6 | let json = await res.json()
7 | let { title, synopsis, chapters, url, volumes, score, image_url } = json.results[0]
8 | let mangaingfo = `*Title:* ${title}
9 | *Chapters:* ${chapters}
10 | *Volumes:* ${volumes}
11 | *Score:* ${score}
12 | *Synopsis:* ${synopsis}
13 | *Link*: ${url}`
14 | conn.sendFile(m.chat, image_url, '', mangaingfo, m)
15 | }
16 | handler.help = ['manga ']
17 | handler.tags = ['internet']
18 | handler.command = /^(manga)$/i
19 |
20 | export default handler
21 |
--------------------------------------------------------------------------------
/plugins/internet-memeindo.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 |
3 | let handler = async (m, { conn, text }) => {
4 | let res = await fetch('https://raw.githubusercontent.com/HasamiAini/wabot_takagisan/main/whatsapp%20bot%20takagisan/whatsapp%20bot%20takagisan/lib/memeindo.json')
5 | let json = await res.json();
6 | let url = json[Math.floor(Math.random() * json.length)]
7 | await conn.sendButtonImg(m.chat, await (await fetch(url.image)).buffer(), 'memeindo', 'Next', '.meme', m)
8 | }
9 | handler.command = /^(meme)$/i
10 | handler.tags = ['internet', 'limitmenu']
11 | handler.help = ['meme']
12 | handler.limit = true
13 | export default handler
14 |
--------------------------------------------------------------------------------
/plugins/internet-randommeme.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 |
3 | let handler = async (m, { conn, command }) => {
4 | let url = 'https://candaan-api-h590oa540-ardhptr21.vercel.app/api/image/random'
5 | if (!res.ok) throw await res.text()
6 | let json = await res.json()
7 | conn.sendButton(m.chat, 'mim indo :v', author, json.data.url, [['NEXT', `${command}`]], m)
8 | }
9 | handler.command = /^(meme)$/i
10 | handler.tags = ['internet']
11 | handler.help = ['meme']
12 |
13 | export default handler
14 |
--------------------------------------------------------------------------------
/plugins/jadwalsholat.js:
--------------------------------------------------------------------------------
1 | import { jadwalsholat } from '@bochilteam/scraper'
2 | let handler = async (m, { text, usedPrefix, command }) => {
3 | if (!text) throw `Use example ${usedPrefix}${command} semarang`
4 | const res = await jadwalsholat(text)
5 | m.reply(`
6 | Jadwal Sholat *${text}*
7 |
8 | ${Object.entries(res.today).map(([name, data]) => `*Sholat ${name}:* ${data}`).join('\n').trim()}
9 | `.trim())
10 | }
11 | handler.help = ['salat ']
12 | handler.tags = ['quran']
13 | handler.command = /^(jadwal)?s(a|o|ha|ho)lat$/i
14 |
15 | export default handler
--------------------------------------------------------------------------------
/plugins/kompasnews.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | import bo from 'dhn-api'
3 | let handler = async(m, { conn }) => {
4 | var a = await bo.KompasNews()
5 | var b = JSON.parse(JSON.stringify(a))
6 | var c = await conn.rand(b)
7 | //var c = b[Math.floor(Math.random() * b.length)]
8 | var { berita, berita_url, berita_thumb, berita_jenis, berita_diupload } = c
9 | var sell = `📺 *Kompas News*
10 |
11 | 📢 *Berita:* ${berita}
12 | 📁 *Type News:* ${berita_jenis}
13 | ⌚ *Uploded:* ${berita_diupload}
14 | 🛰 *Source Url:* ${berita_url}`
15 | conn.sendButton(m.chat, sell, wm, berita_thumb, [['Kompas News', '.kompasnews']], m, {jpegThumbnail: await(await fetch(berita_thumb)).buffer()})
16 | }
17 | handler.help = ['kompasnews']
18 | handler.tags = ['berita', 'limitmenu']
19 | handler.command = /^kompas(news)?$/i
20 | handler.limit = true
21 |
22 | export default handler
23 |
--------------------------------------------------------------------------------
/plugins/logo-kaneki.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | let handler = async (m, { conn, args }) => {
3 | let response = args.join(' ').split('|')
4 | if (!args[0]) throw 'Masukkan Parameter'
5 | m.reply('Proses...')
6 | let res = `https://ziy.herokuapp.com/api/maker/kaneki?nama=${response[0]}&apikey=xZiyy`
7 | conn.sendFile(m.chat, res, 'kaneki.jpg', `Sudah Jadi`, m, false)
8 | }
9 | handler.help = ['logokaneki'].map(v => v + ' ')
10 | handler.tags = ['logo']
11 | handler.command = /^(logokaneki)$/i
12 |
13 | export default handler
14 |
--------------------------------------------------------------------------------
/plugins/logo-loli.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | let handler = async (m, { conn, args }) => {
3 | let response = args.join(' ').split('|')
4 | if (!args[0]) throw 'Masukkan Parameter'
5 | m.reply('Proses...')
6 | let res = `https://ziy.herokuapp.com/api/maker/lolimaker?nama=${response[0]}&apikey=xZiyy`
7 | conn.sendFile(m.chat, res, 'sadboy.jpg', `Sudah Jadi`, m, false)
8 | }
9 | handler.help = ['logololi'].map(v => v + ' ')
10 | handler.tags = ['logo']
11 | handler.command = /^(logololi)$/i
12 | handler.register = false
13 |
14 | handler.limit = false
15 |
16 | export default handler
17 |
--------------------------------------------------------------------------------
/plugins/logo-neko.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | let handler = async (m, { conn, args }) => {
3 | let response = args.join(' ').split('|')
4 | if (!args[0]) throw 'Masukkan Parameter'
5 | m.reply('Proses...')
6 | let res = `https://ziy.herokuapp.com/api/maker/girlneko?text1=${response[0]}&text2=${response[1]}&apikey=xZiyy`
7 | conn.sendFile(m.chat, res, 'neko.jpg', `Sudah Jadi`, m, false)
8 | }
9 | handler.help = ['logoneko'].map(v => v + ' ')
10 | handler.tags = ['logo']
11 | handler.command = /^(logoneko)$/i
12 | handler.limit = false
13 |
14 | export default handler
15 |
--------------------------------------------------------------------------------
/plugins/logo-rem.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | let handler = async (m, { conn, args }) => {
3 | let response = args.join(' ').split('|')
4 | if (!args[0]) throw 'Masukkan Parameter'
5 | m.reply('proses..')
6 | let res = `https://ziy.herokuapp.com/api/maker/rem?nama=${response[0]}&apikey=xZiyy`
7 | conn.sendFile(m.chat, res, 'rem.jpg', `Nih kak`, m, false)
8 | }
9 | handler.help = ['logorem'].map(v => v + ' ')
10 | handler.tags = ['logo']
11 | handler.command = /^(logorem)$/i
12 | handler.register = false
13 |
14 | handler.limit = false
15 |
16 | export default handler
17 |
--------------------------------------------------------------------------------
/plugins/logo-sadboy.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | let handler = async (m, { conn, args }) => {
3 | let response = args.join(' ').split('|')
4 | if (!args[0]) throw 'Masukkan Parameter'
5 | m.reply('proses..')
6 | let res = `https://ziy.herokuapp.com/api/maker/sadboy?text1=${response[0]}&text2=${response[1]}&apikey=xZiyy`
7 | conn.sendFile(m.chat, res, 'sadboy.jpg', `Nih kak`, m, false)
8 | }
9 | handler.help = ['sadboylogo'].map(v => v + ' ')
10 | handler.tags = ['logo']
11 | handler.command = /^(logosadboy)$/i
12 | handler.limit = false
13 |
14 | export default handler
15 |
--------------------------------------------------------------------------------
/plugins/lyrics.js:
--------------------------------------------------------------------------------
1 | import { lyrics, lyricsv2 } from '@bochilteam/scraper'
2 |
3 | let handler = async (m, { conn, text, usedPrefix, command }) => {
4 | let teks = text ? text : m.quoted && m.quoted.text ? m.quoted.text : ''
5 | if (!teks) throw `Use example ${usedPrefix}${command} hallo`
6 | const result = await lyricsv2(teks).catch(async _ => await lyrics(teks))
7 | m.reply(`
8 | Lyrics *${result.title}*
9 | Author ${result.author}
10 |
11 |
12 | ${result.lyrics}
13 |
14 |
15 | Url ${result.link}
16 | `.trim())
17 | }
18 |
19 | handler.help = ['lirik'].map(v => v + ' ')
20 | handler.tags = ['internet']
21 | handler.command = /^(lirik|lyrics|lyric)$/i
22 |
23 | export default handler
--------------------------------------------------------------------------------
/plugins/maker-ephoto360-part3.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | let handler = async (m, { conn, args, command }) => {
3 | let response = args.join(' ').split('|')
4 | if (!args[0]) throw 'Masukkan Teks'
5 | m.reply('Proses...')
6 | let res = `https://api.violetics.pw/api/ephoto360/${command}?apikey=1290-0463-b5e6&text=${response[0]}`
7 | conn.sendFile(m.chat, res, 'logo.jpg', `Sudah Jadi`, m, false)
8 | }
9 | handler.help = ['wallpaper-moblie', 'water-3d', 'water-effect', 'water-effect2', 'watercolor-effect', 'wedding-silver', 'wet-glass', 'wings-effect', 'women-day', 'yasuo', 'yellowskin-snake', 'yena-arena-of-valor'].map(v => v + ' ')
10 | handler.tags = ['logo']
11 | handler.command = /^(wallpaper-moblie|water-3d|water-effect|water-effect2|watercolor-effect|wedding-silver|wet-glass|wings-effect|women-day|yasuo|yellowskin-snake|yena-arena-of-valor)$/i
12 |
13 | export default handler
14 |
--------------------------------------------------------------------------------
/plugins/menpes-ans.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Jangan Di Hapus!!
3 | *
4 | * Buatan Zenss
5 | * Github: https://github.com/RaaaGH
6 | *
7 | *
8 | *
9 | * Gatau Males Pengen Beli Truk
10 | *
11 | *
12 | */
13 |
14 | const delay = time => new Promise(res => setTimeout(res, time))
15 | let handler = m => m
16 | handler.all = async function (m) {
17 | if (!m.chat.endsWith('@s.whatsapp.net')) return !0;
18 | this.menfess = this.menfess ? this.menfess : {}
19 | let mf = Object.values(this.menfess).find(v => v.status === false && v.penerima == m.sender)
20 | if (!mf) return !0
21 | console.log({ text: m.text })
22 | if (mf && (m.text === 'Balas Pesan' || m.text === '') && m.quoted?.mtype == 'buttonsMessage') return m.reply("Silahkan kirim pesan balasan kamu.")
23 |
24 | let txt = `Hai kak @${mf.dari.split('@')[0]}, kamu menerima balasan nih.\n\nPesan yang kamu kirim sebelumnya:\n${mf.pesan}\n\nPesan balasannya:\n${m.text}\n`.trim();
25 | await this.reply(mf.dari, txt, null).then(() => {
26 | m.reply('Berhasil mengirim balasan.')
27 | delay(2000)
28 | delete this.menfess[mf.id]
29 | return !0
30 | })
31 | return !0
32 | }
33 |
34 | export default handler
--------------------------------------------------------------------------------
/plugins/nsfw-nhentai.js:
--------------------------------------------------------------------------------
1 | /*import fetch from 'node-fetch'
2 | import { extractImageThumb } from '@adiwajshing/baileys'
3 |
4 | let handler = async (m, { conn, args }) => {
5 | let code = (args[0] || '').replace(/\D/g, '')
6 | if (!code) throw 'Input code'
7 | await m.reply('_In progress, please wait..._')
8 | let res = await fetch('https://expressjs-akkun.up.railway.app/nhentai?code=' + code)
9 | if (!res.ok) throw await res.statusText
10 | let json = await res.json()
11 | let buffer = await (await fetch('https://external-content.duckduckgo.com/iu/?u=' + json.result.pages[0])).buffer()
12 | let jpegThumbnail = await extractImageThumb(buffer)
13 | conn.sendMessage(m.chat, { document: { url: 'https://expressjs-akkun.up.railway.app/nhentai/' + code }, jpegThumbnail, fileName: json.result.title + '.pdf', mimetype: 'application/pdf' }, { quoted: m })
14 | }
15 | handler.help = ['nhentai']
16 | handler.tags = ['nsfw', 'premium', 'limitmenu']
17 | handler.command = /^(nhentai)$/i
18 | handler.premium = true
19 | handler.register = true
20 | handler.limit = true
21 |
22 | export default handler
23 | */
24 |
--------------------------------------------------------------------------------
/plugins/nulis-magernulis.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { command, conn, text }) => {
2 | m.reply(wait)
3 | let id = (command.match(/[1-6]$/) || [])[0] || ''
4 | await conn.sendFile(m.chat, global.API('xteam', '/magernulis' + id, {
5 | text,
6 | nama: conn.getName(m.sender),
7 | kelas: ' '
8 | }, 'APIKEY'), 'nulis.jpg', 'Nahhh sudah jadi...', m, false, { contextInfo: { forwardingScore: 999, isForwarded: true }})
9 |
10 | }
11 | handler.help = new Array(6).fill('magernulis').map((v, i) => v + (i + 1) + ' ')
12 | handler.tags = ['nulis', 'limitmenu']
13 |
14 | handler.command = /^magernulis[1-6]?$/i
15 |
16 | handler.limit = true
17 |
18 | export default handler
19 |
--------------------------------------------------------------------------------
/plugins/owner-addowner.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, text }) => {
2 | let who
3 | if (m.isGroup) who = m.mentionedJid[0] ? m.mentionedJid[0] : m.quoted ? m.quoted.sender : text
4 | else who = m.chat
5 | if (!who) throw `tag orangnya!`
6 | if (global.owner.includes(who.split`@`[0])) throw 'dia udah menjadi owner !'
7 | global.owner.push(`${who.split`@`[0]}`)
8 | conn.reply(m.chat, `@${who.split`@`[0]} sekarang owner !`, m, {
9 | contextInfo: {
10 | mentionedJid: [who]
11 | }
12 | })
13 |
14 | }
15 | handler.help = ['addowner [@user]']
16 | handler.tags = ['owner']
17 | handler.command = /^(add|tambah|\+)owner$/i
18 |
19 | handler.owner = true
20 |
21 | export default handler
22 |
--------------------------------------------------------------------------------
/plugins/owner-addprem.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, text, usedPrefix, command }) => {
2 | let who
3 | if (m.isGroup) who = m.mentionedJid[0] ? m.mentionedJid[0] : m.quoted ? m.quoted.sender : false
4 | else who = m.chat
5 | let user = db.data.users[who]
6 | if (!who) throw `tag or mention someone!`
7 | let txt = text.replace('@' + who.split`@`[0], '').trim()
8 | if (!txt) throw `where the number of days?`
9 | if (isNaN(txt)) return m.reply(`only number!\n\nexample:\n${usedPrefix + command} @${m.sender.split`@`[0]} 7`)
10 | var jumlahHari = 86400000 * txt
11 | var now = new Date() * 1
12 | if (now < user.premiumTime) user.premiumTime += jumlahHari
13 | else user.premiumTime = now + jumlahHari
14 | user.premium = true
15 | m.reply(`✔️ Success
16 | 📛 Name: ${user.name}
17 | 📆 Days: ${txt} days
18 | 📉 Countdown: ${user.premiumTime - now}`)
19 | }
20 | handler.help = ['addprem [@user] ']
21 | handler.tags = ['owner']
22 | handler.command = /^(add|tambah|\+)p(rem)?$/i
23 |
24 | handler.group = true
25 | handler.rowner = true
26 |
27 |
28 | export default handler
29 |
--------------------------------------------------------------------------------
/plugins/owner-balas.js:
--------------------------------------------------------------------------------
1 | let { MessageType } = (await import('@adiwajshing/baileys')).default
2 | let handler = async (m, { conn, args, text }) => {
3 | conn.req = conn.req ? conn.req : {}
4 | if (!args || !text) return m.reply('Silahkan Masukan Teksnya')
5 | let lmfao = args[0]
6 | let bruh = (lmfao + '@s.whatsapp.net')
7 | let tex = args.slice(1).join(' ')
8 | let txt = conn.req[bruh].text || m.quoted ? m.quoted.text ? m.quoted.text : text ? text : m.text : text ? text : m.text
9 | let name = m.fromMe ? conn.user : conn.contacts[m.sender]
10 | let _text = (txt)
11 | conn.reply(m.chat, 'Pesan Anda sudah terkirim', m)
12 | conn.sendMessage(bruh, _text, MessageType.text)
13 | delete conn.req[bruh]
14 |
15 | }
16 | handler.help = ['balas'].map(v => v + ' [nomor] [teks]')
17 | handler.tags = ['owner']
18 | handler.command = /^(balas|reply)/i
19 |
20 | handler.owner = true
21 |
22 | handler.fail = null
23 |
24 | export default handler
25 |
26 | const more = String.fromCharCode(8206)
27 | const readMore = more.repeat(4001)
28 |
--------------------------------------------------------------------------------
/plugins/owner-banchat.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { participants }) => {
2 | // if (participants.map(v=>v.jid).includes(global.conn.user.jid)) {
3 | global.db.data.chats[m.chat].isBanned = true
4 | m.reply('Done!')
5 | // } else m.reply('Ada nomor host disini...')
6 | }
7 | handler.help = ['banchat']
8 | handler.tags = ['owner']
9 | handler.command = /^(banchat|bnc)$/i
10 |
11 | handler.owner = true
12 |
13 | export default handler
--------------------------------------------------------------------------------
/plugins/owner-banuser.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, text }) => {
2 | if (!text) throw 'Siapa yg mau dibanned?🗿'
3 | let who
4 | if (m.isGroup) who = m.mentionedJid[0]
5 | else who = m.chat
6 | if (!who) throw 'Tag??'
7 | let users = global.db.data.users
8 | users[who].banned = true
9 | conn.reply(m.chat, 'sᴜᴄᴄᴇs!', m)
10 | }
11 | handler.help = ['ban']
12 | handler.tags = ['owner']
13 | handler.command = /^ban(user)?$/i
14 | handler.rowner = true
15 |
16 | export default handler
17 |
--------------------------------------------------------------------------------
/plugins/owner-cleartmp.js:
--------------------------------------------------------------------------------
1 | import { tmpdir } from 'os'
2 | import path, { join } from 'path'
3 | import {
4 | readdirSync,
5 | statSync,
6 | unlinkSync,
7 | existsSync,
8 | readFileSync,
9 | watch
10 | } from 'fs'
11 | let handler = async (m, { conn, usedPrefix: _p, __dirname, args }) => {
12 |
13 | conn.reply(m.chat, 'Succes !', m)
14 |
15 | const tmp = [tmpdir(), join(__dirname, '../tmp')]
16 | const filename = []
17 | tmp.forEach(dirname => readdirSync(dirname).forEach(file => filename.push(join(dirname, file))))
18 | return filename.map(file => {
19 | const stats = statSync(file)
20 | unlinkSync(file)
21 | })
22 | }
23 | handler.help = ['cleartmp']
24 | handler.tags = ['owner']
25 | handler.command = /^(cleartmp)$/i
26 |
27 | handler.rowner = true
28 |
29 | export default handler
--------------------------------------------------------------------------------
/plugins/owner-delprem.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { usedPrefix, command, text }) => {
2 | let who
3 | if (m.isGroup) who = m.mentionedJid[0] ? m.mentionedJid[0] : m.quoted ? m.quoted.sender : text ? text.replace(/[^0-9]/g, '') + '@s.whatsapp.net' : false
4 | else who = text ? text.replace(/[^0-9]/g, '') + '@s.whatsapp.net' : m.chat
5 | let user = db.data.users[who]
6 | if (!who) return m.reply(`tag or mention someone!\n\nexample:\n${usedPrefix + command} @${m.sender.split`@`[0]}`)
7 | user.premium = false
8 | user.premiumTime = 0
9 | m.reply(`✔️ successfully removed *${user.name}* from premium user`)
10 | }
11 | handler.help = ['delprem [@user]']
12 | handler.tags = ['owner']
13 | handler.command = /^(-|del)p(rem)?$/i
14 |
15 | handler.group = true
16 | handler.rowner = true
17 |
18 | export default handler
--------------------------------------------------------------------------------
/plugins/owner-demote.js:
--------------------------------------------------------------------------------
1 | import { areJidsSameUser } from '@adiwajshing/baileys'
2 | let handler = async (m, { conn, participants }) => {
3 | let users = m.mentionedJid.filter(u => !areJidsSameUser(u, conn.user.id))
4 | let user = m.mentionedJid && m.mentionedJid[0]
5 | await conn.groupParticipantsUpdate(m.chat, [user], 'demote')
6 |
7 | m.reply('Succes')
8 |
9 | }
10 | handler.help = ['odemote @tag']
11 | handler.tags = ['group']
12 | handler.command = /^(odemote)$/i
13 |
14 | handler.owner = true
15 | handler.group = true
16 | handler.botAdmin = true
17 |
18 | export default handler
--------------------------------------------------------------------------------
/plugins/owner-df.js:
--------------------------------------------------------------------------------
1 | import { tmpdir } from 'os'
2 | import path, { join } from 'path'
3 | import {
4 | readdirSync,
5 | statSync,
6 | unlinkSync,
7 | existsSync,
8 | readFileSync,
9 | watch
10 | } from 'fs'
11 | let handler = async (m, { conn, usedPrefix: _p, __dirname, args, text }) => {
12 |
13 | let ar = Object.keys(plugins)
14 | let ar1 = ar.map(v => v.replace('.js', ''))
15 | if (!text) throw `uhm.. where the text?\n\nexample:\n${usedPrefix + command} info`
16 | if (!ar1.includes(args[0])) return m.reply(`*🗃️ NOT FOUND!*\n==================================\n\n${ar1.map(v => ' ' + v).join`\n`}`)
17 | const file = join(__dirname, '../plugins/' + args[0] + '.js')
18 | unlinkSync(file)
19 | conn.reply(m.chat, `Succes deleted "plugins/${args[0]}.js"`, m)
20 |
21 | }
22 | handler.help = ['df']
23 | handler.tags = ['owner']
24 | handler.command = /^(df)$/i
25 |
26 | handler.mods = true
27 |
28 | export default handler
29 |
--------------------------------------------------------------------------------
/plugins/owner-exec2.js:
--------------------------------------------------------------------------------
1 | import cp, { exec as _exec } from 'child_process'
2 | import { promisify } from 'util'
3 | let exec = promisify(_exec).bind(cp)
4 | let handler = async (m, { conn, isOwner, command, text }) => {
5 | if (global.conn.user.jid != conn.user.jid) return
6 | m.reply('Executing...')
7 | let o
8 | try {
9 | o = await exec(command.trimStart() + ' ' + text.trimEnd())
10 | } catch (e) {
11 | o = e
12 | } finally {
13 | let { stdout, stderr } = o
14 | if (stdout.trim()) m.reply(stdout)
15 | if (stderr.trim()) m.reply(stderr)
16 | }
17 | }
18 | handler.customPrefix = /^[$] /
19 | handler.command = new RegExp
20 | handler.rowner = true
21 | export default handler
22 |
--------------------------------------------------------------------------------
/plugins/owner-getdb.js:
--------------------------------------------------------------------------------
1 | import fs from 'fs'
2 | let handler = async (m, { conn, text }) => {
3 | m.reply('Tunggu Sebentar, Sedang mengambil file Database')
4 | let sesi = await fs.readFileSync('./database.json')
5 | return await conn.sendMessage(m.chat, { document: sesi, mimetype: 'application/json', fileName: 'database.json' }, { quoted: m })
6 | }
7 | handler.help = ['getdb']
8 | handler.tags = ['owner']
9 | handler.command = /^(getdb)$/i
10 |
11 | handler.owner = true
12 |
13 | export default handler
14 |
--------------------------------------------------------------------------------
/plugins/owner-getfile.js:
--------------------------------------------------------------------------------
1 | import cp from 'child_process'
2 | import { promisify } from 'util'
3 | let exec = promisify(cp.exec).bind(cp)
4 | let handler = async (m, { conn, isROwner, usedPrefix, command, text }) => {
5 | if (!text) throw `uhm.. teksnya mana?\n\ncontoh\n${usedPrefix + command} main`
6 | m.reply('Executing...')
7 | let o
8 | try {
9 | o = await exec('type ' + text)
10 | } catch (e) {
11 | o = e
12 | } finally {
13 | let { stdout, stderr } = o
14 | if (stdout.trim()) m.reply(stdout)
15 | if (stderr.trim()) m.reply(stderr)
16 | }
17 | }
18 |
19 | handler.help = ['getfile'].map(v => v + ' ')
20 | handler.tags = ['owner']
21 | handler.command = /^(getfile|gf)$/i
22 |
23 | handler.rowner = true
24 |
25 | export default handler
--------------------------------------------------------------------------------
/plugins/owner-getplugins.js:
--------------------------------------------------------------------------------
1 | import fs from 'fs'
2 | import path from 'path'
3 | let handler = async (m, { usedPrefix, command, text }) => {
4 | if (!text) throw `where is the text?\n\nexempel: ${usedPrefix + command} menu`
5 | const filename = path.join(__dirname, `./${text}${!/\.js$/i.test(text) ? '.js' : ''}`)
6 | const listPlugins = fs.readdirSync(path.join(__dirname)).map(v => v.replace(/\.js/, ''))
7 | if (!fs.existsSync(filename)) return m.reply(`
8 | '${filename}' not found!
9 | ${listPlugins.map(v => v).join('\n').trim()}
10 | `.trim())
11 | m.reply(fs.readFileSync(filename, 'utf8'))
12 | }
13 | handler.help = ['getplugin'].map(v => v + ' [filename]')
14 | handler.tags = ['owner']
15 | handler.command = /^(getplugin|get ?plugin|gp)$/i
16 |
17 | handler.owner = true
18 |
19 | export default handler
20 |
--------------------------------------------------------------------------------
/plugins/owner-gp.js:
--------------------------------------------------------------------------------
1 | import cp, { exec as _exec } from 'child_process'
2 | import { promisify } from 'util'
3 | let exec = promisify(_exec).bind(cp)
4 |
5 | let handler = async (m, { conn, isROwner, usedPrefix, command, text }) => {
6 | await m.reply(global.wait)
7 | if (!isROwner) return
8 | let ar = Object.keys(plugins)
9 | let ar1 = ar.map(v => v.replace('.js', ''))
10 | if (!text) throw `uhm.. where the text?\n\nexample:\n${usedPrefix + command} info`
11 | if (!ar1.includes(text)) return m.reply(`*🗃️ NOT FOUND!*\n==================================\n\n${ar1.map(v => ' ' + v).join`\n`}`)
12 | let o
13 | try {
14 | o = await exec('cat plugins/' + text + '.js')
15 | } catch (e) {
16 | o = e
17 | } finally {
18 | let { stdout, stderr } = o
19 | if (stdout.trim()) m.reply(stdout)
20 | if (stderr.trim()) m.reply(stderr)
21 | }
22 | }
23 | handler.help = ['getplugin'].map(v => v + ' ')
24 | handler.tags = ['owner']
25 | handler.command = /^(getplugin|gp)$/i
26 | handler.rowner = true
27 |
28 | export default handler
--------------------------------------------------------------------------------
/plugins/owner-join.js:
--------------------------------------------------------------------------------
1 | let linkRegex = /chat.whatsapp.com\/([0-9A-Za-z]{20,24})( [0-9]{1,3})?/i
2 |
3 | let handler = async (m, { conn, text, isOwner }) => {
4 | let [_, code, expired] = text.match(linkRegex) || []
5 | if (!code) throw 'Link invalid'
6 | let res = await conn.groupAcceptInvite(code)
7 | expired = Math.floor(Math.min(999, Math.max(1, isOwner ? isNumber(expired) ? parseInt(expired) : 0 : 3)))
8 | m.reply(`Berhasil join grup ${res}${expired ? ` selama ${expired} hari` : ''}`)
9 | let chats = global.db.data.chats[res]
10 | if (!chats) chats = global.db.data.chats[res] = {}
11 | if (expired) chats.expired = +new Date() + expired * 1000 * 60 * 60 * 24
12 | }
13 | handler.help = ['join ']
14 | handler.tags = ['owner']
15 |
16 | handler.command = /^join$/i
17 | handler.rowner = true
18 |
19 | export default handler
20 |
21 | const isNumber = (x) => (x = parseInt(x), typeof x === 'number' && !isNaN(x))
22 |
--------------------------------------------------------------------------------
/plugins/owner-kick.js:
--------------------------------------------------------------------------------
1 | import { areJidsSameUser } from '@adiwajshing/baileys'
2 | let handler = async (m, { conn, participants }) => {
3 | let users = m.mentionedJid.filter(u => !areJidsSameUser(u, conn.user.id))
4 | let kickedUser = []
5 | for (let user of users)
6 | if (user.endsWith('@s.whatsapp.net') && !(participants.find(v => areJidsSameUser(v.id, user)) || { admin: true }).admin) {
7 | const res = await conn.groupParticipantsUpdate(m.chat, [user], 'remove')
8 | kickedUser.concat(res)
9 | await delay(1 * 1000)
10 | }
11 | m.reply(`Succes kick ${kickedUser.map(v => '@' + v.split('@')[0])}`, null, { mentions: kickedUser })
12 |
13 | }
14 | handler.help = ['kick', '-'].map(v => 'o' + v + ' @user')
15 | handler.tags = ['owner']
16 | handler.command = /^(okick|o-)$/i
17 |
18 | handler.admin = true
19 | handler.group = true
20 | handler.botAdmin = true
21 |
22 | export default handler
23 |
24 | const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms))
25 |
--------------------------------------------------------------------------------
/plugins/owner-leavegc.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, args, command }) => {
2 | let group = m.chat
3 | await m.reply('Sayonara , , ! (≧ω≦)ゞ', m.chat)
4 | await conn.groupLeave(group)
5 | }
6 | handler.help = ['leavegc', 'out']
7 | handler.tags = ['owner']
8 | handler.command = /^(out|leavegc)$/i
9 |
10 | handler.rowner = true
11 |
12 | export default handler
--------------------------------------------------------------------------------
/plugins/owner-order.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, text, usedPrefix, command }) => {
2 | if (!text) throw `kalo kamu nemu pesan eror, lapor pake perintah ini\n\ncontoh:\n${usedPrefix + command} selamat siang owner, sy menemukan eror seperti berikut `
3 | if (text.length < 1 ) throw `Laporan terlalu pendek, minimal 10 karakter!`
4 | if (text.length > 1000) throw `Laporan terlalu panjang, maksimal 1000 karakter!`
5 | let teks = `*${htki} ${command.toUpperCase()} ${htka}*\n📮 : ${text}\n*- @${m.sender.split`@`[0]}*`
6 | conn.reply(global.nomorown + '@s.whatsapp.net', m.quoted ? teks + m.quoted.text : teks, null, {
7 | contextInfo: {
8 | mentionedJid: [m.sender]
9 | }
10 | })
11 | m.reply('☑️ Pesan Telah terkirim ke Owner!\n_*Menunggu confirmasi Dari Owner...*_')
12 | }
13 | handler.command = /^(order)$/i
14 | export default handler
--------------------------------------------------------------------------------
/plugins/owner-promote.js:
--------------------------------------------------------------------------------
1 | import { areJidsSameUser } from '@adiwajshing/baileys'
2 | let handler = async (m, { conn, participants }) => {
3 | let users = m.mentionedJid.filter(u => !areJidsSameUser(u, conn.user.id))
4 | let promoteUser = []
5 | for (let user of users)
6 | if (user.endsWith('@s.whatsapp.net') && !(participants.find(v => areJidsSameUser(v.id, user)) || { admin: true }).admin) {
7 | const res = await conn.groupParticipantsUpdate(m.chat, [user], 'promote')
8 | await delay(1 * 1000)
9 | }
10 | m.reply('Succes')
11 |
12 | }
13 | handler.help = ['opromote @tag']
14 | handler.tags = ['owner']
15 | handler.command = /^(opromote)$/i
16 |
17 | handler.owner = true
18 | handler.group = true
19 | handler.botAdmin = true
20 |
21 | export default handler
22 |
23 | const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms))
--------------------------------------------------------------------------------
/plugins/owner-restart.js:
--------------------------------------------------------------------------------
1 | import { spawn } from 'child_process'
2 | let handler = async (m, { conn, isROwner, text }) => {
3 | if (!process.send) throw 'Dont: node main.js\nDo: node index.js'
4 | if (global.conn.user.jid == conn.user.jid) {
5 | await m.reply('```R E S T A R T . . .```')
6 | process.send('reset')
7 | } else throw '_eeeeeiiittsssss..._'
8 | }
9 |
10 | handler.help = ['restart']
11 | handler.tags = ['owner']
12 | handler.command = /^(res(tart)?)$/i
13 |
14 | handler.rowner = true
15 |
16 | export default handler
--------------------------------------------------------------------------------
/plugins/owner-sesi.js:
--------------------------------------------------------------------------------
1 | import fs from 'fs'
2 | let handler = async (m, { conn, text }) => {
3 | m.reply('Tunggu Sebentar, Sedang mengambil file sesi mu')
4 | let sesi = await fs.readFileSync('./session.data.json')
5 | return await conn.sendMessage(m.chat, { document: sesi, mimetype: 'application/json', fileName: 'session.data.json' }, { quoted: m })
6 | }
7 | handler.help = ['getsessi']
8 | handler.tags = ['owner']
9 | handler.command = /^(g(et)?ses?si(on)?(data.json)?)$/i
10 |
11 | handler.rowner = true
12 |
13 | export default handler
14 |
--------------------------------------------------------------------------------
/plugins/owner-setbotpp.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, args }) => {
2 | let bot = conn.user.jid // Bot
3 | let q = m.quoted ? m.quoted : m
4 | let mime = (q.msg || q).mimetype || ''
5 | if (/image/.test(mime)) {
6 | let img = await q.download()
7 | if (!img) throw `Fotonya Gak Ada Kak *┰ω┰*`
8 | conn.updateProfilePicture (bot, img)
9 | conn.reply(m.chat, 'Selesai Mengganti Profil Bot Kak*>ω<*!', m)
10 | }
11 | }
12 | handler.help = ['setbotpp']
13 | handler.tags = ['owner']
14 | handler.command = /^(setbotpp)$/i
15 | handler.owner = true
16 |
17 | export default handler
18 |
--------------------------------------------------------------------------------
/plugins/owner-sf.js:
--------------------------------------------------------------------------------
1 | import fs from 'fs'
2 | let handler = async (m, { text, usedPrefix, command }) => {
3 | if (!text) throw `uhm.. teksnya mana?\n\npenggunaan:\n${usedPrefix + command} \n\ncontoh:\n${usedPrefix + command} plugins/melcanz.js`
4 | if (!m.quoted.text) throw `balas pesan nya!`
5 | let path = `${text}`
6 | await fs.writeFileSync(path, m.quoted.text)
7 | m.reply(`tersimpan di ${path}`)
8 | }
9 | handler.help = ['sf'].map(v => v + ' ')
10 | handler.tags = ['owner']
11 | handler.command = /^sf$/i
12 |
13 | handler.rowner = true
14 | export default handler
--------------------------------------------------------------------------------
/plugins/owner-tagall.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, text, participants, isAdmin, isOwner }) => {
2 | let users = participants.map(u => u.id).filter(v => v !== conn.user.jid)
3 | m.reply(`${text ? `${text}\n` : ''}┌─「 Tag All 」\n` + users.map(v => '│◦❒ @' + v.replace(/@.+/, '')).join`\n` + '\n└────', null, {
4 | mentions: users
5 | })
6 | }
7 |
8 | handler.help = ['o-tagall']
9 | handler.tags = ['owner']
10 | handler.command = ['o-tagall']
11 | handler.owner = true
12 | handler.group = true
13 |
14 | export default handler
15 |
--------------------------------------------------------------------------------
/plugins/owner-unbanchat.js:
--------------------------------------------------------------------------------
1 | let handler = async (m) => {
2 | global.db.data.chats[m.chat].isBanned = false
3 | m.reply('Done!')
4 | }
5 | handler.help = ['unbanchat']
6 | handler.tags = ['owner']
7 | handler.command = /^(unbanchat|ubnc)$/i
8 | handler.owner = true
9 |
10 | export default handler
--------------------------------------------------------------------------------
/plugins/owner-unbanuser.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, text }) => {
2 | if (!text) throw 'Who wants to be banned?'
3 | let who
4 | if (m.isGroup) who = m.mentionedJid[0]
5 | else who = m.chat
6 | if (!who) throw 'Tag??'
7 | let users = global.db.data.users
8 | users[who].banned = false
9 | conn.reply(m.chat, 'sᴜᴄᴄᴇs!', m)
10 | }
11 | handler.help = ['unban']
12 | handler.tags = ['owner']
13 | handler.command = /^unban(user)?$/i
14 | handler.rowner = true
15 |
16 | export default handler
17 |
--------------------------------------------------------------------------------
/plugins/ppcouple.js:
--------------------------------------------------------------------------------
1 | /*import fetch from 'node-fetch'
2 |
3 | let handler = async (m, { conn }) => {
4 | let res = await fetch(global.API('LeysCoder', '/api/ppcouple', {}, 'apikey'))
5 | if (!res.ok) throw await res.text()
6 | let json = await res.json()
7 | if (!json.status) throw json
8 | await conn.sendFile(m.chat, json.result.male, '', 'Nih PP Yg Cowo', m)
9 | await conn.sendFile(m.chat, json.result.female, '', 'Dan Ni PP YgCewe', m)
10 | }
11 | handler.help = ['ppcouple', 'ppcp']
12 | handler.tags = ['internet', 'limitmenu']
13 | handler.command = /^(pp(cp|couple))$/i
14 | handler.limit = true
15 |
16 | export default handler*/
17 |
--------------------------------------------------------------------------------
/plugins/quotes-bucin.js:
--------------------------------------------------------------------------------
1 | import { bucin } from '@bochilteam/scraper'
2 |
3 | let handler = async (m, { conn, usedPrefix, command }) => conn.sendButton(m.chat, await bucin(), author, [
4 | ['Next', `${usedPrefix+command}`],
5 | ], m)
6 |
7 | handler.help = ['q-bucin']
8 | handler.tags = ['quotes']
9 | handler.command = /^(q-bucin)$/i
10 |
11 | export default handler
12 |
--------------------------------------------------------------------------------
/plugins/quotes-dare.js:
--------------------------------------------------------------------------------
1 | import { dare } from '@bochilteam/scraper'
2 |
3 | let handler = async (m, { conn, usedPrefix }) => conn.sendButton(m.chat, await dare(), author, [
4 | ['Dare', `${usedPrefix}dare`],
5 | ['Truth', `${usedPrefix}truth`]
6 | ], m)
7 |
8 | handler.help = ['dare']
9 | handler.tags = ['quotes', 'fun']
10 | handler.command = /^(dare)$/i
11 |
12 | export default handler
13 |
--------------------------------------------------------------------------------
/plugins/quotes-truth.js:
--------------------------------------------------------------------------------
1 | import { truth } from '@bochilteam/scraper'
2 |
3 | let handler = async (m, { conn, usedPrefix }) => conn.sendButton(m.chat, await truth(), author, [
4 | ['Truth', `${usedPrefix}truth`],
5 | ['Dare', `${usedPrefix}dare`]
6 | ], m)
7 |
8 | handler.help = ['truth']
9 | handler.tags = ['quotes', 'fun']
10 | handler.command = /^(truth)$/i
11 |
12 | export default handler
--------------------------------------------------------------------------------
/plugins/rpg-bonus.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | if (new Date - global.db.data.users[m.sender].lastclaim > 86400000) {
3 | conn.reply(m.chat, 'Nih Gw Kasih Modal Buat beli limit\n💰50.000 Rupiah', m)
4 | global.db.data.users[m.sender].money += 50000
5 | global.db.data.users[m.sender].lastclaim = new Date * 1
6 | } else conn.reply(m.chat, '📮Bagi link bokep 100.000:v', m)
7 | }
8 | handler.help = ['bonus', 'hadiah']
9 | handler.tags = ['rpg']
10 | handler.command = /^(bonus|hadiah)$/i
11 | handler.owner = true
12 | handler.mods = false
13 | handler.premium = false
14 | handler.group = false
15 | handler.private = false
16 |
17 | handler.admin = false
18 | handler.botAdmin = false
19 |
20 | handler.fail = null
21 | handler.exp = 0
22 |
23 | export default handler
24 |
25 |
--------------------------------------------------------------------------------
/plugins/rpg-buah.js:
--------------------------------------------------------------------------------
1 |
2 | let handler = async (m, { conn, usedPrefix, text }) => {
3 | let user = global.db.data.users[m.sender]
4 | let ini_txt = `[ *GUDANG BUAH KAMU* ]\n\n`
5 | ini_txt += `🍌 ${user.pisang} Pisang\n`
6 | ini_txt += `🍇 ${user.anggur} Anggur\n`
7 | ini_txt += `🥭 ${user.mangga} Mangga\n`
8 | ini_txt += `🍊 ${user.jeruk} Jeruk\n`
9 | ini_txt += `🍎 ${user.apel} Apel\n\n`
10 | ini_txt += `Gunakan command *${usedPrefix}sell* untuk menjual.`
11 | m.reply(ini_txt)
12 | }
13 |
14 | handler.menufun = ['buah']
15 | handler.tagsfun = ['rpg']
16 | handler.command = /^((list)?(buah|fruits?))$/i
17 |
18 | export default handler
--------------------------------------------------------------------------------
/plugins/rpg-cek.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | let imgr = flaaa.getRandom()
3 | let user = global.db.data.users[m.sender]
4 | const caption = `
5 | ⛊「 *B A N K U S E R* 」
6 | │ 📛 *Name:* ${user.registered ? user.name : conn.getName(m.sender)}
7 | │ 💳 *Atm:* ${user.atm > 0 ? 'Level ' + user.atm : '✖️'}
8 | │ 🏛️ *Bank:* ${user.bank} 💲 / ${user.fullatm} 💲
9 | │ 💹 *Money:* ${user.money} 💲
10 | │ 🤖 *Robo:* ${user.robo > 0 ? 'Level ' + user.robo : '✖️'}
11 | │ 🌟 *Status:* ${user.premiumTime > 0 ? 'Premium' : 'Free'}
12 | │ 📑 *Registered:* ${user.registered ? 'Yes':'No'}
13 | ╰──┈┈⭑
14 | `.trim()
15 | conn.sendButton(m.chat, caption, global.wm, imgr + 'bank', [`Inventory`, '.inv'],m)
16 | }
17 | handler.help = ['bank']
18 | handler.tags = ['rpg']
19 | handler.command = /^(bank((total)?|cek)|cekbank)$/i
20 |
21 | handler.register = false
22 | export default handler
--------------------------------------------------------------------------------
/plugins/rpg-cupon.js:
--------------------------------------------------------------------------------
1 | let handler = async (m) => {
2 | let who
3 | if (m.isGroup) who = m.mentionedJid[0] ? m.mentionedJid[0] : m.sender
4 | else who = m.sender
5 | if (typeof global.db.data.users[who] == 'undefined') throw 'Pengguna tidak ada didalam data base'
6 | m.reply(`${global.db.data.users[who].cupon} Your cupon\nCupon ini adalah sebuah hadiah dari owner\n\nCara menggunakan:\n/open cupon 1`)
7 | }
8 | handler.help = ['cupon [@user]']
9 | handler.tags = ['xp']
10 | handler.command = /^(cupon)$/i
11 | handler.limit = true
12 |
13 | export default handler
14 |
--------------------------------------------------------------------------------
/plugins/rpg-daily.js:
--------------------------------------------------------------------------------
1 | const rewards = {
2 | exp: 9999,
3 | money: 4999,
4 | potion: 5,
5 | }
6 | const cooldown = 86400000
7 | let handler = async (m,{ conn} ) => {
8 | let user = global.db.data.users[m.sender]
9 | if (new Date - user.lastclaim < cooldown) throw `You have already claimed this daily claim!, wait for *${((user.lastclaim + cooldown) - new Date()).toTimeString()}*`
10 | let text = ''
11 | for (let reward of Object.keys(rewards)) {
12 | if (!(reward in user)) continue
13 | user[reward] += rewards[reward]
14 | text += `*+${rewards[reward]}* ${global.rpg.emoticon(reward)}${reward}\n`
15 | }
16 | conn.sendButton(m.chat,`${htki} DAILY ${htka}`, text.trim(), null, [['Inventory', '.inv'], ['Weekly', '.weekly']],m)
17 | user.lastclaim = new Date * 1
18 | }
19 | handler.help = ['daily', 'claim']
20 | handler.tags = ['xp']
21 | handler.command = /^(daily|claim)$/i
22 |
23 | handler.cooldown = cooldown
24 |
25 | export default handler
--------------------------------------------------------------------------------
/plugins/rpg-hourly.js:
--------------------------------------------------------------------------------
1 | const rewards = {
2 | exp: 9999,
3 | money: 4999,
4 | potion: 5,
5 | iron: 2,
6 | legendary: 1,
7 | emas: 2,
8 | string: 3,
9 | limit: 1,
10 | }
11 | const cooldown = 3600000
12 | let handler = async (m,{ conn} ) => {
13 | let user = global.db.data.users[m.sender]
14 | if (new Date - user.lasthourly < cooldown) throw `You have already claimed this hourly claim!, wait for *${((user.lasthourly + cooldown) - new Date()).toTimeString()}*`
15 | let text = ''
16 | for (let reward of Object.keys(rewards)) {
17 | if (!(reward in user)) continue
18 | user[reward] += rewards[reward]
19 | text += `*+${rewards[reward]}* ${global.rpg.emoticon(reward)}${reward}\n`
20 | }
21 | conn.sendButton(m.chat,`${htki} HOURLY ${htka}`, text.trim(), null, [['Inventory', '.inv'], ['Daily', '.daily']],m)
22 | user.lasthourly = new Date * 1
23 | }
24 | handler.help = ['hourly']
25 | handler.tags = ['xp']
26 | handler.command = /^(hourly)$/i
27 |
28 | handler.cooldown = cooldown
29 |
30 | export default handler
--------------------------------------------------------------------------------
/plugins/rpg-monthly.js:
--------------------------------------------------------------------------------
1 | const rewards = {
2 | exp: 50000,
3 | money: 49999,
4 | potion: 10,
5 | mythic: 3,
6 | legendary: 1
7 | }
8 |
9 | const cooldown = 2592000000
10 | let handler = async (m) => {
11 | let user = global.db.data.users[m.sender]
12 | if (new Date - user.lastmonthly < cooldown) throw `You have already claimed this monthly claim, wait for *${((user.lastmonthly + cooldown) - new Date()).toTimeString()}*`
13 | let text = ''
14 | for (let reward of Object.keys(rewards)) if (reward in user) {
15 | user[reward] += rewards[reward]
16 | text += `*+${rewards[reward]}* ${rpg.emoticon(reward)}${reward}\n`
17 | }
18 | conn.sendButton(m.chat,`${htki} MONTHLY ${htka}`, text.trim(), null, [['Inventory', '.inv'], ['Menu', '.menu']],m)
19 | user.lastmonthly = new Date * 1
20 | }
21 | handler.help = ['monthly']
22 | handler.tags = ['rpg']
23 | handler.command = /^(monthly)$/i
24 |
25 | handler.cooldown = cooldown
26 |
27 | export default handler
--------------------------------------------------------------------------------
/plugins/rpg-nabung.js:
--------------------------------------------------------------------------------
1 | const xpperlimit = 1
2 | let handler = async (m, { conn, command, args }) => {
3 | let user = global.db.data.users[m.sender]
4 | let count = command.replace(/^nabung/i, '')
5 | count = count ? /all/i.test(count) ? Math.floor(global.db.data.users[m.sender].money / xpperlimit) : parseInt(count) : args[0] ? parseInt(args[0]) : 1
6 | count = Math.max(1, count)
7 | if (user.atm == 0) return m.reply('kamu belum mempuyai atm !')
8 | if (user.bank > user.fullatm) return m.reply('Uang dibankmu sudah penuh!')
9 | if (count > user.fullatm - user.bank) return m.reply('Uangnya ga muat dibank')
10 | if (global.db.data.users[m.sender].money >= xpperlimit * count) {
11 | global.db.data.users[m.sender].money -= xpperlimit * count
12 | global.db.data.users[m.sender].bank += count
13 | conn.reply(m.chat, `Sukses menabung sebesar ${count} Money 💹`, m)
14 | } else conn.reply(m.chat, `[❗] Uang anda tidak mencukupi untuk menabung ${count} money 💹`, m)
15 | }
16 | handler.help = ['nabung ']
17 | handler.tags = ['rpg']
18 | handler.command = /^nabung([0-9]+)|nabung|nabungall$/i
19 | handler.group = true
20 | export default handler
--------------------------------------------------------------------------------
/plugins/rpg-nguli.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | if (new Date - global.db.data.users[m.sender].lastnguli > 86400000) {
3 | global.db.data.users[m.sender].limit += 10
4 | m.reply('_Selamat kamu mendapatkan +10 limit_')
5 | global.db.data.users[m.sender].lastnguli = new Date * 1
6 | } else m.reply('Anda sudah mengklaim upah nguli hari ini')
7 | }
8 | handler.help = ['nguli']
9 | handler.tags = ['rpg']
10 | handler.command = /^(nguli)$/i
11 | handler.group = true
12 | handler.fail = null
13 |
14 |
15 | export default handler
--------------------------------------------------------------------------------
/plugins/rpg-pointxp.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { args, text, conn }) => {
2 |
3 |
4 | if (!args[0] || !args[1]) return m.reply("pake gini .expoint strength 1")
5 | if(isNaN(args[1])) return m.reply("Pake angka")
6 | let human = ["strength", "mana", "stamina", "agility", "intelligence"]
7 | let hum = args[0].toLowerCase() // t
8 |
9 | if (!human.includes(hum)) return m.reply(`
10 | List exchange point xp
11 | ${human.map(hum => `› ${hum}`).join('\n')}`)
12 |
13 | let user = global.db.data.users[m.sender]
14 | if (user.pointxp == 0) return m.reply(`your point xp not enough`)
15 | user.hum += args[1]
16 | user.pointxp -= args[1]
17 |
18 | m.reply(`Now Your ${hum} is ${user.hum}!`)
19 | }
20 | handler.help = ['expoint **']
21 | handler.tags = ['rpg']
22 | handler.command = /^(ex(change)?(point)?)$/i
23 |
24 | export default handler
25 |
--------------------------------------------------------------------------------
/plugins/rpg-tarik.js:
--------------------------------------------------------------------------------
1 | const xpperlimit = 1
2 | let handler = async (m, { conn, command, args }) => {
3 | let user = global.db.data.users[m.sender]
4 | let count = command.replace(/^tarik/i, '')
5 | count = count ? /all/i.test(count) ? Math.floor(global.db.data.users[m.sender].bank / xpperlimit) : parseInt(count) : args[0] ? parseInt(args[0]) : 1
6 | count = Math.max(1, count)
7 | if (user.atm == 0) return m.reply('kamu belum mempuyai atm !')
8 | if (global.db.data.users[m.sender].bank >= xpperlimit * count) {
9 | global.db.data.users[m.sender].bank -= xpperlimit * count
10 | global.db.data.users[m.sender].money += count
11 | conn.reply(m.chat, `Sukses menarik sebesar ${count} Money 💹`, m)
12 | } else conn.reply(m.chat, `[❗] Uang dibank anda tidak mencukupi untuk ditarik sebesar ${count} money 💹`, m)
13 | }
14 | handler.help = ['tarik ']
15 | handler.tags = ['rpg']
16 | handler.command = /^tarik([0-9]+)|tarik|tarikall$/i
17 |
18 | export default handler
--------------------------------------------------------------------------------
/plugins/rpg-weekly.js:
--------------------------------------------------------------------------------
1 | const rewards = {
2 | exp: 15000,
3 | money: 35999,
4 | potion: 9,
5 | }
6 | const cooldown = 604800000
7 | let handler = async (m) => {
8 | let user = global.db.data.users[m.sender]
9 | if (new Date - user.lastweekly < cooldown) throw `You have already claimed this daily claim!, wait for *${((user.lastweekly + cooldown) - new Date()).toTimeString()}*`
10 | let text = ''
11 | for (let reward of Object.keys(rewards)) {
12 | if (!(reward in user)) continue
13 | user[reward] += rewards[reward]
14 | text += `*+${rewards[reward]}* ${global.rpg.emoticon(reward)}${reward}\n`
15 | }
16 | conn.sendButton(m.chat,`${htki} WEEKLY ${htka}`, text.trim(), null, [['Inventory', '.inv'], ['Monthly', '.monthly']],m)
17 | user.lastweekly = new Date * 1
18 | }
19 | handler.help = ['weekly']
20 | handler.tags = ['rpg']
21 | handler.command = /^(weekly)$/i
22 |
23 | handler.cooldown = cooldown
24 |
25 | export default handler
--------------------------------------------------------------------------------
/plugins/sholawat.js:
--------------------------------------------------------------------------------
1 | import fs from 'fs'
2 | import fetch from 'node-fetch'
3 | let handler = async (m, { conn, usedPrefix: _p }) => {
4 | let info = fs.readFileSync('./mp3/sholawat.opus')
5 |
6 | let td = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
7 |
8 | conn.reply(m.chat, info, m, { quoted: fkontak },{ contextInfo: { externalAdReply: { showAdAttribution: true,
9 | mediaUrl: "https://www.youtube.com/channel/UCMx4e8anOq_Olt2nMSv0Cow",
10 | mediaType: 2,
11 | description: "https://www.youtube.com/channel/UCMx4e8anOq_Olt2nMSv0Cow",
12 | title: 'whmods-ᴍᴜʟᴛɪᴅᴇᴠɪᴄᴇ',
13 | body: wm,
14 | thumbnail: thumb,
15 | sourceUrl: sig }}})
16 | }
17 | handler.customPrefix = /^(sholawat)$/i
18 | handler.command = new RegExp
19 |
20 | export default handler
--------------------------------------------------------------------------------
/plugins/sound120.js:
--------------------------------------------------------------------------------
1 | import fs from 'fs'
2 | import fetch from 'node-fetch'
3 | let handler = async (m, { conn, usedPrefix: _p }) => {
4 | let info = fs.readFileSync('./mp3/soundultah.mp3')
5 |
6 | let td = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
7 |
8 | conn.reply(m.chat, info, m, { quoted: fkontak },{ contextInfo: { externalAdReply: { showAdAttribution: true,
9 | mediaUrl: "https://www.youtube.com/channel/UCMx4e8anOq_Olt2nMSv0Cow",
10 | mediaType: 2,
11 | description: "https://www.youtube.com/channel/UCMx4e8anOq_Olt2nMSv0Cow",
12 | title: 'whmods-ᴍᴜʟᴛɪᴅᴇᴠɪᴄᴇ',
13 | body: wm,
14 | thumbnail: thumb,
15 | sourceUrl: sig }}})
16 | }
17 | handler.command = ['soundultah']
18 | handler.help = ['soundultah']
19 | handler.tags = ['sounds']
20 | export default handler
--------------------------------------------------------------------------------
/plugins/sticker-attp.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, text }) => {
2 | let teks = text ? text : m.quoted && m.quoted.text ? m.quoted.text : m.text
3 | conn.sendFile(m.chat, global.API('xteam', '/attp', { file: '', text: teks }), 'attp.webp', '', m, false, { asSticker: true })
4 | }
5 | handler.help = ['attp ']
6 | handler.tags = ['sticker']
7 |
8 | handler.command = /^attp$/i
9 |
10 | export default handler
11 |
--------------------------------------------------------------------------------
/plugins/sticker-bonk.js:
--------------------------------------------------------------------------------
1 | import jimp from 'jimp'
2 |
3 | let handler = async (m, { conn, text }) => {
4 | let img = await jimp.read('https://i.imgur.com/nav6WWX.png'),
5 | who = m.mentionedJid?.[0] || m.quoted?.sender || m.sender,
6 | avatar = await jimp.read(await conn.profilePictureUrl(who, 'image')),
7 | bonk = await img.composite(avatar.resize(128, 128), 120, 90, {
8 | mode: 'dstOver',
9 | opacitySource: 1,
10 | opacityDest: 1
11 | }).getBufferAsync('image/png')
12 | conn.sendMessage(m.chat, { image: bonk }, { quoted: m })
13 | }
14 | handler.command = /^(bonk)$/i
15 |
16 | export default handler
17 |
--------------------------------------------------------------------------------
/plugins/sticker-colong.js:
--------------------------------------------------------------------------------
1 | //
2 | let { MessageType } = (await import('@adiwajshing/baileys')).default
3 | import { sticker } from '../lib/sticker.js'
4 | let handler = async (m, { conn, args }) => {
5 | let stiker = false
6 | try {
7 | let q = m.quoted ? m.quoted : m
8 | let mime = (q.msg || q).mimetype || ''
9 | if (/image|video/.test(mime)) {
10 | let img = await q.download()
11 | if (!img) throw 'Reply stiker nya!'
12 | stiker = await sticker(img, false, '🍀', '🍭 • WH-MODS-BOT-V1 :\nBY WH MODS DEB')
13 | } else if (args[0]) stiker = await sticker(false, args[0], '🍀', '🎮 • SUBSCRIBE :\n https://youtube.com/channel/UCMx4e8anOq_Olt2nMSv0Cow')
14 | } finally {
15 | if (stiker) conn.sendFile(m.chat, stiker, 'sticker.webp', '', m)
16 | else throw 'Conversion failed'
17 | }
18 | }
19 | handler.help = ['colong']
20 | handler.tags = ['sticker']
21 | handler.command = /^colong$/i
22 | handler.owner = true
23 |
24 | export default handler
25 |
--------------------------------------------------------------------------------
/plugins/sticker-getexif.js:
--------------------------------------------------------------------------------
1 | import { format } from 'util'
2 | const { default: { Image } } = await import('node-webpmux')
3 |
4 | let handler = async (m) => {
5 | if (!m.quoted) return m.reply('Tag stikernya!')
6 | if (/sticker/.test(m.quoted.mtype)) {
7 | let img = new Image()
8 | await img.load(await m.quoted.download())
9 | m.reply(format(JSON.parse(img.exif.slice(22).toString())))
10 | }
11 | }
12 | handler.help = ['getexif']
13 | handler.tags = ['sticker']
14 |
15 | handler.command = ['getexif']
16 |
17 | export default handler
--------------------------------------------------------------------------------
/plugins/sticker-meme.js:
--------------------------------------------------------------------------------
1 | import uploadImage from '../lib/uploadImage.js'
2 | import { sticker } from '../lib/sticker.js'
3 | let handler = async (m, { conn, text, usedPrefix, command }) => {
4 | let [atas, bawah] = text.split`|`
5 | let q = m.quoted ? m.quoted : m
6 | let mime = (q.msg || q).mimetype || ''
7 | if (!mime) throw `balas gambar dengan perintah\n\n${usedPrefix + command} <${atas ? atas : 'teks atas'}>|<${bawah ? bawah : 'teks bawah'}>`
8 | if (!/image\/(jpe?g|png)/.test(mime)) throw `_*Mime ${mime} tidak didukung!*_`
9 | let img = await q.download()
10 | let url = await uploadImage(img)
11 | let meme = `https://api.memegen.link/images/custom/${encodeURIComponent(atas ? atas : '')}/${encodeURIComponent(bawah ? bawah : '')}.png?background=${url}`
12 | let stiker = await sticker(false, meme, global.packname, global.author)
13 | if (stiker) await conn.sendFile(m.chat, stiker, '', author, m, '', { asSticker: 1 })
14 | }
15 | handler.help = ['smeme |']
16 | handler.tags = ['tools', 'limitmenu']
17 | handler.command = /^(smeme)$/i
18 |
19 | handler.limit = true
20 |
21 | export default handler
--------------------------------------------------------------------------------
/plugins/sticker-toimg.js:
--------------------------------------------------------------------------------
1 | import { webp2png } from '../lib/webp2mp4.js'
2 | let handler = async (m, { conn, usedPrefix, command }) => {
3 | const notStickerMessage = `Reply sticker with command *${usedPrefix + command}*`
4 | if (!m.quoted) throw notStickerMessage
5 | const q = m.quoted || m
6 | let mime = q.mediaType || ''
7 | if (!/sticker/.test(mime)) throw notStickerMessage
8 | let media = await q.download()
9 | let out = await webp2png(media).catch(_ => null) || Buffer.alloc(0)
10 | await conn.sendFile(m.chat, out, 'out.png', '*DONE (≧ω≦)ゞ*', m)
11 | }
12 | handler.help = ['toimg (reply)']
13 | handler.tags = ['sticker']
14 | handler.command = ['toimg']
15 |
16 | export default handler
--------------------------------------------------------------------------------
/plugins/sticker-tovideo.js:
--------------------------------------------------------------------------------
1 | import { webp2mp4 } from '../lib/webp2mp4.js'
2 | import { ffmpeg } from '../lib/converter.js'
3 | let handler = async (m, { conn, usedPrefix, command }) => {
4 | if (!m.quoted) throw `Balas stiker/audio yang ingin diubah menjadi video dengan perintah ${usedPrefix + command}`
5 | let mime = m.quoted.mimetype || ''
6 | if (!/webp|audio/.test(mime)) throw `Balas stiker/audio yang ingin diubah menjadi video dengan perintah ${usedPrefix + command}`
7 | let media = await m.quoted.download()
8 | let out = Buffer.alloc(0)
9 | if (/webp/.test(mime)) {
10 | out = await webp2mp4(media)
11 | } else if (/audio/.test(mime)) {
12 | out = await ffmpeg(media, [
13 | '-filter_complex', 'color',
14 | '-pix_fmt', 'yuv420p',
15 | '-crf', '51',
16 | '-c:a', 'copy',
17 | '-shortest'
18 | ], 'mp3', 'mp4')
19 | }
20 | await conn.sendFile(m.chat, out, 'out.mp4', '*DONE*', m, 0, { thumbnail: out })
21 | }
22 | handler.help = ['tovideo']
23 | handler.tags = ['sticker']
24 |
25 | handler.command = ['tovideo']
26 |
27 | export default handler
--------------------------------------------------------------------------------
/plugins/sticker-ttp.js:
--------------------------------------------------------------------------------
1 | import { sticker } from '../lib/sticker.js'
2 |
3 | let handler = async (m, { conn, text }) => {
4 | let teks = text ? text : m.quoted && m.quoted.text ? m.quoted.text : m.text
5 | let stiker = await sticker(null, global.API('xteam', '/ttp', { file: '', text: teks }), global.packname, global.author)
6 | if (stiker) return conn.sendFile(m.chat, stiker, 'sticker.webp', '', m)
7 | throw stiker.toString()
8 | }
9 | handler.help = ['ttp ']
10 | handler.tags = ['sticker']
11 |
12 | handler.command = /^ttp$/i
13 |
14 | export default handler
15 |
--------------------------------------------------------------------------------
/plugins/sticker-wm.js:
--------------------------------------------------------------------------------
1 | import { addExif } from '../lib/sticker.js'
2 |
3 |
4 | let handler = async (m, { conn, text }) => {
5 | if (!m.quoted) throw 'Quoted the sticker!'
6 | let stiker = false
7 | try {
8 | let [packname, ...author] = text.split('|')
9 | author = (author || []).join('|')
10 | let mime = m.quoted.mimetype || ''
11 | if (!/webp/.test(mime)) throw 'Reply sticker!'
12 | let img = await m.quoted.download()
13 | if (!img) throw 'Reply a sticker!'
14 | stiker = await addExif(img, packname || '', author || '')
15 | } catch (e) {
16 | console.error(e)
17 | if (Buffer.isBuffer(e)) stiker = e
18 | } finally {
19 | if (stiker) conn.sendFile(m.chat, stiker, 'wm.webp', '', m, false, { asSticker: true })
20 | else throw 'Conversion failed'
21 | }
22 | }
23 | handler.help = ['wm |']
24 | handler.tags = ['sticker']
25 | handler.command = /^wm$/i
26 |
27 | export default handler
28 |
--------------------------------------------------------------------------------
/plugins/store-addlist.js:
--------------------------------------------------------------------------------
1 | const { proto } = (await import('@adiwajshing/baileys')).default
2 |
3 | let handler = async (m, { conn, text, command, usedPrefix }) => {
4 | let M = proto.WebMessageInfo;
5 | if (!m.quoted) throw `balas pesan dengan perintah *${usedPrefix + command}*`;
6 | if (!text) throw `penggunaan: ${usedPrefix + command} \n\ncontoh:\n${usedPrefix + command} DM FF`;
7 | let msgs = db.data.msgs
8 | if (text in msgs) throw `'${text}' telah Terdaftar di Data List`
9 | msgs[text] = M.fromObject(await m.getQuotedObj()).toJSON()
10 | m.reply(`berhasil menambahkan ${text} ke List\n\nakses dengan mengetik namanya`.trim())
11 | }
12 | handler.help = ['list'].map(v => 'add' + v + ' ')
13 | handler.tags = ['admin']
14 | handler.command = /^addlist$/i
15 | handler.premium = true
16 | handler.owner = true
17 |
18 |
19 | export default handler
--------------------------------------------------------------------------------
/plugins/store-dellist.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { text, usedPrefix, command }) => {
2 | if (!text) throw `gunakan *${usedPrefix}liststore* untuk melihat daftar pesan yg tersimpan.`
3 | let msgs = db.data.msgs
4 | if (!(text in msgs)) throw `'${text}' tidak terdaftar di daftar pesan.`
5 | delete msgs[text]
6 | m.reply(`\n [💬] berhasil menghapus pesan di daftar List dengan nama '${text}'.\n`)
7 | }
8 | handler.help = ['list'].map(v => 'del' + v + ' ')
9 | handler.tags = ['admin']
10 | handler.command = /^dellist$/i
11 | handler.group = true
12 | handler.premium = true
13 | handler.admin = true
14 | export default handler
--------------------------------------------------------------------------------
/plugins/store-list.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, usedPrefix, command }) => {
2 | let msgs = db.data.msgs
3 | let msg = (Object.entries(msgs).map(([nama, isi]) => { return { nama, ...isi } })).map(v => v.nama)
4 | let row = Object.keys(msg).map(v => ({
5 | title: msg[v],
6 | description: '',
7 | rowId: msg[v]
8 | }))
9 | let button = {
10 | buttonText: 'LIST STORE',
11 | description: 'Berikut daftar Menu yg Ada di List store...',
12 | footerText: wm
13 | }
14 | if (msg[0]) return await conn.sendListM(m.chat, button, row, m)
15 | else throw `\nbelum ada Menu yg Ada di list store.\nketik *${usedPrefix + command} * untuk menambahkan daftar menu.\n`
16 | }
17 | handler.help = ['list']
18 | handler.tags = ['admin']
19 | handler.command = /^list$/
20 |
21 | export default handler
--------------------------------------------------------------------------------
/plugins/tool-apksearch.js:
--------------------------------------------------------------------------------
1 | import gplay from 'google-play-scraper'
2 |
3 | let handler = async (m, { conn, text }) => {
4 | if (!text) throw 'Input Query'
5 | let res = await gplay.search({ term: text })
6 | if (!res.length) throw `Query "${text}" not found :/`
7 | let opt = { contextInfo: { externalAdReply: { title: res[0].title, body: res[0].summary, thumbnail: (await conn.getFile(res[0].icon)).data, sourceUrl: res[0].url }}}
8 | res = res.map((v) => `*Title:* ${v.title}\n*Dev:* ${v.developer}\n*Price:* ${v.priceText}\n*Score:* ${v.scoreText}\n*Link:* ${v.url}`).join`\n\n`
9 | m.reply(res, null, opt)
10 | }
11 | handler.help = ['apksearch']
12 | handler.tags = ['tools']
13 | handler.command = /^(apksearch)$/i
14 |
15 | export default handler
16 |
--------------------------------------------------------------------------------
/plugins/tool-blur.js:
--------------------------------------------------------------------------------
1 | import jimp from 'jimp'
2 |
3 | let handler = async (m, { conn, text }) => {
4 | let image = m.message?.imageMessage
5 | ? await m.download()
6 | : /image/.test(m.quoted?.mediaType)
7 | ? await m.quoted.download()
8 | : m.mentionedJid?.[0]
9 | ? await conn.profilePictureUrl(m.mentionedJid[0], 'image')
10 | : await conn.profilePictureUrl(m.quoted?.sender || m.sender, 'image')
11 | if (!image) throw `Couldn't fetch the required Image`
12 | let level = text || '5', img = await jimp.read(image)
13 | img.blur(isNaN(level) ? 5 : parseInt(level))
14 | img.getBuffer('image/jpeg', (err, buffer) => {
15 | if (err) throw err?.message || `Couldn't blur the image`
16 | m.reply(buffer)
17 | })
18 | }
19 | handler.command = /^(blur)$/i
20 |
21 | export default handler
22 |
--------------------------------------------------------------------------------
/plugins/tool-carigroup.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | let handler = async (m, { text, usedPrefix, command }) => {
3 | if (!text) throw `uhm.. cari apa?\n\ncontoh:\n${usedPrefix + command} mabar`
4 |
5 | let json = await fetch(`https://anabotofc.herokuapp.com/api/carigrup?apikey=AnaBot&query=${text}`)
6 | let jsons = await json.json()
7 | let caption = `*⎔┉━「 ${command} 」━┉⎔*`
8 | for (let x of jsons.result) {
9 | caption += `
10 | *Nama* : ${x.title}
11 | *Link :* ${x.link}
12 | *Desc :* ${x.desc}
13 | `}
14 | return m.reply(caption)
15 |
16 | }
17 | handler.help = ['carigrup ']
18 | handler.tags = ['tools']
19 |
20 | handler.command = /^carig(ro?up|c)/i
21 |
22 | export default handler
23 |
--------------------------------------------------------------------------------
/plugins/tool-chord.js:
--------------------------------------------------------------------------------
1 | import axios from 'axios'
2 |
3 | let handler = async(m, { conn, text, usedPrefix }) => {
4 |
5 | if (!text) return conn.reply(m.chat, 'Contoh penggunaan: ' + usedPrefix + 'chord hanya rindu', m)
6 | axios.get(`https://docs-jojo.herokuapp.com/api/chord?q=` + text)
7 | .then((res) => {
8 | let hasil = `*• Chord Lagu ${text} :*\n${res.data.result}`
9 | conn.reply(m.chat, hasil, m)
10 | })
11 | .catch(_ => m.reply('Chord Lagu Tidak Ditemukan!'))
12 | }
13 | handler.help = ['chord ']
14 | handler.tags = ['tools', 'limitmenu']
15 | handler.command = /^(chord)$/i
16 | handler.limit = true
17 |
18 | export default handler
19 |
--------------------------------------------------------------------------------
/plugins/tool-delete.js:
--------------------------------------------------------------------------------
1 | let handler = function (m) {
2 | if (!m.quoted) throw false
3 | let { chat, fromMe, isBaileys } = m.quoted
4 | if (!fromMe) throw false
5 | //if (!isBaileys) throw 'Pesan tersebut bukan dikirim oleh bot!'
6 | conn.sendMessage(chat, { delete: m.quoted.vM.key })
7 | }
8 | handler.help = ['del', 'delete']
9 | handler.tags = ['tools']
10 |
11 | handler.command = /^del(ete)?$/i
12 |
13 | export default handler
--------------------------------------------------------------------------------
/plugins/tool-emojimix.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | import { Sticker } from 'wa-sticker-formatter'
3 |
4 | let handler = async (m, { conn, text, usedPrefix, command }) => {
5 | let [emoji1, emoji2] = text.split`+`
6 | if (emoji1 && emoji2) {
7 | let url = API('violetics', '/api/media/emojimix', { emoji1, emoji2 }, 'apikey')
8 | let res = await fetch(url)
9 | if (res.status !== 200) throw res.statusText
10 | let stiker = await (new Sticker(url)).toMessage()
11 | conn.sendMessage(m.chat, stiker, { quoted: m })
12 | } else throw `Ex: ${usedPrefix+command} ${decodeURI('%F0%9F%92%80')}+${decodeURI('%F0%9F%92%80')}`
13 | }
14 | handler.help = ['emojimix']
15 | handler.tags = ['tools', 'limitmenu']
16 | handler.command = /^(emojimix)$/i
17 | handler.limit = true
18 | export default handler
19 |
--------------------------------------------------------------------------------
/plugins/tool-hlh.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { command, text }) => {
2 | let ter = command[1].toLowerCase()
3 | let txt = m.quoted ? m.quoted.text ? m.quoted.text : text ? text : m.text : text ? text : m.text
4 | await m.reply(txt.replace(/[aiueo]/g, ter).replace(/[AIUEO]/g, ter.toUpperCase()))
5 | }
6 | handler.help = [...'aiueo'].map(v => `h${v}l${v}h `)
7 | handler.tags = ['tools']
8 | handler.command = /^h([aiueo])l\1h/i
9 |
10 | export default handler
--------------------------------------------------------------------------------
/plugins/tool-nobg.js:
--------------------------------------------------------------------------------
1 | import uploadImage from '../lib/uploadImage.js'
2 | import { webp2png } from '../lib/webp2mp4.js'
3 |
4 | let handler = async (m, { conn, usedPrefix, command }) => {
5 | let q = m.quoted ? m.quoted : m,
6 | mime = (q.msg || q).mimetype || q.mediaType || ''
7 | if (/image/g.test(mime)) {
8 | let img = await webp2png(await q.download()),
9 | url = API('violetics', '/api/media/removebg', { img }, 'apikey')
10 | conn.sendMessage(m.chat, { image: { url }}, { quoted: m })
11 | } else throw `Send/reply an image with command ${usedPrefix + command}`
12 | }
13 | handler.help = ['removebg']
14 | handler.tags = ['tools']
15 | handler.command = /^(no|remove)bg$/i
16 |
17 | export default handler
18 |
--------------------------------------------------------------------------------
/plugins/tool-ocr.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | import { webp2png } from '../lib/webp2mp4.js'
3 |
4 | let handler = async (m, { conn }) => {
5 | let q = m.quoted ? m.quoted : m,
6 | mime = (q || q.msg).mimetype || q.mediaType || ''
7 | if (/image/.test(mime)) {
8 | let url = await webp2png(await q.download()),
9 | res = await fetch(API('https://api.ocr.space', '/parse/imageurl', { apikey: '8e65f273cd88957', url }))
10 | if (res.status !== 200) throw res.statusText
11 | let json = await res.json()
12 | m.reply(json?.ParsedResults?.[0]?.ParsedText)
13 | } else throw 'Reply an image!'
14 | }
15 |
16 | handler.help = ['ocr', 'totext']
17 | handler.tags = ['tools']
18 | handler.command = /^(ocr|totext)$/i
19 | handler.limit = true
20 |
21 | export default handler
22 |
23 |
--------------------------------------------------------------------------------
/plugins/tool-qrcode.js:
--------------------------------------------------------------------------------
1 |
2 | import { toDataURL } from 'qrcode'
3 |
4 | let handler = async (m, { conn, text }) => conn.sendFile(m.chat, await toDataURL(text.slice(0, 2048), { scale: 8 }), 'qrcode.png', '¯\\_(ツ)_/¯', m)
5 |
6 | handler.help = ['', 'code'].map(v => 'qr' + v + ' ')
7 | handler.tags = ['tools']
8 | handler.command = /^qr(code)?$/i
9 |
10 |
11 | export default handler
--------------------------------------------------------------------------------
/plugins/tool-react.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, usedPrefix: _p, args, text, usedPrefix}) => {
2 |
3 | if (!m.quoted) throw 'Balas Chatnya !'
4 | if (text.length > 2) throw 'Cuma Untuk 1 Emoji!'
5 | if (!text) throw `📍 Contoh Penggunaan :\n${usedPrefix}react 🗿`
6 | conn.relayMessage(m.chat, { reactionMessage: {
7 | key: {
8 | id: m.quoted.id,
9 | remoteJid: m.chat,
10 | fromMe: true
11 | },
12 | text: `${text}`}}, { messageId: m.id })
13 | }
14 | handler.help = ['react ']
15 | handler.tags = ['tools']
16 | handler.command = /^(react)$/i
17 |
18 | export default handler
--------------------------------------------------------------------------------
/plugins/tool-readmore.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn, text }) => {
2 | let [l, r] = text.split`|`
3 | if (!l) l = ''
4 | if (!r) r = ''
5 | conn.reply(m.chat, l + readMore + r, m)
6 | }
7 | handler.help = ['readmore', 'spoiler'].map(v => v + ' |')
8 | handler.tags = ['tools']
9 | handler.command = /^(spoiler|hidetext|readmore|selengkapnya)$/i
10 |
11 | export default handler
12 |
13 | const more = String.fromCharCode(8206)
14 | const readMore = more.repeat(4001)
--------------------------------------------------------------------------------
/plugins/tool-readviewonce.js:
--------------------------------------------------------------------------------
1 | let handler = async (m, { conn }) => {
2 | if (!m.quoted) throw 'where\'s message?'
3 | if (m.quoted.mtype !== 'viewOnceMessage') throw 'Itu bukan pesan viewOnce'
4 | const msg = await conn.loadMessage(m.quoted.id)
5 | if (!msg) throw 'can\'t open message!'
6 | await conn.copyNForward(m.chat, msg, true, { readViewOnce: true })
7 | }
8 |
9 | handler.help = ['readviewonce']
10 | handler.tags = ['tools']
11 | handler.command = /^readviewonce/i
12 |
13 | export default handler
--------------------------------------------------------------------------------
/plugins/tool-sendquote.js:
--------------------------------------------------------------------------------
1 | async function handler(m) {
2 | if (!m.quoted) throw 'reply pesan!'
3 | let q = await m.getQuotedObj()
4 | if (!q.quoted) throw 'pesan yang anda reply tidak mengandung reply!'
5 | await q.quoted.copyNForward(m.chat, true)
6 | }
7 | handler.command = /^q$/i
8 |
9 | export default handler
--------------------------------------------------------------------------------
/plugins/tool-styletext.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | import { JSDOM } from 'jsdom'
3 | let handler = async (m, { conn, text }) => {
4 | conn.reply(m.chat, Object.entries(await stylizeText(text ? text : m.quoted && m.quoted.text ? m.quoted.text : m.text)).map(([name, value]) => `*${name}*\n${value}`).join`\n\n`, m)
5 | }
6 | handler.help = ['style'].map(v => v + ' ')
7 | handler.tags = ['tools']
8 | handler.command = /^(style(text)?)$/i
9 |
10 | handler.exp = 0
11 |
12 | export default handler
13 |
14 | async function stylizeText(text) {
15 | let res = await fetch('http://qaz.wtf/u/convert.cgi?text=' + encodeURIComponent(text))
16 | let html = await res.text()
17 | let dom = new JSDOM(html)
18 | let table = dom.window.document.querySelector('table').children[0].children
19 | let obj = {}
20 | for (let tr of table) {
21 | let name = tr.querySelector('.aname').innerHTML
22 | let content = tr.children[1].textContent.replace(/^\n/, '').replace(/\n$/, '')
23 | obj[name + (obj[name] ? ' Reversed' : '')] = content
24 | }
25 | return obj
26 | }
--------------------------------------------------------------------------------
/plugins/tool-tourl.js:
--------------------------------------------------------------------------------
1 | import uploadFile from '../lib/uploadFile.js'
2 | import uploadImage from '../lib/uploadImage.js'
3 |
4 | let handler = async (m) => {
5 | let q = m.quoted ? m.quoted : m
6 | let mime = (q.msg || q).mimetype || ''
7 | if (!mime) throw 'No media found'
8 | let media = await q.download()
9 | let isTele = /image\/(png|jpe?g|gif)|video\/mp4/.test(mime)
10 | let link = await (isTele ? uploadImage : uploadFile)(media)
11 | m.reply(`📮 *L I N K :*
12 | ${link}
13 | 📊 *S I Z E :* ${media.length} Byte
14 | 📛 *E x p i r e d :* ${isTele ? 'No Expiry Date' : 'Unknown'}`)
15 | }
16 | handler.help = ['upload (reply media)', 'tourl (reply media)']
17 | handler.tags = ['tools', 'limitmenu']
18 | handler.command = /^(tourl|upload)$/i
19 | handler.limit = true
20 | export default handler
--------------------------------------------------------------------------------
/plugins/tool-webcheck.js:
--------------------------------------------------------------------------------
1 | import https from 'https'
2 | import fetch from 'node-fetch'
3 |
4 | let handler = async (m, { args, usedPrefix, command }) => {
5 | if (!args[0]) throw `Ex: ${usedPrefix + command} nekopoi.care`
6 | let res = await checkWeb(args)
7 | m.reply(res.map(v => `*• Domain:* ${v.Domain}\n*• Status:* ${v.Status}`).join('\n\n'))
8 | }
9 | handler.help = ['webcheck', 'webcek']
10 | handler.command = /^web(check|cek)|(check|cek)web$/i
11 | handler.tags = ['tools', 'limitmenu']
12 | handler.limit = true
13 | export default handler
14 |
15 | async function checkWeb(url) {
16 | let res = await (await fetch('https://trustpositif.kominfo.go.id/Rest_server/getrecordsname_home', {
17 | agent: new https.Agent({ rejectUnauthorized: false }),
18 | method: 'post',
19 | body: new URLSearchParams(Object.entries({ name: url.join('%0A') }))
20 | })).json()
21 | return res.values
22 | }
23 |
--------------------------------------------------------------------------------
/plugins/wallq.js:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch'
2 | let handler = async (m, { conn, text }) => {
3 | if (!text) throw 'Nyari apa?'
4 | let res = await fetch(global.API('https://wall.alphacoders.com/api2.0','/get.php', {
5 | auth: '3e7756c85df54b78f934a284c11abe4e',
6 | method: 'search',
7 | term: text
8 | }))
9 | if (!res.ok) throw await res.text()
10 | let json = await res.json()
11 | let img = json.wallpapers[Math.floor(Math.random() * json.wallpapers.length)]
12 | await conn.sendButton(m.chat, `
13 | *${htki} WH-MODS-BOT-V1 WALLPAPER ${htka}*
14 | 🔎 *Result:* ${text}
15 | 🌎 *Sumber Asli:* https://wall.alphacoders.com
16 | ⛩ *ɴᴀᴍᴇ ᴜꜱᴇʀ:* ${conn.getName(m.sender)}
17 | `, author, await(await fetch(img.url_image)).buffer(), [['Next', m.text]], m)
18 | }
19 | handler.help = ['wallpaperq ']
20 | handler.tags = ['anime']
21 | handler.command = /^wall(paper)?q?$/i
22 |
23 | export default handler
24 |
--------------------------------------------------------------------------------
/plugins/wikipedia.js:
--------------------------------------------------------------------------------
1 | import { wikipedia } from '@bochilteam/scraper'
2 | let handler = async (m, { text, usedPrefix, command }) => {
3 | if (!text) throw `Contoh penggunaan ${usedPrefix}${command} Minecraft`
4 | let json = await wikipedia(text)
5 | m.reply(`
6 | *${json.title}*
7 | ${json.img}
8 |
9 | ${json.articles}
10 | `.trim())
11 | }
12 | handler.help = ['wikipedia'].map(v => v + ' ')
13 | handler.tags = ['internet']
14 | handler.command = /^(wiki|wikipedia)$/i
15 |
16 | export default handler
17 |
--------------------------------------------------------------------------------
/plugins/youtube-yts.js:
--------------------------------------------------------------------------------
1 | import { youtubeSearch } from '@bochilteam/scraper'
2 | let handler = async (m, { text }) => {
3 | if (!text) throw 'Cari apa?'
4 | const { video, channel } = await youtubeSearch(text)
5 | let teks = [...video, ...channel].map(v => {
6 | switch (v.type) {
7 | case 'video': return `
8 | 💌 *${v.title}*
9 | 🔗 _${v.url}_
10 | ⏰ Duration: ${v.durationH}
11 | 📤 Uploaded ${v.publishedTime}
12 | 👁️ ${v.view} views
13 | `.trim()
14 | case 'channel': return `
15 | ╭──────━• *CHANNEL*
16 | │🎀 *${v.channelName}*
17 | │🔗 _${v.url}_
18 | │📛 _${v.subscriberH} Subscriber_
19 | │🎥 ${v.videoCount} video
20 | ┗──────━•
21 | `.trim()
22 | }
23 | }).filter(v => v).join('\n\n─────────────━─────────────\n\n')
24 | m.reply(`*${htki} SEARCH ${htka}*\n\n` + teks)
25 | }
26 | handler.help = ['', 'earch'].map(v => 'yts' + v + ' ')
27 | handler.tags = ['tools']
28 | handler.command = /^yts(earch)?$/i
29 |
30 | export default handler
31 |
--------------------------------------------------------------------------------
/replit.nix:
--------------------------------------------------------------------------------
1 | { pkgs }: {
2 | deps = [
3 | pkgs.nodejs
4 | pkgs.nodePackages.typescript
5 | pkgs.ffmpeg
6 | pkgs.imagemagick
7 | pkgs.git
8 | pkgs.neofetch
9 | pkgs.libwebp
10 | pkgs.speedtest-cli
11 | pkgs.wget
12 | pkgs.yarn
13 | pkgs.libuuid
14 | ];
15 | env = {
16 | LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [
17 | pkgs.libuuid
18 | ];
19 | };
20 | }
21 |
--------------------------------------------------------------------------------
/session.data.json:
--------------------------------------------------------------------------------
1 | //ISI SESSION ELU
2 |
--------------------------------------------------------------------------------
/src/Aesthetic/.file:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Aesthetic/Aesthetic_000.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/Aesthetic/Aesthetic_000.jpeg
--------------------------------------------------------------------------------
/src/Aesthetic/Aesthetic_001.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/Aesthetic/Aesthetic_001.jpg
--------------------------------------------------------------------------------
/src/Aesthetic/Aesthetic_002.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/Aesthetic/Aesthetic_002.jpg
--------------------------------------------------------------------------------
/src/avatar_contact.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/avatar_contact.png
--------------------------------------------------------------------------------
/src/font/.file:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/font/212BabyGirl.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/212BabyGirl.otf
--------------------------------------------------------------------------------
/src/font/212LeahleeSans.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/212LeahleeSans.ttf
--------------------------------------------------------------------------------
/src/font/99HandWritting.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/99HandWritting.ttf
--------------------------------------------------------------------------------
/src/font/ACallingFontDby7NTypes.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/ACallingFontDby7NTypes.otf
--------------------------------------------------------------------------------
/src/font/ACasualHandwrittenPenNoncommercial.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/ACasualHandwrittenPenNoncommercial.ttf
--------------------------------------------------------------------------------
/src/font/ADayinSeptember.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/ADayinSeptember.otf
--------------------------------------------------------------------------------
/src/font/ASMelanieHandwritting.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/ASMelanieHandwritting.ttf
--------------------------------------------------------------------------------
/src/font/Alittlesunshine.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Alittlesunshine.ttf
--------------------------------------------------------------------------------
/src/font/And-This-Happened.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/And-This-Happened.ttf
--------------------------------------------------------------------------------
/src/font/AvenirCondensedHand.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/AvenirCondensedHand.ttf
--------------------------------------------------------------------------------
/src/font/Avocados.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Avocados.ttf
--------------------------------------------------------------------------------
/src/font/BabyDoll.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/BabyDoll.ttf
--------------------------------------------------------------------------------
/src/font/BattleOfKingsRegular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/BattleOfKingsRegular.ttf
--------------------------------------------------------------------------------
/src/font/BrayNotes.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/BrayNotes.ttf
--------------------------------------------------------------------------------
/src/font/Convered-By-Your-Grace.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Convered-By-Your-Grace.ttf
--------------------------------------------------------------------------------
/src/font/Edoms-Handwritting-Normal.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Edoms-Handwritting-Normal.ttf
--------------------------------------------------------------------------------
/src/font/Futura Bold Italic font.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Futura Bold Italic font.ttf
--------------------------------------------------------------------------------
/src/font/Futura Bold font.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Futura Bold font.ttf
--------------------------------------------------------------------------------
/src/font/Futura Book Italic font.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Futura Book Italic font.ttf
--------------------------------------------------------------------------------
/src/font/Futura Book font.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Futura Book font.ttf
--------------------------------------------------------------------------------
/src/font/Futura Extra Black font.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Futura Extra Black font.ttf
--------------------------------------------------------------------------------
/src/font/Futura Heavy Italic font.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Futura Heavy Italic font.ttf
--------------------------------------------------------------------------------
/src/font/Futura Heavy font.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Futura Heavy font.ttf
--------------------------------------------------------------------------------
/src/font/Futura Light Italic font.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Futura Light Italic font.ttf
--------------------------------------------------------------------------------
/src/font/Futura Light font.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Futura Light font.ttf
--------------------------------------------------------------------------------
/src/font/Futura Medium Italic font.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Futura Medium Italic font.ttf
--------------------------------------------------------------------------------
/src/font/Futura XBlk BT.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Futura XBlk BT.ttf
--------------------------------------------------------------------------------
/src/font/Futura-CondensedLight.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Futura-CondensedLight.otf
--------------------------------------------------------------------------------
/src/font/GloriaHallelujah-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/GloriaHallelujah-Regular.ttf
--------------------------------------------------------------------------------
/src/font/HandwritingCR-2.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/HandwritingCR-2.ttf
--------------------------------------------------------------------------------
/src/font/Kempton-Demo-Handwritting.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Kempton-Demo-Handwritting.ttf
--------------------------------------------------------------------------------
/src/font/MyHandsareHoldingYou.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/MyHandsareHoldingYou.ttf
--------------------------------------------------------------------------------
/src/font/My_handwriting.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/My_handwriting.ttf
--------------------------------------------------------------------------------
/src/font/Nadeznas-Handwritting.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Nadeznas-Handwritting.ttf
--------------------------------------------------------------------------------
/src/font/Roboto-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Roboto-Black.ttf
--------------------------------------------------------------------------------
/src/font/Roboto-BlackItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Roboto-BlackItalic.ttf
--------------------------------------------------------------------------------
/src/font/Roboto-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Roboto-Bold.ttf
--------------------------------------------------------------------------------
/src/font/Roboto-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Roboto-BoldItalic.ttf
--------------------------------------------------------------------------------
/src/font/Roboto-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Roboto-Italic.ttf
--------------------------------------------------------------------------------
/src/font/Roboto-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Roboto-Light.ttf
--------------------------------------------------------------------------------
/src/font/Roboto-LightItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Roboto-LightItalic.ttf
--------------------------------------------------------------------------------
/src/font/Roboto-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Roboto-Medium.ttf
--------------------------------------------------------------------------------
/src/font/Roboto-MediumItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Roboto-MediumItalic.ttf
--------------------------------------------------------------------------------
/src/font/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/src/font/Roboto-Thin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Roboto-Thin.ttf
--------------------------------------------------------------------------------
/src/font/Roboto-ThinItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Roboto-ThinItalic.ttf
--------------------------------------------------------------------------------
/src/font/ShadowsIntoLight-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/ShadowsIntoLight-Regular.ttf
--------------------------------------------------------------------------------
/src/font/Zahraaa.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/Zahraaa.ttf
--------------------------------------------------------------------------------
/src/font/angelina.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/angelina.ttf
--------------------------------------------------------------------------------
/src/font/futur.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/futur.ttf
--------------------------------------------------------------------------------
/src/font/futura light bt.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/futura light bt.ttf
--------------------------------------------------------------------------------
/src/font/futura medium bt.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/futura medium bt.ttf
--------------------------------------------------------------------------------
/src/font/futura medium condensed bt.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/futura medium condensed bt.ttf
--------------------------------------------------------------------------------
/src/font/level_c.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/level_c.otf
--------------------------------------------------------------------------------
/src/font/michellehandwritting.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/michellehandwritting.ttf
--------------------------------------------------------------------------------
/src/font/texts.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/font/texts.otf
--------------------------------------------------------------------------------
/src/kertas/.file:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/kertas/magernulis1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/kertas/magernulis1.jpg
--------------------------------------------------------------------------------
/src/level_c.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/level_c.otf
--------------------------------------------------------------------------------
/src/texts.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/src/texts.otf
--------------------------------------------------------------------------------
/sticker/ress1.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/sticker/ress1.webp
--------------------------------------------------------------------------------
/sticker/ress2.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/sticker/ress2.webp
--------------------------------------------------------------------------------
/sticker/ress3.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/sticker/ress3.webp
--------------------------------------------------------------------------------
/sticker/ress4.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/sticker/ress4.webp
--------------------------------------------------------------------------------
/sticker/ress5.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/sticker/ress5.webp
--------------------------------------------------------------------------------
/sticker/ress6.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/sticker/ress6.webp
--------------------------------------------------------------------------------
/sticker/ress7.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/sticker/ress7.webp
--------------------------------------------------------------------------------
/sticker/ress8.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/sticker/ress8.webp
--------------------------------------------------------------------------------
/sticker/ress9.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/sticker/ress9.webp
--------------------------------------------------------------------------------
/sticker/ynkts1.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/sticker/ynkts1.webp
--------------------------------------------------------------------------------
/sticker/ynkts2.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/sticker/ynkts2.webp
--------------------------------------------------------------------------------
/sticker/ynkts3.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/sticker/ynkts3.webp
--------------------------------------------------------------------------------
/sticker/ynkts4.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/sticker/ynkts4.webp
--------------------------------------------------------------------------------
/sticker/ynkts5.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/sticker/ynkts5.webp
--------------------------------------------------------------------------------
/sticker/ynkts6.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/sticker/ynkts6.webp
--------------------------------------------------------------------------------
/sticker/ynkts7.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/sticker/ynkts7.webp
--------------------------------------------------------------------------------
/sticker/ynkts8.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/sticker/ynkts8.webp
--------------------------------------------------------------------------------
/sticker/ynkts9.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/sticker/ynkts9.webp
--------------------------------------------------------------------------------
/test.js:
--------------------------------------------------------------------------------
1 | import fs from 'fs'
2 | import path, { dirname } from 'path'
3 | import assert from 'assert'
4 | import { spawn } from 'child_process'
5 | import syntaxError from 'syntax-error'
6 | import { fileURLToPath } from 'url'
7 | import { createRequire } from 'module'
8 |
9 | const __filename = fileURLToPath(import.meta.url)
10 | const __dirname = dirname(__filename)
11 | const require = createRequire(__dirname)
12 |
13 | let folders = ['.', ...Object.keys(require(path.join(__dirname, './package.json')).directories)]
14 | let files = []
15 | for (let folder of folders)
16 | for (let file of fs.readdirSync(folder).filter(v => v.endsWith('.js')))
17 | files.push(path.resolve(path.join(folder, file)))
18 | for (let file of files) {
19 | if (file == __filename) continue
20 | console.error('Checking', file)
21 | const error = syntaxError(fs.readFileSync(file, 'utf8'), file, {
22 | sourceType: 'module',
23 | allowReturnOutsideFunction: true,
24 | allowAwaitOutsideFunction: true
25 | })
26 | if (error) assert.ok(error.length < 1, file + '\n\n' + error)
27 | assert.ok(file)
28 | console.log('Done ☑️', file)
29 | }
30 |
--------------------------------------------------------------------------------
/thumbnail.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/thumbnail.jpg
--------------------------------------------------------------------------------
/views/img/dark/.file:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/views/img/dark/balloon_centered_normal.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/dark/balloon_centered_normal.9.png
--------------------------------------------------------------------------------
/views/img/dark/balloon_centered_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/dark/balloon_centered_pressed.9.png
--------------------------------------------------------------------------------
/views/img/dark/balloon_centered_shadow.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/dark/balloon_centered_shadow.9.png
--------------------------------------------------------------------------------
/views/img/dark/balloon_incoming_frame.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/dark/balloon_incoming_frame.9.png
--------------------------------------------------------------------------------
/views/img/dark/balloon_incoming_normal.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/dark/balloon_incoming_normal.9.png
--------------------------------------------------------------------------------
/views/img/dark/balloon_incoming_normal_ext.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/dark/balloon_incoming_normal_ext.9.png
--------------------------------------------------------------------------------
/views/img/dark/balloon_incoming_normal_stkr.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/dark/balloon_incoming_normal_stkr.9.png
--------------------------------------------------------------------------------
/views/img/dark/balloon_incoming_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/dark/balloon_incoming_pressed.9.png
--------------------------------------------------------------------------------
/views/img/dark/balloon_incoming_pressed_ext.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/dark/balloon_incoming_pressed_ext.9.png
--------------------------------------------------------------------------------
/views/img/dark/balloon_live_location_incoming_frame.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/dark/balloon_live_location_incoming_frame.9.png
--------------------------------------------------------------------------------
/views/img/dark/balloon_live_location_outgoing_frame.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/dark/balloon_live_location_outgoing_frame.9.png
--------------------------------------------------------------------------------
/views/img/dark/balloon_outgoing_frame.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/dark/balloon_outgoing_frame.9.png
--------------------------------------------------------------------------------
/views/img/dark/balloon_outgoing_normal.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/dark/balloon_outgoing_normal.9.png
--------------------------------------------------------------------------------
/views/img/dark/balloon_outgoing_normal_ext.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/dark/balloon_outgoing_normal_ext.9.png
--------------------------------------------------------------------------------
/views/img/dark/balloon_outgoing_normal_stkr.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/dark/balloon_outgoing_normal_stkr.9.png
--------------------------------------------------------------------------------
/views/img/dark/balloon_outgoing_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/dark/balloon_outgoing_pressed.9.png
--------------------------------------------------------------------------------
/views/img/dark/balloon_outgoing_pressed_ext.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/dark/balloon_outgoing_pressed_ext.9.png
--------------------------------------------------------------------------------
/views/img/light/.file:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/views/img/light/balloon_centered_normal.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/light/balloon_centered_normal.9.png
--------------------------------------------------------------------------------
/views/img/light/balloon_centered_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/light/balloon_centered_pressed.9.png
--------------------------------------------------------------------------------
/views/img/light/balloon_centered_shadow.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/light/balloon_centered_shadow.9.png
--------------------------------------------------------------------------------
/views/img/light/balloon_incoming_frame.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/light/balloon_incoming_frame.9.png
--------------------------------------------------------------------------------
/views/img/light/balloon_incoming_normal.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/light/balloon_incoming_normal.9.png
--------------------------------------------------------------------------------
/views/img/light/balloon_incoming_normal_ext.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/light/balloon_incoming_normal_ext.9.png
--------------------------------------------------------------------------------
/views/img/light/balloon_incoming_normal_stkr.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/light/balloon_incoming_normal_stkr.9.png
--------------------------------------------------------------------------------
/views/img/light/balloon_incoming_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/light/balloon_incoming_pressed.9.png
--------------------------------------------------------------------------------
/views/img/light/balloon_incoming_pressed_ext.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/light/balloon_incoming_pressed_ext.9.png
--------------------------------------------------------------------------------
/views/img/light/balloon_live_location_incoming_frame.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/light/balloon_live_location_incoming_frame.9.png
--------------------------------------------------------------------------------
/views/img/light/balloon_live_location_outgoing_frame.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/light/balloon_live_location_outgoing_frame.9.png
--------------------------------------------------------------------------------
/views/img/light/balloon_outgoing_frame.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/light/balloon_outgoing_frame.9.png
--------------------------------------------------------------------------------
/views/img/light/balloon_outgoing_normal.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/light/balloon_outgoing_normal.9.png
--------------------------------------------------------------------------------
/views/img/light/balloon_outgoing_normal_ext.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/light/balloon_outgoing_normal_ext.9.png
--------------------------------------------------------------------------------
/views/img/light/balloon_outgoing_normal_stkr.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/light/balloon_outgoing_normal_stkr.9.png
--------------------------------------------------------------------------------
/views/img/light/balloon_outgoing_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/light/balloon_outgoing_pressed.9.png
--------------------------------------------------------------------------------
/views/img/light/balloon_outgoing_pressed_ext.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RaaaGH/Albedo-BOT/b3cb0cd86ab4f2953c873995beb9af604915d090/views/img/light/balloon_outgoing_pressed_ext.9.png
--------------------------------------------------------------------------------
/views/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Web
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/views/index.js:
--------------------------------------------------------------------------------
1 | window.onload = () => {
2 | let chat = document.querySelector('div.container-fluid')
3 | function addMsg(obj) {
4 | let html = document.createElement('span')
5 | html.className = 'msg'
6 | html.innerHTML = obj
7 | chat.appendChild(html)
8 | }
9 |
10 | window.onclick = () => addMsg(12)
11 | }
12 |
--------------------------------------------------------------------------------
/views/style.css:
--------------------------------------------------------------------------------
1 | span.msg {
2 | }
3 |
4 |
--------------------------------------------------------------------------------