├── lib
├── README.md
├── class
│ ├── ChanJinhuyk
│ └── init.js
├── database
│ ├── ChanJinhuyk
│ ├── premium.json
│ ├── tempdb.js
│ ├── user.js
│ ├── group.js
│ └── alive.js
├── start.sh
├── assets
│ └── logo.png
├── plugins.js
├── ttt.js
├── premiun.js
├── koyeb.js
└── exif.js
├── Procfile
├── source
├── Emanuel
├── asta.json
├── GOJO.json.txt
├── whatsapp.json
└── JINHUYK.json.txt
├── temp
└── ChanJinhuyk
├── Assets
└── JINHUYK-MD-V1
├── CODEOWNERS
├── heroku.yml
├── CONTRIBUTING.md
├── replit
├── SECURITY.md
├── index.js
├── plugins
├── cat.js
├── dog.js
├── teddy.js
├── hack.js
├── fakereply.js
├── live.js
├── stickersearch.js
├── _new.js
├── getall.js
├── pubg.js
├── gifsearch.js
├── _SySode.js
├── _plugins.js
├── delspam.js
├── _updater.js
├── ssaver.js
├── editorpack.js
├── drive.js
├── delete.js
├── notes.js
├── user.js
├── forex.js
├── anticall.js
├── _menu.js
├── fun.js
├── reactionpack.js
├── gfx.js
├── audio.js
├── wallpaper.js
├── chats.js
└── logo.js
├── plugins.js
├── replit.nix
├── Dockerfile
├── Jinhuyk-MD
├── sample-config.env
└── deploy-on-vps.md
├── koyeb.yaml
├── render.yaml
├── package.json
├── config.js
├── README.md
├── app.json
└── heroku.js
/lib/README.md:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Procfile:
--------------------------------------------------------------------------------
1 | web: npm start
--------------------------------------------------------------------------------
/source/Emanuel:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/temp/ChanJinhuyk:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Assets/JINHUYK-MD-V1:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/CODEOWNERS:
--------------------------------------------------------------------------------
1 | @Kangjinhuyk
2 |
--------------------------------------------------------------------------------
/lib/class/ChanJinhuyk:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/lib/database/ChanJinhuyk:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/lib/start.sh:
--------------------------------------------------------------------------------
1 | while true
2 | do
3 | echo "Starting Jinhuyk-MD-V1!"
4 | node .
5 | done
--------------------------------------------------------------------------------
/heroku.yml:
--------------------------------------------------------------------------------
1 | build:
2 | docker:
3 | web: Dockerfile
4 | run:
5 | web: npm start
6 |
--------------------------------------------------------------------------------
/lib/database/premium.json:
--------------------------------------------------------------------------------
1 | [{},{"id":"242067274660@s.whatsapp.net","expired":10359417954514}]
2 |
--------------------------------------------------------------------------------
/lib/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ChanJinhuyk/JINHUYK-MD-V1/HEAD/lib/assets/logo.png
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | ### How To Contribute To Us
2 | 1. Create an Issue on Github
3 | 2. Add you phone number or email and tell us to Contact You
4 | 3. Then Us how and why you want to contribute to this project
5 | -----------------------------------------------------------------
6 |
--------------------------------------------------------------------------------
/replit:
--------------------------------------------------------------------------------
1 | run = "npm start || yarn start || node ."
2 | # stop = "npm stop || yarn stop"
3 | entrypoint = "config.js"
4 | hidden = [".config"]
5 |
6 |
7 |
8 |
9 | [unitTest]
10 | language = "nodejs"
11 |
12 | onBoot = "npm i || yarn"
13 |
14 | [nix]
15 | channel = "stable-23_05"
16 |
17 | [deployment]
18 | run = ["yarn","start"]
19 | deploymentTarget = "cloudrun"
20 | ignorePorts = false
21 |
--------------------------------------------------------------------------------
/lib/database/tempdb.js:
--------------------------------------------------------------------------------
1 |
2 | const mongoose = require('mongoose');
3 | const TempDb = new mongoose.Schema({
4 | id: { type: String, unique: true ,required: true, default:"JINHUYK-MD-V1"},
5 | creator: { type: String, default: "kangsasaki" },
6 | data: { type: Object, default: {} }
7 | });
8 | const dbtemp = mongoose.model("dbtemp", TempDb)
9 | module.exports = { dbtemp }
10 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Security Notice
2 |
3 | ## Supported Versions Node Versions to run this bot
4 |
5 | Please Use Node Version Higher to Get The Best Performance.
6 |
7 | | Version | Supported |
8 | | ------- | ------------------ |
9 | | 14.x | :x: |
10 | | 16.x | ❗ |
11 | | 18.x | :white_check_mark: |
12 | | 20.x | ✅ |
13 |
14 | ## Reporting a Vulnerability
15 |
16 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | const bot = require(__dirname + '/lib/amd')
2 | const { VERSION } = require(__dirname + '/config')
3 |
4 | const start = async () => {
5 | Debug.info(`Starting JINHUYK ${VERSION}`)
6 | try {
7 | await bot.init()
8 | //bot.logger.info('⏳ Database syncing!')
9 | await bot.DATABASE.sync()
10 | await bot.connect()
11 | } catch (error) {
12 | Debug.error(error);
13 | start();
14 | }
15 | }
16 | start();
17 |
--------------------------------------------------------------------------------
/plugins/cat.js:
--------------------------------------------------------------------------------
1 | const { smd } = require("../lib");
2 |
3 | smd(
4 | {
5 | cmdname: "cat",
6 | desc: "Send Images of randome Cats!",
7 | type: "misc",
8 | react: "🐈",
9 | filename: __filename,
10 | },
11 | async (m) => {
12 | try {
13 | await m.send(
14 | "https://cataas.com/cat",
15 | { caption: "*Meyaooooooooo🐈!*" },
16 | "img",
17 | m
18 | );
19 | } catch (e) {
20 | m.error(`${e}\n\nCommand: cat`, e, false);
21 | }
22 | }
23 | );
24 |
--------------------------------------------------------------------------------
/plugins.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | const path = require('path');
3 | const directoryPath = '../plugins';
4 | let jsFileCount = 0;
5 |
6 | fs.readdir(directoryPath, function (err, files) {
7 | if (err) {
8 | return console.log('Unable to scan directory: ' + err);
9 | }
10 | files.forEach(function (file) {
11 | if (file.endsWith('.js')) {
12 | jsFileCount++;
13 | }
14 | });
15 | console.log(`Found ${jsFileCount} .js files in the directory.`);
16 | });
17 | //David Cyril
--------------------------------------------------------------------------------
/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 |
22 |
23 |
--------------------------------------------------------------------------------
/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 | npm i pm2 -g && \
10 | rm -rf /var/lib/apt/lists/*
11 |
12 | RUN git clone https://github.com/DeeCeeXxx/Queen_Anita-V2 /root/DeeCeeXxx
13 | WORKDIR /root/DeeCeeXxx/
14 |
15 | # Clear npm cache and remove node_modules directories
16 | RUN npm cache clean --force
17 | RUN rm -rf ~/node_modules
18 |
19 | COPY package.json .
20 |
21 | RUN npm install pm2 -g
22 | RUN npm install --legacy-peer-deps
23 |
24 | COPY . .
25 |
26 | EXPOSE 3000
27 |
28 | CMD ["npm","start" ]
29 |
--------------------------------------------------------------------------------
/plugins/dog.js:
--------------------------------------------------------------------------------
1 | const {
2 | smd
3 | } = require('../lib')
4 | smd({
5 | cmdname: "dog",
6 | desc: "Send videos of randome dogs!",
7 | type: "misc",
8 | react: "🐩",
9 | filename: __filename,
10 | },
11 | async (m) => {
12 | try {
13 | const fetch = require("node-fetch");
14 | let res = await fetch('https://random.dog/woof.json')
15 | let json = await res.json()
16 | if (json.status) return await m.reply("*Request Denied!*")
17 | m.bot.sendFileUrl(m.jid, json.url, "", m, { author: "Asta-Md" }, "video");
18 |
19 | } catch (e) { m.error(`${e}\n\nCommand: dog`, e, false) }
20 | })
--------------------------------------------------------------------------------
/Jinhuyk-MD/sample-config.env:
--------------------------------------------------------------------------------
1 | OWNER_NUMBER="242067274660"
2 | MONGODB_URI=mongodb+srv://rahul:rahul@cluster0.ik98tiw.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0"
3 | SESSION_ID = "ID-here"
4 | THUMB_IMAGE = "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg"
5 | port = 5000
6 | email = "chanjinhuyk@gmail.com"
7 | global_url = "sasaki.242"
8 | OWNER_NAME = "ChanJinhuyk"
9 | READ_MESSAGE = false
10 | PREFIX = .
11 | WARN_COUNT = 3
12 | DISABLE_PM = false
13 | ANTI_BAD_WORD = "fuck"
14 | LEVEL_UP_MESSAGE= true
15 | WELCOME_MESSAGE = "*Hi,* @user \n*Welcome in* @gname \n*Member count* : @count th"
16 | THEME= JINHUYK-MD-V1
17 | WORKTYPE = public
18 | PACK_NAME = "JINHUYK-MD-V1"
19 | ANTILINK_VALUES = "chat.whatsapp.com"
20 |
--------------------------------------------------------------------------------
/lib/database/user.js:
--------------------------------------------------------------------------------
1 | let options = {
2 | rank: Object,
3 | default: {}
4 | };
5 | const mongoose = require("mongoose");
6 | const UserSchema = new mongoose.Schema({
7 | id: {
8 | type: String,
9 | required: true,
10 | unique: true
11 | },
12 | name: {
13 | type: String
14 | },
15 | permit: {
16 | type: String,
17 | default: "false"
18 | },
19 | times: {
20 | type: Number,
21 | default: 0
22 | },
23 | ban: {
24 | type: String,
25 | default: "false"
26 | },
27 | warn: {
28 | type: Object,
29 | default: {}
30 | },
31 | ...options
32 | });
33 | const sck1 = mongoose.model("Sck1", UserSchema);
34 | module.exports = {
35 | sck1: sck1
36 | };
--------------------------------------------------------------------------------
/plugins/teddy.js:
--------------------------------------------------------------------------------
1 | const {
2 | smd,
3 | sleep
4 | } = require('../lib'),teddyM = {"smd" : "asta" }
5 |
6 | smd({
7 | cmdname: "teddy",
8 | type: "fun",
9 | info: "cute teddy",
10 | on: "text" ,
11 | filename: __filename,
12 | react: "🤪",
13 | },async(citel,match , {smd}) => {
14 | let isteddy = smd ==="teddy"?true : citel.isPublic && match.toLowerCase().includes("teddy") ? true : ""
15 | if (isteddy && !teddyM[citel.id]) {
16 | teddyM[citel.id] =true;
17 | let teddy = ['❤', '💕', '😻', '🧡', '💛', '💚', '💙', '💜', '🖤', '❣', '💞', '💓', '💗', '💖', '💘', '💝', '💟', '♥', '💌', '🙂', '🤗', '😌', '😉', '🤗', '😊', '🎊', '🎉', '🎁', '🎈']
18 | const { key } = await citel.reply( `(\\_/)\n( •.•)\n/>🤍`)
19 | for (let i = 0; i < teddy.length; i++) {
20 | await sleep(500);
21 | await citel.reply(`(\\_/)\n( •.•)\n/>${teddy[i]}`, { edit: key })
22 | }
23 | }
24 |
25 | })
26 |
--------------------------------------------------------------------------------
/koyeb.yaml:
--------------------------------------------------------------------------------
1 | name: Jinhuyk MD
2 | type: WEB
3 |
4 | routes:
5 | - port: 8000
6 | path: /
7 |
8 | ports:
9 | - port: 8000
10 | protocol: http
11 |
12 | env:
13 | SESSION_ID:
14 | SUDO: 242067274660
15 | MODE: public
16 | AUTO_READ_STATUS: true
17 | WAPRESENCE: available
18 | OWNER_NUMBER: 242067274660
19 |
20 | regions:
21 | - fra
22 |
23 | scalings:
24 | - min: 1
25 | max: 1
26 |
27 | instance_types:
28 | - type: free
29 |
30 | health_checks:
31 | - grace_period: 5
32 | interval: 30
33 | restart_limit: 3
34 | timeout: 5
35 | tcp:
36 | port: 8000
37 |
38 | volumes: []
39 |
40 | skip_cache: false
41 |
42 | git:
43 | repository: https://github.com/KangJinhuyk/JINHUYK-MD
44 | branch: main
45 | sha: aea4483e729d011f0c2671cb8ed51f61986eb203
46 | no_deploy_on_push: false
47 | docker:
48 | dockerfile: ""
49 | entrypoint: []
50 | command: ""
51 | args: []
52 | target: ""
53 | privileged: false
54 |
55 |
56 |
--------------------------------------------------------------------------------
/render.yaml:
--------------------------------------------------------------------------------
1 | services:
2 | - type: web
3 | name: hermit-md
4 | repo: https://github.com/A-d-i-t-h-y-a-n/hermit-md.git
5 | branch: main
6 | env: docker
7 | dockerfilePath: Dockerfile
8 | startCommand: npm start
9 | plan: free
10 | autoDeploy: true
11 | envVars:
12 | - key: RENDER_NAME
13 | sync: false
14 | required: true
15 | - key: RENDER_API
16 | sync: false
17 | required: true
18 | - key: SESSION_ID
19 | sync: false
20 | required: true
21 | - key: DATABASE_URL
22 | sync: false
23 | required: true
24 | - key: PREFIX
25 | sync: false
26 | - key: SUDO
27 | sync: false
28 | - key: MODE
29 | value: "private"
30 | - key: LOG_MSG
31 | value: "false"
32 | - key: AUTO_STATUS_VIEW
33 | value: "false"
34 | - key: READ_MSG
35 | value: "false"
36 | - key: ALWAYS_ONLINE
37 | value: "false"
38 | - key: START_MSG
39 | value: "true"
40 | - key: PORT
41 | value: "3000"
42 |
--------------------------------------------------------------------------------
/plugins/hack.js:
--------------------------------------------------------------------------------
1 | const { smd, sleep } = require('../lib');
2 |
3 | smd({ cmdname: "hack", type: "fun", info: "hacking prank", filename: __filename }, async (citel) => {
4 | const messages = [
5 | "Injecting Malware",
6 | " █ 10%",
7 | " █ █ 20%",
8 | " █ █ █ 30%",
9 | " █ █ █ █ 40%",
10 | " █ █ █ █ █ 50%",
11 | " █ █ █ █ █ █ 60%",
12 | " █ █ █ █ █ █ █ 70%",
13 | " █ █ █ █ █ █ █ █ 80%",
14 | " █ █ █ █ █ █ █ █ █ 90%",
15 | " █ █ █ █ █ █ █ █ █ █ 100%",
16 | "System hyjacking on process.. \\n Conecting to Server error to find 404 ",
17 | "Device successfully connected... \\n Riciving data...",
18 | "Data hyjacked from divice 100% completed \\n killing all evidence killing all malwares...",
19 | " HACKING COMPLETED ",
20 | " SENDING LOG DOCUMENTS...",
21 | " SUCCESSFULLY SENT DATA AND Connection disconnected",
22 | "BACKLOGS CLEARED"
23 | ];
24 |
25 | let editedMessage;
26 | for (const message of messages) {
27 | editedMessage = await citel.send(editedMessage || message);
28 | await sleep(1000);
29 | editedMessage = await citel.edit(editedMessage, message);
30 | }
31 | });
--------------------------------------------------------------------------------
/lib/plugins.js:
--------------------------------------------------------------------------------
1 | var commands = [];
2 | function cmd(_0x440d05, _0x57163d) {
3 | var _0x6094e7 = _0x440d05;
4 | _0x6094e7.function = _0x57163d;
5 | if (!_0x6094e7.pattern && _0x440d05.cmdname) {
6 | _0x6094e7.pattern = _0x440d05.cmdname;
7 | }
8 | if (!_0x6094e7.alias) {
9 | _0x6094e7.alias = [];
10 | }
11 | if (!_0x6094e7.dontAddCommandList) {
12 | _0x6094e7.dontAddCommandList = false;
13 | }
14 | if (!_0x6094e7.desc) {
15 | _0x6094e7.desc = _0x440d05.info ? _0x440d05.info : "";
16 | }
17 | if (!_0x6094e7.fromMe) {
18 | _0x6094e7.fromMe = false;
19 | }
20 | if (!_0x6094e7.category) {
21 | _0x6094e7.category = _0x440d05.type ? _0x440d05.type : "misc";
22 | }
23 | _0x6094e7.info = _0x6094e7.desc;
24 | _0x6094e7.type = _0x6094e7.category;
25 | if (!_0x6094e7.use) {
26 | _0x6094e7.use = "";
27 | }
28 | if (!_0x6094e7.filename) {
29 | _0x6094e7.filename = "Not Provided";
30 | }
31 | commands.push(_0x6094e7);
32 | return _0x6094e7;
33 | }
34 | const Module = {
35 | export: cmd
36 | };
37 | module.exports = {
38 | cmd: cmd,
39 | amd: cmd,
40 | AddCommand: cmd,
41 | Function: cmd,
42 | Module: Module,
43 | smd: cmd,
44 | commands: commands,
45 | bot: cmd
46 | };
--------------------------------------------------------------------------------
/plugins/fakereply.js:
--------------------------------------------------------------------------------
1 | const {
2 | smd,
3 | prefix,
4 | } = require('../lib')
5 |
6 | smd({
7 | cmdname: "fakereply",
8 | alias :['freply'],
9 | desc: "Create fake Reply by given texts!",
10 | type: "general",
11 | use:" msg| reply_text | number ",
12 | usage:"generates fake messages of given text and number!",
13 | filename: __filename,
14 | public : true,
15 | },
16 | async (m,text) => {
17 | try {
18 | let types = ["text","order","contact","image" , "video"]
19 | let args = text.split("|")
20 | if(!text || args.length < 3) return await m.reply(`*Use ${prefix}fakereply text |Reply_text|2348039607375|type(text,order,contact,image,video)*`)
21 | let reply = args[0],msg = args[1],num = `${args[2].replace(/[^0-9]/g, '')}@s.whatsapp.net` , type = args[3] && types.includes(args[3])? args[3] :"text", charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',smds = 'SMD';
22 | for (let i = 0; i < 13; i++) { smds += charset[Math.floor(Math.random() * charset.length)]; }
23 | let fak =await m.bot.fakeMessage(type,{id: smds,remoteJid:m.isGroup? m.chat : num,participant:num},msg)
24 | try{ if(type === "contact") {fak.message.contactMessage.jpegThumbnail = await m.getpp(num) }}catch(e){console.log(e)}
25 | await m.bot.sendMessage(m.chat,{text : reply}, { quoted : fak})
26 | } catch (e) {
27 | m.error(`${e}\n\nCommand: fakereply`, e, false);
28 | }
29 | });
--------------------------------------------------------------------------------
/plugins/live.js:
--------------------------------------------------------------------------------
1 | const { smd, Config } = require('../lib')
2 |
3 |
4 |
5 |
6 | //---------------------------------------------------------------------------
7 | smd({
8 | pattern: "live",
9 | desc: "Show Live Time Of Cameroon",
10 | category: "fun",
11 | filename: __filename,
12 | use: '',
13 | },
14 | async(message) => {
15 | try{
16 | var time = `${message.time}`.replace("am",'ᴀᴍ').replace("pm",'ᴘᴍ')
17 | var date = message.date
18 | const [hours, minutes, seconds, ampm] = `${message.time}`.split(/:| /);
19 | const hrs = parseInt(hours, 10);
20 |
21 | var wish = 'ɢᴏᴏᴅ ɴɪɢʜᴛ 🌙';
22 | if(ampm == "am"){
23 | if ( hrs >= 0 && hrs < 5) wish = 'ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ, ᴇᴀʀʟʏ ʙɪʀᴅ! 🌄';
24 | else if (hrs >= 5 && hrs < 12) wish = 'ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ ⛅';
25 | }else {
26 | if (hrs >= 0 && hrs < 5) wish = 'ɢᴏᴏᴅ ᴀғᴛᴇʀɴᴏᴏɴ 🌞';
27 | else if (hrs >= 5 && hrs < 8) wish = 'ɢᴏᴏᴅ ᴇᴠᴇɴɪɴɢ 🌥';
28 | else wish = 'ɢᴏᴏᴅ ɴɪɢʜᴛ 🌙';
29 | }
30 | const q =await message.bot.fakeMessage("order")
31 | let contextInfo = {...(await message.bot.contextInfo() )}
32 | let timenow =`
33 | ╭────────────────╮
34 | │ *${wish}*
35 | │ *ᴛɪᴍᴇ* ⌚ ${time}
36 | │ *Date* 🎲 ${date}
37 | │ ${Config.caption}
38 | ╰────────────────╯
39 | `
40 | await message.send(timenow, {contextInfo : contextInfo },"asta", q )
41 | }catch(e){ await message.error(`${e}\n\ncommand: live`,e,false)}
42 |
43 | })
--------------------------------------------------------------------------------
/plugins/stickersearch.js:
--------------------------------------------------------------------------------
1 | const {
2 | smd,
3 | tlang,
4 | prefix,
5 | Config,
6 | sleep,
7 | astroJson,
8 | smdBuffer
9 | } = require("../lib");
10 | const axios = require("axios");
11 | smd({
12 | cmdname: "stickersearch",
13 | alias: ["sticsearch"],
14 | category: "search",
15 | use: "[text]",
16 | info: "Searches Stickers"
17 | }, async (_0x4cc234, _0xa151c7) => {
18 | try {
19 | const {
20 | generateSticker: _0x5a889c
21 | } = require("../lib");
22 | if (!_0xa151c7) {
23 | return _0x4cc234.reply("Sorry you did not give any search term!");
24 | }
25 | const _0x1f4c84 = await axios.get("https://g.tenor.com/v1/search?q=" + _0xa151c7 + "&key=LIVDSRZULELA&limit=8").catch(() => {});
26 | if (!_0x1f4c84.data || !_0x1f4c84.data.results || !_0x1f4c84.data.results[0]) {
27 | return _0x4cc234.reply("*Could not find!*");
28 | }
29 | let _0x43fcbc = _0x1f4c84.data.results.length > 5 ? 5 : _0x1f4c84.data.results.length;
30 | for (let _0x48da09 = 0; _0x48da09 < _0x43fcbc; _0x48da09++) {
31 | let _0x2a4632 = await smdBuffer(_0x1f4c84.data.results?.[_0x48da09]?.media[0]?.mp4?.url);
32 | let _0x1c1454 = {
33 | pack: Config.packname,
34 | author: Config.author,
35 | type: "full",
36 | quality: 1
37 | };
38 | if (_0x2a4632) {
39 | _0x5a889c(_0x4cc234, _0x2a4632, _0x1c1454);
40 | }
41 | }
42 | } catch (_0x3f900e) {
43 | _0x4cc234.error(_0x3f900e + "\n\nCommand: stickersearch", _0x3f900e, "*Could not find*");
44 | }
45 | });
--------------------------------------------------------------------------------
/plugins/_new.js:
--------------------------------------------------------------------------------
1 | let {
2 | runtime,
3 | formatp,
4 | prefix,
5 | smd,
6 | smdBuffer,
7 | } = require("../lib");
8 | const axios = require("axios");
9 | const fetch = require("node-fetch");
10 | const os = require("os");
11 | const speed = require("performance-now");
12 | const Config = require("../config");
13 | const cheerio = require("cheerio");
14 | smd(
15 | {
16 | pattern: "channel",
17 | desc: "Dev Channel",
18 | react: "⛓️",
19 | category: "user",
20 | filename: __filename,
21 | },
22 | async (message) => {
23 | const channelMessage = `꧁ JINHUYK-MD SUPPORT ࿇꧂└ 𝘾𝙃𝘼𝙉𝙉𝙀𝙇 𝙎𝙐𝙋𝙋𝙊𝙍𝙏\n\n _ʜᴇʏ ʜᴇʀᴇ's ᴏᴜʀ ᴄʜᴀɴɴᴇʟ ʟɪɴᴋ, ᴘʟᴇᴀsᴇ ғᴏʟʟᴏᴡ ᴀɴᴅ sᴜᴘᴘᴏʀᴛ ᴜs ᴛᴏ ᴋᴇᴇᴘ ᴛʜɪs ᴘʀᴏᴊᴇᴄᴛ ᴀʟɪᴠᴇ_\n *ʟɪɴᴋ:* https://whatsapp.com/channel/0029Vajrhmz96H4IsEjh4a41\n\n ${Config.botname} *©kang jinhuyk*`;
24 |
25 | const contextInfo = {
26 | forwardingScore: 999,
27 | isForwarded: true,
28 | };
29 |
30 | await message.send(channelMessage, { contextInfo });
31 | }
32 | );
33 | smd(
34 | {
35 | pattern: "support",
36 | desc: "Dev Support",
37 | react: "⛓️",
38 | category: "user",
39 | filename: __filename,
40 | },
41 | async (message) => {
42 | const SupportMsg = `꧁ JINHUYK-MD SUPPORT ࿇꧂ 𝙎𝙐𝙋𝙋𝙊𝙍𝙏 FOR ALL YOUR CONCERNS, JOIN WHATSAPP SUPPORT TO FIND SOLUTIONS! \n\n *WHATSAPP SUPPORT :* https://chat.whatsapp.com/GNsD6DEfgN2BKaN3qmJYCe\n\n ${Config.botname} *©️Kang jinhuyk*`;
43 |
44 | const contextInfo = {
45 | forwardingScore: 999,
46 | isForwarded: true,
47 | };
48 |
49 | await message.send(SupportMsg, { contextInfo });
50 | }
51 | );
52 |
--------------------------------------------------------------------------------
/plugins/getall.js:
--------------------------------------------------------------------------------
1 | const {
2 | smd,
3 | tlang,
4 | prefix,
5 | } = require('../lib')
6 | smd({
7 | cmdname: "getall",
8 | desc: "get jid of all members of groups/pm chats/all groups.",
9 | type: "owner",
10 | fromMe:true,
11 | use:"[ members / user / groups ]",
12 | usage:"get jids of groups,personal chats, also members of group, so that used them for forward cmd!",
13 | filename: __filename,
14 | public : false,
15 | },
16 | async (citel, text, { store }) => {
17 | try{
18 | let str = "";
19 | let cd = text.split(" ")[0]
20 | if(cd === "members" || cd === "member") {
21 | if (!citel.isGroup) return citel.reply(tlang("group"));
22 | const participants = citel.metadata.participants || {};
23 | for (let i of participants) { str += `📍 ${i.id}\n`; }
24 | str ? citel.reply(`*「 LIST OF GROUP MEMBER'S JID 」*\n\n` +str) : citel.reply("*Request Denied!*")
25 | }else if(cd == "user" || cd == "pm" || cd == "pc"){
26 | let anu = await store.chats.all().filter(v => v.id.endsWith('.net')).map(v => v)
27 | for (let i of anu) { str += `📍 ${i.id}\n` }
28 | str ? citel.reply(`*「 LIST OF PERSONAL CHAT JIDS 」*\n\nTotal ${anu.length} users are text in personal chat.\n\n` + str) : citel.reply("*Request Denied!*")
29 | }else if(cd == "group" || cd == "groups" || cd == "gc"){
30 | n = await citel.bot.groupFetchAllParticipating();
31 | const c=Object.entries(n).slice(0).map(t=>t[1]);
32 | for(var i of c.map(t=>t.id)){ str += `📍 ${i}\n`; }
33 | str ? citel.reply(`*「 LIST OF GROUP CHAT JIDS」*\n\n` + str) : citel.reply("*Request Denied!*")
34 | }else return await citel.reply(`*Use ${prefix}getall pc| gc| member!*`)
35 | }catch(e){ citel.error(`${e}\n\nCommand getall`,e)}
36 | });
--------------------------------------------------------------------------------
/plugins/pubg.js:
--------------------------------------------------------------------------------
1 | let { smd, textToLogoGenerator, prefix } = require(lib_dir);
2 | let pubg = {
3 | type: "pubg",
4 | info: "create pubg text logo.",
5 | filename: __filename,
6 | };
7 | let singleText = async (message, match, { cmdName }) => {
8 | try {
9 | let logo = {
10 | pubg1:
11 | "tao-cover-game-pubg-anh-bia-game-playerunknown-s-battlegrounds-401",
12 | pubg2: "tao-anh-bia-cover-facebook-game-pubg-407",
13 | pubg3: "tao-logo-pubg-truc-tuyen-mien-phi-714",
14 | pubg4: "tao-logo-mascot-pubg-online-sieu-ngau-716",
15 | pubg5: "tao-logo-pubg-truc-tuyen-nhieu-mau-sac-717",
16 | pubg6: "tao-logo-pubg-phong-cach-chibi-online-721",
17 | };
18 | if (!match) return message.reply(`*_Example : ${prefix + cmdName} Astro_*`);
19 | return await textToLogoGenerator(
20 | message,
21 | logo[cmdName],
22 | match,
23 | "asta",
24 | "1"
25 | );
26 | } catch (e) {
27 | return await message.error(`${e}\n\ncmdName: ${cmdName}`, e);
28 | }
29 | };
30 | //----------------------------------------------------------------------------------
31 | for (cmd of ["pubg1", "pubg2", "pubg3", "pubg4", "pubg5", "pubg6"]) {
32 | smd({ cmdname: cmd, ...pubg }, singleText);
33 | }
34 | smd({ cmdname: "pubg7", ...pubg }, async (message, match, { cmdName }) => {
35 | try {
36 | let text1 = match ? match.split(";")[0] : "";
37 | let text2 = match ? match.split(";")[1] : "";
38 | if (!text2 || !text1)
39 | return await message.reply(
40 | `*_Example : ${prefix + cmdName} text1;text2_*`
41 | );
42 | return await textToLogoGenerator(
43 | message,
44 | "tao-logo-pubg-truc-tuyen-phong-cach-den-trang-715",
45 | text1,
46 | text2,
47 | "1"
48 | );
49 | } catch (e) {
50 | return await message.error(`${e}\n\ncmdName: ${cmdName}`, e);
51 | }
52 | });
53 |
--------------------------------------------------------------------------------
/lib/database/group.js:
--------------------------------------------------------------------------------
1 | let options = {
2 | disables: {
3 | type: Array,
4 | default: []
5 | }
6 | };
7 | const mongoose = require("mongoose");
8 | const GroupSchema = new mongoose.Schema({
9 | id: {
10 | type: String,
11 | unique: true,
12 | required: true
13 | },
14 | events: {
15 | type: String,
16 | default: "false"
17 | },
18 | nsfw: {
19 | type: String,
20 | default: "false"
21 | },
22 | pdm: {
23 | type: String,
24 | default: "false"
25 | },
26 | antipromote: {
27 | type: String,
28 | default: "true"
29 | },
30 | antidemote: {
31 | type: String,
32 | default: "true"
33 | },
34 | goodbye: {
35 | type: String,
36 | default: global.gdbye
37 | },
38 | welcome: {
39 | type: String,
40 | default: global.wlcm
41 | },
42 | welcometext: {
43 | type: String,
44 | default: "*@user @pp welcome to @gname"
45 | },
46 | goodbyetext: {
47 | type: String,
48 | default: "*@user @pp left @gname"
49 | },
50 | botenable: {
51 | type: String,
52 | default: "true"
53 | },
54 | antilink: {
55 | type: String,
56 | default: "true"
57 | },
58 | antiword: {
59 | type: Object,
60 | default: {}
61 | },
62 | antifake: {
63 | type: String,
64 | default: "false"
65 | },
66 | antispam: {
67 | type: String,
68 | default: "false"
69 | },
70 | antibot: {
71 | type: String,
72 | default: "false"
73 | },
74 | antitag: {
75 | type: String,
76 | default: "true"
77 | },
78 | onlyadmin: {
79 | type: String,
80 | default: "false"
81 | },
82 | economy: {
83 | type: String,
84 | default: "false"
85 | },
86 | disablecmds: {
87 | type: String,
88 | default: "false"
89 | },
90 | chatbot: {
91 | type: String,
92 | default: "true"
93 | },
94 | mute: {
95 | type: String,
96 | default: "false"
97 | },
98 | unmute: {
99 | type: String,
100 | default: "false"
101 | },
102 | ...options
103 | });
104 | const sck = mongoose.model("Sck", GroupSchema);
105 | module.exports = {
106 | sck: sck
107 | };
--------------------------------------------------------------------------------
/Jinhuyk-MD/deploy-on-vps.md:
--------------------------------------------------------------------------------
1 | ## Deploy on VPS or PC.
2 | - You need to Install git,ffmpeg,curl,nodejs,yarn with pm2
3 | 1. Install git ffmpeg curl
4 | ```
5 | sudo apt -y update && sudo apt -y upgrade
6 | sudo apt -y install git ffmpeg curl
7 | ```
8 | 2. Install nodejs
9 | ```
10 | sudo apt -y remove nodejs
11 | curl -fsSl https://deb.nodesource.com/setup_lts.x | sudo bash - && sudo apt -y install nodejs
12 | ```
13 |
14 | 3. Install yarn
15 | ```
16 | curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
17 | echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
18 | sudo apt -y update && sudo apt -y install yarn
19 | ```
20 |
21 | 4. Install pm2
22 | ```
23 | sudo yarn global add pm2
24 | ```
25 |
26 | 5. Clone Repo and install required packages
27 | ```
28 | git clone https://github.com/ChanJinhuyk/JINHUYK-MD-V1
29 | cd JINHUYK-MD-V1 npm cd
30 | yarn install --network-concurrency 1
31 | ```
32 |
33 | 6. Create an env file for ENV.
34 | ```
35 | touch config.env
36 | nano config.env
37 | ```
38 | copy paste lines below.
39 |
40 | ```
41 | OWNER_NUMBER="242067274660"
42 | MONGODB_URI=mongodb+srv://rahul:rahul@cluster0.ik98tiw.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0"
43 | SESSION_ID = "ID-here"
44 | THUMB_IMAGE = "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg"
45 | port = 5000
46 | email = "chanjinhuyk@gmail.com"
47 | global_url = "sasaki.242"
48 | OWNER_NAME = "Emmanuel sasaki"
49 | READ_MESSAGE = false
50 | PREFIX = .
51 | WARN_COUNT = 3
52 | DISABLE_PM = false
53 | ANTI_BAD_WORD = "fuck"
54 | LEVEL_UP_MESSAGE= true
55 | WELCOME_MESSAGE = "*Hi,* @user \n*Welcome in* @gname \n*Member count* : @count th"
56 | THEME= JINHUYK-MD-V1
57 | WORKTYPE = public
58 | PACK_NAME = "JINHUYK-MD-V1"
59 | ANTILINK_VALUES = "chat.whatsapp.com"
60 |
61 | ```
62 | ctrl + o and ctrl + x, To save and exit
63 |
64 | 7. start and stop bot
65 |
66 | To start bot ``` npm start ```,
67 | To stop bot ``` npm stop ```
68 |
--------------------------------------------------------------------------------
/lib/database/alive.js:
--------------------------------------------------------------------------------
1 | let options = {
2 | temp: {
3 | type: Object,
4 | default: {}
5 | },
6 | rent: {
7 | type: Object,
8 | default: {}
9 | }
10 | };
11 | const mongoose = require("mongoose");
12 | const Alive = new mongoose.Schema({
13 | id: {
14 | type: String,
15 | unique: true,
16 | required: true,
17 | default: "Kerm_Md-v2"
18 | },
19 | alive_text: {
20 | type: String,
21 | default: "*Im online Master *"
22 | },
23 | alive_get: {
24 | type: String,
25 | default: "you did'nt set alive message yet\nType [.alive info] to get alive message information"
26 | },
27 | alive_url: {
28 | type: String,
29 | default: ""
30 | },
31 | alive_image: {
32 | type: Boolean,
33 | default: false
34 | },
35 | alive_video: {
36 | type: Boolean,
37 | default: false
38 | },
39 | antiviewonce: {
40 | type: String,
41 | default: "false"
42 | },
43 | antidelete: {
44 | type: String,
45 | default: "false"
46 | },
47 | autobio: {
48 | type: String,
49 | default: "false"
50 | },
51 | levelup: {
52 | type: String,
53 | default: "true"
54 | },
55 | anticall: {
56 | type: String,
57 | default: "false"
58 | },
59 | autoreaction: {
60 | type: String,
61 | default: "true"
62 | },
63 | permit: {
64 | type: Boolean,
65 | default: false
66 | },
67 | permit_values: {
68 | type: String,
69 | default: "all"
70 | },
71 | chatbot: {
72 | type: String,
73 | default: "false"
74 | },
75 | bgm: {
76 | type: Boolean,
77 | default: false
78 | },
79 | bgmarray: {
80 | type: Object,
81 | default: {}
82 | },
83 | plugins: {
84 | type: Object,
85 | default: {}
86 | },
87 | notes: {
88 | type: Object,
89 | default: {}
90 | },
91 | mention: {
92 | type: Object,
93 | default: {}
94 | },
95 | filter: {
96 | type: Object,
97 | default: {
98 | asta_: "yes master?"
99 | }
100 | },
101 | afk: {
102 | type: Object,
103 | default: {}
104 | },
105 | ...options
106 | });
107 | const alive = mongoose.model("alive", Alive);
108 | module.exports = {
109 | alive: alive
110 | };
111 |
--------------------------------------------------------------------------------
/lib/ttt.js:
--------------------------------------------------------------------------------
1 | class TicTacToe {
2 | constructor(playerX = "x", playerO = "o") {
3 | this.playerX = playerX;
4 | this.playerO = playerO;
5 | this._currentTurn = false;
6 | this._x = 0;
7 | this._o = 0;
8 | this.turns = 0;
9 | }
10 |
11 |
12 |
13 |
14 | get board() { return this._x | this._o; }
15 | get currentTurn() {return this._currentTurn ? this.playerO : this.playerX;}
16 |
17 | get enemyTurn() { return this._currentTurn ? this.playerX : this.playerO; }
18 |
19 | static check(state) {
20 | for (let combo of [7, 56, 73, 84, 146, 273, 292, 448])
21 | if ((state & combo) === combo) return !0;
22 | return !1;
23 | }
24 |
25 | /**
26 | * ```js
27 | * TicTacToe.toBinary(1, 2) // 0b010000000
28 | * ```
29 | */
30 | static toBinary(x = 0, y = 0) {
31 | if (x < 0 || x > 2 || y < 0 || y > 2) throw new Error("invalid position");
32 | return 1 << (x + 3 * y);
33 | }
34 |
35 | /**
36 | * @param player `0` is `X`, `1` is `O`
37 | *
38 | * - `-3` `Game Ended `
39 | * - `-2` `Invalid`
40 | * - `-1` `Invalid Position`
41 | * - ` 0` `Position Occupied`
42 | * - ` 1` `Sucess`
43 | * @returns {-3|-2|-1|0|1}
44 | */
45 | turn(player = 0, x = 0, y) {
46 | if (this.board === 511) return -3;
47 | let pos = 0;
48 | if (y == null) {
49 | if (x < 0 || x > 8) return -1;
50 | pos = 1 << x;
51 | } else {
52 | if (x < 0 || x > 2 || y < 0 || y > 2) return -1;
53 | pos = TicTacToe.toBinary(x, y);
54 | }
55 | if (this._currentTurn ^ player) return -2;
56 | if (this.board & pos) return 0;
57 | this[this._currentTurn ? "_o" : "_x"] |= pos;
58 | this._currentTurn = !this._currentTurn;
59 | this.turns++;
60 | return 1;
61 | }
62 |
63 | /**
64 | * @returns {('X'|'O'|1|2|3|4|5|6|7|8|9)[]}
65 | */
66 | static render(boardX = 0, boardO = 0) {
67 | let x = parseInt(boardX.toString(2), 4);
68 | let y = parseInt(boardO.toString(2), 4) * 2;
69 | return [...(x + y).toString(4).padStart(9, "0")]
70 | .reverse()
71 | .map((value, index) => (value == 1 ? "X" : value == 2 ? "O" : ++index));
72 | }
73 |
74 | /**
75 | * @returns {('X'|'O'|1|2|3|4|5|6|7|8|9)[]}
76 | */
77 | render() {
78 | return TicTacToe.render(this._x, this._o);
79 | }
80 |
81 | get winner() {
82 | let x = TicTacToe.check(this._x);
83 | let o = TicTacToe.check(this._o);
84 | return x ? this.playerX : o ? this.playerO : false;
85 | }
86 | }
87 |
88 | new TicTacToe().turn;
89 |
90 | module.exports = TicTacToe;
91 |
--------------------------------------------------------------------------------
/plugins/gifsearch.js:
--------------------------------------------------------------------------------
1 | const _0xbf7967=_0x126c;function _0x126c(_0x1b0bbd,_0x5206f2){const _0x46988e=_0x4698();return _0x126c=function(_0x126ccc,_0x2a06c8){_0x126ccc=_0x126ccc-0x1ca;let _0x5d86d3=_0x46988e[_0x126ccc];return _0x5d86d3;},_0x126c(_0x1b0bbd,_0x5206f2);}(function(_0x150362,_0x54add6){const _0x1cef6b=_0x126c,_0x125750=_0x150362();while(!![]){try{const _0x43ccbe=-parseInt(_0x1cef6b(0x1db))/0x1*(parseInt(_0x1cef6b(0x1e1))/0x2)+parseInt(_0x1cef6b(0x1dc))/0x3+-parseInt(_0x1cef6b(0x1d4))/0x4*(-parseInt(_0x1cef6b(0x1df))/0x5)+parseInt(_0x1cef6b(0x1cf))/0x6+-parseInt(_0x1cef6b(0x1d6))/0x7*(-parseInt(_0x1cef6b(0x1d5))/0x8)+parseInt(_0x1cef6b(0x1de))/0x9*(parseInt(_0x1cef6b(0x1dd))/0xa)+-parseInt(_0x1cef6b(0x1cb))/0xb;if(_0x43ccbe===_0x54add6)break;else _0x125750['push'](_0x125750['shift']());}catch(_0x4fe958){_0x125750['push'](_0x125750['shift']());}}}(_0x4698,0x33efc));const {smd,tlang,prefix,Config,sleep,getBuffer,astroJson,smdBuffer}=require(_0xbf7967(0x1e6));function _0x4698(){const _0x4ac599=['send','\x0a\x0aCommand:\x20gifsearch','search','https://g.tenor.com/v1/search?q=','../lib','results','axios','gifsearch','length','tenor','Searches\x20gif','5385391aTAiDa','*Could\x20not\x20find*','error','data','1116846FCEohL','&key=LIVDSRZULELA&limit=8','amdvid','catch','[text]','5932wjcFWc','152upjvow','7042kRhGRX','reply','Sorry\x20you\x20did\x20not\x20give\x20any\x20search\x20term!','caption','media','2xmFRaz','677679MAFnKf','2760mdBQlD','8010AIgsFn','1255OZaaEe','get','346708ygYSEE'];_0x4698=function(){return _0x4ac599;};return _0x4698();}smd({'cmdname':_0xbf7967(0x1e9),'alias':['gify',_0xbf7967(0x1eb)],'category':_0xbf7967(0x1e4),'use':_0xbf7967(0x1d3),'info':_0xbf7967(0x1ca)},async(_0x483f63,_0x5e7b36)=>{const _0x1007f9=_0xbf7967;try{if(!_0x5e7b36)return _0x483f63[_0x1007f9(0x1d7)](_0x1007f9(0x1d8));const _0x4da793=require(_0x1007f9(0x1e8)),_0x1abfb4=await _0x4da793[_0x1007f9(0x1e0)](_0x1007f9(0x1e5)+_0x5e7b36+_0x1007f9(0x1d0))[_0x1007f9(0x1d2)](()=>{});if(!_0x1abfb4[_0x1007f9(0x1ce)]||!_0x1abfb4['data'][_0x1007f9(0x1e7)]||!_0x1abfb4[_0x1007f9(0x1ce)][_0x1007f9(0x1e7)][0x0])return _0x483f63['reply'](_0x1007f9(0x1cc));let _0xf0dc5b=_0x1abfb4[_0x1007f9(0x1ce)][_0x1007f9(0x1e7)][_0x1007f9(0x1ea)]>0x5?0x5:_0x1abfb4[_0x1007f9(0x1ce)][_0x1007f9(0x1e7)][_0x1007f9(0x1ea)];for(let _0x344f87=0x0;_0x344f87<_0xf0dc5b;_0x344f87++){_0x483f63[_0x1007f9(0x1e2)](_0x1abfb4[_0x1007f9(0x1ce)][_0x1007f9(0x1e7)]?.[_0x344f87]?.[_0x1007f9(0x1da)][0x0]?.['mp4']?.['url'],{'caption':Config[_0x1007f9(0x1d9)],'gifPlayback':!![]},_0x1007f9(0x1d1),_0x483f63);}}catch(_0x3ae817){_0x483f63[_0x1007f9(0x1cd)](_0x3ae817+_0x1007f9(0x1e3),_0x3ae817,'*Could\x20not\x20find*');}});
2 |
--------------------------------------------------------------------------------
/plugins/_SySode.js:
--------------------------------------------------------------------------------
1 | const {
2 | exec
3 | } = require("child_process");
4 | const {
5 | plugins,
6 | smd,
7 | Config
8 | } = require("../lib");
9 | let s_ser = true;
10 | smd(
11 | {
12 | cmdname: "shutdown",
13 | info: "To restart bot",
14 | type: "tools",
15 | fromMe: s_ser,
16 | filename: __filename,
17 | },
18 | async (_0x514d3c) => {
19 | const { exec: _0x1912df } = require("child_process");
20 | _0x514d3c.reply("Shutting Down");
21 | _0x1912df("pm2 stop all");
22 | }
23 | );
24 | smd({
25 | cmdname: "restart",
26 | info: "To restart bot",
27 | type: "tools",
28 | fromMe: s_ser,
29 | filename: __filename
30 | }, async _0x514d3c => {
31 | const {
32 | exec: _0x1912df
33 | } = require("child_process");
34 | _0x514d3c.reply("Restarting");
35 | _0x1912df("pm2 restart all");
36 | });
37 | smd({
38 | cmdname: "plugins",
39 | alias: ["plugin"],
40 | type: "owner",
41 | info: "Shows list of all externally installed modules",
42 | fromMe: s_ser,
43 | filename: __filename,
44 | use: ""
45 | }, async (_0x2a10d6, _0x2420b0) => {
46 | try {
47 | let _0x4e5e2e = await plugins(_0x2a10d6, "plugins", _0x2420b0);
48 | return await _0x2a10d6.send(!_0x4e5e2e ? "*_There's no plugin install in " + Config.botname + "_*" : !_0x2420b0 ? "*All Installed Modules are:-*\n\n" + _0x4e5e2e : _0x4e5e2e);
49 | } catch (_0x21e335) {
50 | _0x2a10d6.error(_0x21e335 + " \n\ncmdName plugins\n");
51 | }
52 | });
53 | smd({
54 | pattern: "remove",
55 | alias: ["uninstall"],
56 | type: "owner",
57 | info: "removes external modules.",
58 | fromMe: s_ser,
59 | filename: __filename,
60 | use: ""
61 | }, async (_0x1510c9, _0x40e763) => {
62 | if (!_0x40e763) {
63 | return await _0x1510c9.reply("*_Uhh Please, Provide Me Plugin Name_*");
64 | }
65 | if (_0x40e763 === "alls") {
66 | return await _0x1510c9.reply(await plugins("remove", "all", __dirname));
67 | }
68 | try {
69 | await _0x1510c9.send(await plugins(_0x1510c9, "remove", _0x40e763, __dirname), {}, "", _0x1510c9);
70 | } catch {}
71 | });
72 | smd({
73 | cmdname: "install",
74 | type: "owner",
75 | info: "Installs external modules..",
76 | fromMe: s_ser,
77 | filename: __filename,
78 | use: ""
79 | }, async (_0xf71b5c, _0x2bdd09) => {
80 | let _0x2b0828 = _0x2bdd09 ? _0x2bdd09 : _0xf71b5c.quoted ? _0xf71b5c.quoted.text : "";
81 | if (!_0x2b0828.toLowerCase().includes("https")) {
82 | return await _0xf71b5c.send("*_Uhh Please, Provide Me Plugin Url_*");
83 | }
84 | await _0xf71b5c.reply(await plugins(_0xf71b5c, "install", _0x2b0828, __dirname));
85 | });
86 |
--------------------------------------------------------------------------------
/source/asta.json:
--------------------------------------------------------------------------------
1 | {
2 | "__JSON__": true,
3 | "AUTHOR": "ChanJinhuyk",
4 | "theme": "JINHUYK_MD-V1",
5 | "LANGUAGE": "English",
6 | "LANGCODE": "en",
7 | "STRINGS": {
8 | "updater": {
9 | "UPDATE": "Bot is up to date.",
10 | "UPDATED_LOCAL": "Updated Bot successfully"
11 | },
12 | "global": {
13 | "botName": "JINHUYK_MD-V1",
14 | "body": "Simple WhatsApp Bot",
15 | "greet2" : "GoodDay SIR",
16 | "pic1": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
17 | "pic2": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
18 | "pic3": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
19 | "pic4": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
20 | "pic5": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
21 | "pic6": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
22 | "pic7": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
23 | "greet" : "Hey there",
24 | "dotbody" : "Oh Sir ChanJinhuyk my creator.",
25 | "emojii" : "🍑",
26 | "promote": "Jinhuyk is an Admin",
27 | "pmallow": "Hello &user Do not Spam",
28 | "permited": "Hello Sir you Can Message Me Now.",
29 | "revoked" : "Hello sir your Permission was rejected.",
30 | "demote": "Admin Role Taken back",
31 | "antlink": "Link Detected.\n*I Have removed the violator*",
32 | "session": "\n keep your session id safe sir",
33 | "mention": "Tag my owner",
34 | "title": "JINHUYK_MD-V1",
35 | "footer": "JINHUYK_MD-V1",
36 | "by": "Made by ChanJinhuyk",
37 | "chat_desc": "Options Available* : 1. mute\n2. unmute\n3. archive\n4. unarchive\n5. read\n6. unread\n7. delete",
38 | "success": "Done ✓",
39 | "dot": "Hi, Did you mean *-help?*\n just.. don't bother me while I'm eating ramen",
40 | "couple_male": "*I'm pretty sure I can't live without being helped!*",
41 | "couple_female": "*I'm pretty sure I can't live without being helped!*",
42 | "admin": "Only Group Admin can use this Command.",
43 | "botAdmin": "Make me an Admin to take action.",
44 | "owner": "It's for my owner only.",
45 | "group": "It's for group only.",
46 | "private": "It for my Owner only.",
47 | "bot": "It is for my Owner Only.",
48 | "wait": "Processing..."
49 | },
50 | "error": {
51 | "text": "Dont touch me."
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/source/GOJO.json.txt:
--------------------------------------------------------------------------------
1 | {
2 | "__JSON__": true,
3 | "AUTHOR": "ChanJinhuyk",
4 | "theme": "JINHUYK_MD-V1",
5 | "LANGUAGE": "English",
6 | "LANGCODE": "en",
7 | "STRINGS": {
8 | "updater": {
9 | "UPDATE": "Bot is up to date.",
10 | "UPDATED_LOCAL": "Updated Bot successfully"
11 | },
12 | "global": {
13 | "botName": "JINHUYK_MD-V1",
14 | "body": "Simple WhatsApp Bot",
15 | "greet2" : "GoodDay SIR",
16 | "pic1": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
17 | "pic2": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
18 | "pic3": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
19 | "pic4": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
20 | "pic5": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
21 | "pic6": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
22 | "pic7": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
23 | "greet" : "Hey there",
24 | "dotbody" : "Oh Sir ChanJinhuyk my creator.",
25 | "emojii" : "🍑",
26 | "promote": "Jinhuyk is an Admin",
27 | "pmallow": "Hello &user Do not Spam",
28 | "permited": "Hello Sir you Can Message Me Now.",
29 | "revoked" : "Hello sir your Permission was rejected.",
30 | "demote": "Admin Role Taken back",
31 | "antlink": "Link Detected.\n*I Have removed the violator*",
32 | "session": "\n keep your session id safe sir",
33 | "mention": "Tag my owner",
34 | "title": "JINHUYK_MD-V1",
35 | "footer": "JINHUYK_MD-V1",
36 | "by": "Made by ChanJinhuyk",
37 | "chat_desc": "Options Available* : 1. mute\n2. unmute\n3. archive\n4. unarchive\n5. read\n6. unread\n7. delete",
38 | "success": "Done ✓",
39 | "dot": "Hi, Did you mean *-help?*\n just.. don't bother me while I'm eating ramen",
40 | "couple_male": "*I'm pretty sure I can't live without being helped!*",
41 | "couple_female": "*I'm pretty sure I can't live without being helped!*",
42 | "admin": "Only Group Admin can use this Command.",
43 | "botAdmin": "Make me an Admin to take action.",
44 | "owner": "It's for my owner only.",
45 | "group": "It's for group only.",
46 | "private": "It for my Owner only.",
47 | "bot": "It is for my Owner Only.",
48 | "wait": "Processing..."
49 | },
50 | "error": {
51 | "text": "Dont touch me."
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/source/whatsapp.json:
--------------------------------------------------------------------------------
1 | {
2 | "__JSON__": true,
3 | "AUTHOR": "ChanJinhuyk",
4 | "theme": "JINHUYK_MD-V1",
5 | "LANGUAGE": "English",
6 | "LANGCODE": "en",
7 | "STRINGS": {
8 | "updater": {
9 | "UPDATE": "Bot is up to date.",
10 | "UPDATED_LOCAL": "Updated Bot successfully"
11 | },
12 | "global": {
13 | "botName": "JINHUYK_MD-V1",
14 | "body": "Simple WhatsApp Bot",
15 | "greet2" : "GoodDay SIR",
16 | "pic1": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
17 | "pic2": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
18 | "pic3": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
19 | "pic4": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
20 | "pic5": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
21 | "pic6": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
22 | "pic7": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
23 | "greet" : "Hey there",
24 | "dotbody" : "Oh Sir ChanJinhuyk my creator.",
25 | "emojii" : "🍑",
26 | "promote": "Jinhuyk is an Admin",
27 | "pmallow": "Hello &user Do not Spam",
28 | "permited": "Hello Sir you Can Message Me Now.",
29 | "revoked" : "Hello sir your Permission was rejected.",
30 | "demote": "Admin Role Taken back",
31 | "antlink": "Link Detected.\n*I Have removed the violator*",
32 | "session": "\n keep your session id safe sir",
33 | "mention": "Tag my owner",
34 | "title": "JINHUYK_MD-V1",
35 | "footer": "JINHUYK_MD-V1",
36 | "by": "Made by ChanJinhuyk",
37 | "chat_desc": "Options Available* : 1. mute\n2. unmute\n3. archive\n4. unarchive\n5. read\n6. unread\n7. delete",
38 | "success": "Done ✓",
39 | "dot": "Hi, Did you mean *-help?*\n just.. don't bother me while I'm eating ramen",
40 | "couple_male": "*I'm pretty sure I can't live without being helped!*",
41 | "couple_female": "*I'm pretty sure I can't live without being helped!*",
42 | "admin": "Only Group Admin can use this Command.",
43 | "botAdmin": "Make me an Admin to take action.",
44 | "owner": "It's for my owner only.",
45 | "group": "It's for group only.",
46 | "private": "It for my Owner only.",
47 | "bot": "It is for my Owner Only.",
48 | "wait": "Processing..."
49 | },
50 | "error": {
51 | "text": "Dont touch me."
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/source/JINHUYK.json.txt:
--------------------------------------------------------------------------------
1 | {
2 | "__JSON__": true,
3 | "AUTHOR": "ChanJinhuyk",
4 | "theme": "JINHUYK_MD-V1",
5 | "LANGUAGE": "English",
6 | "LANGCODE": "en",
7 | "STRINGS": {
8 | "updater": {
9 | "UPDATE": "Bot is up to date.",
10 | "UPDATED_LOCAL": "Updated Bot successfully"
11 | },
12 | "global": {
13 | "botName": "JINHUYK_MD-V1",
14 | "body": "Simple WhatsApp Bot",
15 | "greet2" : "GoodDay SIR",
16 | "pic1": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
17 | "pic2": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
18 | "pic3": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
19 | "pic4": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
20 | "pic5": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
21 | "pic6": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
22 | "pic7": "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg",
23 | "greet" : "Hey there",
24 | "dotbody" : "Oh Sir ChanJinhuyk my creator.",
25 | "emojii" : "🍑",
26 | "promote": "Jinhuyk is an Admin",
27 | "pmallow": "Hello &user Do not Spam",
28 | "permited": "Hello Sir you Can Message Me Now.",
29 | "revoked" : "Hello sir your Permission was rejected.",
30 | "demote": "Admin Role Taken back",
31 | "antlink": "Link Detected.\n*I Have removed the violator*",
32 | "session": "\n keep your session id safe sir",
33 | "mention": "Tag my owner",
34 | "title": "JINHUYK_MD-V1",
35 | "footer": "JINHUYK_MD-V1",
36 | "by": "Made by ChanJinhuyk",
37 | "chat_desc": "Options Available* : 1. mute\n2. unmute\n3. archive\n4. unarchive\n5. read\n6. unread\n7. delete",
38 | "success": "Done ✓",
39 | "dot": "Hi, Did you mean *-help?*\n just.. don't bother me while I'm eating ramen",
40 | "couple_male": "*I'm pretty sure I can't live without being helped!*",
41 | "couple_female": "*I'm pretty sure I can't live without being helped!*",
42 | "admin": "Only Group Admin can use this Command.",
43 | "botAdmin": "Make me an Admin to take action.",
44 | "owner": "It's for my owner only.",
45 | "group": "It's for group only.",
46 | "private": "It for my Owner only.",
47 | "bot": "It is for my Owner Only.",
48 | "wait": "Processing..."
49 | },
50 | "error": {
51 | "text": "Dont touch me."
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/plugins/_plugins.js:
--------------------------------------------------------------------------------
1 | const { plugins, smd, Config } = require("../lib");
2 | let s_ser = true;
3 |
4 | // Restart command
5 | smd(
6 | {
7 | cmdname: "restart",
8 | info: "To restart bot",
9 | type: "tools",
10 | fromMe: s_ser,
11 | filename: __filename,
12 | },
13 | async (cld) => {
14 | const { exec } = require("child_process");
15 | cld.reply("Restarting");
16 | exec("pm2 restart all");
17 | }
18 | );
19 |
20 | // ShutDown command
21 | smd(
22 | {
23 | cmdname: "shutdown",
24 | info: "To shutdown bot",
25 | type: "tools",
26 | fromMe: s_ser,
27 | filename: __filename,
28 | },
29 | async (cld) => {
30 | const { exec } = require("child_process");
31 | cld.reply("Shutting down");
32 | exec("pm2 stop all");
33 | }
34 | );
35 |
36 | // Installed plugins command
37 | smd(
38 | {
39 | cmdname: "plugins",
40 | alias: ["plugin"],
41 | type: "owner",
42 | info: "Shows list of all externally installed modules",
43 | fromMe: s_ser,
44 | filename: __filename,
45 | use: "",
46 | },
47 | async (cld, pluginName) => {
48 | try {
49 | let installedPlugins = await plugins(cld, "plugins", pluginName);
50 | return await cld.send(
51 | !installedPlugins
52 | ? "*_There's no plugin install in " + Config.botname + "_*"
53 | : !pluginName
54 | ? "*All Installed Modules are:-*\n\n" + installedPlugins
55 | : installedPlugins
56 | );
57 | } catch (err) {
58 | cld.error(err + " \n\ncmdName plugins\n");
59 | }
60 | }
61 | );
62 |
63 | // Remove plugin command
64 | smd(
65 | {
66 | pattern: "uninstall",
67 | alias: ["remove"],
68 | type: "owner",
69 | info: "removes external modules.",
70 | fromMe: s_ser,
71 | filename: __filename,
72 | use: "",
73 | },
74 | async (cld, pluginName) => {
75 | if (!pluginName) {
76 | return await cld.reply("*_Uhh Please, Provide Me Plugin Name_*");
77 | }
78 | if (pluginName === "alls") {
79 | return await cld.reply(await plugins("remove", "all", __dirname));
80 | }
81 | try {
82 | await cld.send(
83 | await plugins(cld, "remove", pluginName, __dirname),
84 | {},
85 | "",
86 | cld
87 | );
88 | } catch {}
89 | }
90 | );
91 |
92 | // Install plugin command
93 | smd(
94 | {
95 | cmdname: "install",
96 | type: "owner",
97 | info: "Installs external modules..",
98 | fromMe: s_ser,
99 | filename: __filename,
100 | use: "",
101 | },
102 | async (cld, pluginUrl) => {
103 | let url = pluginUrl
104 | ? pluginUrl
105 | : cld.quoted
106 | ? cld.quoted.text
107 | : "";
108 | if (!url.toLowerCase().includes("https")) {
109 | return await cld.send("*_Uhh Please, Provide Me Plugin Url_*");
110 | }
111 | await cld.reply(await plugins(cld, "install", url, __dirname));
112 | }
113 | );
--------------------------------------------------------------------------------
/lib/class/init.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var fetch = require("node-fetch");
3 | var FormData = require("form-data");
4 | var crypto = require("crypto");
5 | var acr = /** @class */ (function () {
6 | function acr(config) {
7 | this.endpoint = "/v1/identify";
8 | this.signature_version = "1";
9 | var host = config.host, access_key = config.access_key, access_secret = config.access_secret, data_type = config.data_type, audio_format = config.audio_format, sample_rate = config.sample_rate, audio_channels = config.audio_channels;
10 | this.host = host || "identify-us-west-2.acrcloud.com";
11 | this.access_key = access_key;
12 | this.access_secret = access_secret;
13 | this.data_type = data_type || "audio";
14 | // Optional settings
15 | this.audio_format = audio_format || "";
16 | this.sample_rate = sample_rate || "";
17 | this.audio_channels = audio_channels || 2;
18 | }
19 |
20 | // Builds a signature string for making API requests
21 | acr.prototype.buildStringToSign = function (method, uri, accessKey, dataType, signatureVersion, timestamp) {
22 | return [method, uri, accessKey, dataType, signatureVersion, timestamp].join("\n");
23 | };
24 | // Signs a signature string
25 | acr.prototype.sign = function (string, access_secret) {
26 | return crypto
27 | .createHmac("sha1", access_secret)
28 | .update(Buffer.from(string, "utf-8"))
29 | .digest()
30 | .toString("base64");
31 | };
32 | // Generates form data from an object
33 | acr.prototype.generateFormData = function (object) {
34 | var form = new FormData();
35 | Object.keys(object).forEach(function (key) {
36 | form.append(key, object[key]);
37 | });
38 | return form;
39 | };
40 | /**
41 | * Identify an audio track from a file path
42 | * @param {Buffer} audio_sample A file path to an audio file or a buffer from an audio sample of the audio you want to identify
43 | * @returns {Promise} response JSON from ACRCloud https://www.acrcloud.com/docs/acrcloud/metadata/music/
44 | */
45 | acr.prototype.identify = function (audio_sample) {
46 | var current_date = new Date();
47 | var timestamp = current_date.getTime() / 1000;
48 | var stringToSign = this.buildStringToSign("POST", this.endpoint, this.access_key, this.data_type, this.signature_version, timestamp);
49 | var signature = this.sign(stringToSign, this.access_secret);
50 | var formData = {
51 | sample: audio_sample,
52 | access_key: this.access_key,
53 | data_type: this.data_type,
54 | signature_version: this.signature_version,
55 | signature: signature,
56 | sample_bytes: audio_sample.length,
57 | timestamp: timestamp
58 | };
59 | return fetch("https://" + this.host + "/" + this.endpoint, {
60 | method: "POST",
61 | body: this.generateFormData(formData)
62 | }).then(function (response) { return response.json(); });
63 | };
64 | return acr;
65 | }());
66 | module.exports = acr;
67 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Jinhuyk-MD",
3 | "version": "2.5.0",
4 | "description": "Multi device whatsapp bot by DeeCeeXxx.",
5 | "main": "index.js",
6 | "type": "commonjs",
7 | "scripts": {
8 | "run": "pm2 start . --deep-monitoring --attach --name JINHUYK-MD|| node .",
9 | "asta": "pm2 start . --deep-monitoring --attach --name JINHUYK-MD|| node .",
10 | "start": "pm2 start . --attach --name JINHUYK-MD",
11 | "stop": "pm2 stop JINHUYK-MD",
12 | "heroku-postbuild": "git clone https://github.com/KangJinhuyk/JINHUYK-MD temp && mv temp/.git .git && rm -rf temp && npx puppeteer@latest install --y",
13 | "fis-heroku-postbuild": "git clone https://github.com/KangJinhuyk/JINHUYK-MD temp1 && rsync -av temp1/* ./ && rsync -av temp1/.* ./ && rm -rf temp1 && npm i && npx puppeteer@latest install",
14 | "postinstall": "npx puppeteer@latest install --y"
15 | },
16 | "author": "KANG JINHUYK",
17 | "license": "Apache-2.0",
18 | "dependencies": {
19 | "@adiwajshing/keyed-db": "^0.2.4",
20 | "@distube/ytdl-core": "^4.13.5",
21 | "@hapi/boom": "^9.1.4",
22 | "@whiskeysockets/baileys": "6.6.0",
23 | "acrcloud": "^1.4.0",
24 | "anime-character-random": "latest",
25 | "aptoide-scraper": "^1.0.1",
26 | "async-g-i-s": "^1.4.0",
27 | "axios": "^0.24.0",
28 | "canvas": "^2.11.2",
29 | "cheerio": "^1.0.0-rc.10",
30 | "child_process": "^1.0.2",
31 | "crypto-js": "latest",
32 | "discord-mongoose-economy": "^1.2.0",
33 | "discord-xp": "^1.1.16",
34 | "dotenv": "^16.0.0",
35 | "express": "^4.18.1",
36 | "ffmpeg": "^0.0.4",
37 | "file-type": "^16.5.3",
38 | "fluent-ffmpeg": "^2.1.2",
39 | "form-data": "^4.0.0",
40 | "fs-extra": "^10.1.0",
41 | "google-it": "^1.6.4",
42 | "google-tts-api": "^2.0.2",
43 | "heroku-client": "3.1.0",
44 | "human-readable": "^0.2.1",
45 | "jimp": "^0.16.1",
46 | "jsdom": "^16.4.0",
47 | "koyeb-api-client": "latest",
48 | "link-preview-js": "^3.0.0",
49 | "moment-timezone": "^0.5.34",
50 | "mongoose": "^6.2.1",
51 | "mumaker": "^2.0.0",
52 | "node-cron": "^3.0.0",
53 | "node-fetch": "^2.6.1",
54 | "node-webpmux": "^3.1.0",
55 | "pastebin-js": "latest",
56 | "path": "^0.12.7",
57 | "pg": "^8.11.3",
58 | "pm2": "^5.2.0",
59 | "puppeteer": "latest",
60 | "qrcode": "latest",
61 | "secktor-pack": "latest",
62 | "simple-git": "^3.15.1",
63 | "translatte": "^3.0.1",
64 | "util": "^0.12.4",
65 | "wa-sticker-formatter": "^4.3.2",
66 | "youtubei.js": "^7.0.0",
67 | "ytdl-core": "^4.11.5",
68 | "ytdl-core": "github:franceking1/flash-dls"
69 | },
70 | "directories": {
71 | "lib": "lib",
72 | "plugins": "plugins"
73 | },
74 | "devDependencies": {
75 | "pino": "^7.0.5"
76 | },
77 | "repository": {
78 | "type": "git",
79 | "url": "git+https://github.com/KangJinhuyk/JINHUYK-MD.git"
80 | },
81 | "bugs": {
82 | "url": "https://github.com/KangJinhuyk/JINHUYK-MD/issues"
83 | },
84 | "homepage": "https://github.com/KangJinhuyk/JINHUYK-MD#readme"
85 | }
86 |
--------------------------------------------------------------------------------
/plugins/delspam.js:
--------------------------------------------------------------------------------
1 | const _0x9b7f14=_0x29a8;function _0x29a8(_0x5907cd,_0x661b1b){const _0x447193=_0x4471();return _0x29a8=function(_0x29a8ab,_0x15a348){_0x29a8ab=_0x29a8ab-0x11a;let _0x5c839e=_0x447193[_0x29a8ab];return _0x5c839e;},_0x29a8(_0x5907cd,_0x661b1b);}(function(_0x55bf91,_0x298060){const _0x3864a9=_0x29a8,_0x24f862=_0x55bf91();while(!![]){try{const _0x1ef52f=parseInt(_0x3864a9(0x129))/0x1+-parseInt(_0x3864a9(0x11c))/0x2+parseInt(_0x3864a9(0x126))/0x3*(-parseInt(_0x3864a9(0x131))/0x4)+-parseInt(_0x3864a9(0x12a))/0x5*(-parseInt(_0x3864a9(0x132))/0x6)+parseInt(_0x3864a9(0x11b))/0x7*(-parseInt(_0x3864a9(0x134))/0x8)+parseInt(_0x3864a9(0x136))/0x9*(parseInt(_0x3864a9(0x128))/0xa)+-parseInt(_0x3864a9(0x127))/0xb;if(_0x1ef52f===_0x298060)break;else _0x24f862['push'](_0x24f862['shift']());}catch(_0x550c1b){_0x24f862['push'](_0x24f862['shift']());}}}(_0x4471,0xa84a0));const {smd,tlang,prefix,Config,sleep,getBuffer,astroJson,smdBuffer}=require('../lib');function _0x4471(){const _0x379ec1=['delete\x20messages\x20of\x20user\x20from\x20chat','push','9Hpayhb','14999754EuLHYo','15310sAUirm','1354299vKuoDl','458940sDBPGn','loadMessages','delete','mentionedJid','quoted','length','*Please\x20reply/@user\x20to\x20delete\x20messages!*\x0a*Use\x20\x27','1129184EERQxN','84idrfTn','delspam','8AlKuqY','delete\x20messages\x20of\x20replied/@mentioned\x20user\x20from\x20chat\x20by\x20giving\x20number\x20of\x20messages!','7173xjgdmy','admin','log','3196067ajKqLk','1006286EUwSZR','send','split','includes','tech','group','dlspam','participant'];_0x4471=function(){return _0x379ec1;};return _0x4471();}async function loadMessages(_0x29790e,_0x550013,_0x11f938=''){const _0x4dd5b2=_0x29a8;try{_0x11f938=(_0x11f938?_0x11f938:_0x550013)[_0x4dd5b2(0x11e)]('@')[0x0];let _0x3edb4f=await _0x29790e[_0x4dd5b2(0x12b)](_0x550013),_0x438080=[];for(let _0x10cec1=0x0;_0x10cec1<_0x3edb4f[_0x4dd5b2(0x12f)];_0x10cec1++){_0x3edb4f[_0x10cec1]['key'][_0x4dd5b2(0x123)]?.[_0x4dd5b2(0x11f)](_0x11f938)&&_0x438080[_0x4dd5b2(0x125)](_0x3edb4f[_0x10cec1]);}return _0x438080;}catch(_0x5085fb){return console[_0x4dd5b2(0x11a)](_0x5085fb),[];}}smd({'pattern':_0x9b7f14(0x133),'alias':[_0x9b7f14(0x122)],'category':_0x9b7f14(0x120),'desc':_0x9b7f14(0x124),'use':'[\x204/\x206/\x2010\x20]','usage':_0x9b7f14(0x135),'filename':__filename},async(_0x4dc028,_0x422147,{store:_0x205c9c})=>{const _0x29e0b0=_0x9b7f14;try{if(!_0x4dc028['isGroup'])return await _0x4dc028[_0x29e0b0(0x11d)](tlang(_0x29e0b0(0x121)));if(!_0x4dc028['isBotAdmin'])return await _0x4dc028[_0x29e0b0(0x11d)]('I\x20am\x20Not\x20Admin!');if(!_0x4dc028['isAdmin']&&!_0x4dc028['isCreator'])return await _0x4dc028['send'](tlang(_0x29e0b0(0x137)));let _0x2505f5=_0x4dc028['quoted']?_0x4dc028[_0x29e0b0(0x12e)]['senderNum']:_0x4dc028[_0x29e0b0(0x12d)][0x0]?_0x4dc028['mentionedJid'][0x0]:![];if(!_0x2505f5)return await _0x4dc028['send'](_0x29e0b0(0x130)+prefix+'delspam\x205\x20@user\x27\x20(delete\x205\x20msgs)*');let _0x49d301=await loadMessages(_0x205c9c,_0x4dc028['chat'],_0x2505f5),_0x5b8854=parseInt(_0x422147[_0x29e0b0(0x11e)]('\x20')[0x0])||0x5,_0x4e3941=_0x49d301[_0x29e0b0(0x12f)]-_0x5b8854;for(let _0xdded2a=_0x49d301['length']-0x1;_0xdded2a>=_0x4e3941;_0xdded2a--){try{_0x49d301[_0xdded2a]&&await _0x4dc028[_0x29e0b0(0x12c)](_0x49d301[_0xdded2a]);}catch(_0x4bd6df){}}}catch(_0x490288){console[_0x29e0b0(0x11a)](_0x490288);}});
2 |
--------------------------------------------------------------------------------
/lib/premiun.js:
--------------------------------------------------------------------------------
1 | //base by DGXeon (Xeon Bot Inc.)
2 | //re-upload? recode? copy code? give credit ya :)
3 | //YouTube: @DGXeon
4 | //Instagram: unicorn_xeon13
5 | //Telegram: t.me/xeonbotinc
6 | //GitHub: @DGXeon
7 | //WhatsApp: +237656520674
8 | //want more free bot scripts? subscribe to my youtube channel:
9 |
10 | const fs = require("fs");
11 | const toMs = require("ms");
12 |
13 | const premium = JSON.parse(fs.readFileSync('./database/premium.json'))
14 | /**
15 | * Add premium user.
16 | * @param {String} userId
17 | * @param {String} expired
18 | * @param {Object} _dir
19 | */
20 | const addPremiumUser = (userId, expired, _dir) => {
21 | const cekUser = premium.find((user) => user.id == userId);
22 | if (cekUser) {
23 | cekUser.expired = cekUser.expired + toMs(expired);
24 | } else {
25 | const obj = { id: userId, expired: Date.now() + toMs(expired) };
26 | _dir.push(obj);
27 | }
28 | fs.writeFileSync("./database/premium.json", JSON.stringify(_dir));
29 | };
30 |
31 | /**
32 | * Get premium user position.
33 | * @param {String} userId
34 | * @param {Object} _dir
35 | * @returns {Number}
36 | */
37 | const getPremiumPosition = (userId, _dir) => {
38 | let position = null;
39 | Object.keys(_dir).forEach((i) => {
40 | if (_dir[i].id === userId) {
41 | position = i;
42 | }
43 | });
44 | if (position !== null) {
45 | return position;
46 | }
47 | };
48 |
49 | /**
50 | * Get premium user expire.
51 | * @param {String} userId
52 | * @param {Object} _dir
53 | * @returns {Number}
54 | */
55 | const getPremiumExpired = (userId, _dir) => {
56 | let position = null;
57 | Object.keys(_dir).forEach((i) => {
58 | if (_dir[i].id === userId) {
59 | position = i;
60 | }
61 | });
62 | if (position !== null) {
63 | return _dir[position].expired;
64 | }
65 | };
66 |
67 | /**
68 | * Check user is premium.
69 | * @param {String} userId
70 | * @param {Object} _dir
71 | * @returns {Boolean}
72 | */
73 | const checkPremiumUser = (userId, _dir) => {
74 | let status = false;
75 | Object.keys(_dir).forEach((i) => {
76 | if (_dir[i].id === userId) {
77 | status = true;
78 | }
79 | });
80 | return status;
81 | };
82 |
83 | /**
84 | * Constantly checking premium.
85 | * @param {Object} _dir
86 | */
87 | const expiredCheck = (XeonBotInc, msg, _dir) => {
88 | setInterval(() => {
89 | let position = null;
90 | Object.keys(_dir).forEach((i) => {
91 | if (Date.now() >= _dir[i].expired) {
92 | position = i;
93 | }
94 | });
95 | if (position !== null) {
96 | idny = _dir[position].id;
97 | console.log(`Premium expired: ${_dir[position].id}`);
98 | _dir.splice(position, 1);
99 | fs.writeFileSync("./database/premium.json", JSON.stringify(_dir));
100 | idny ? XeonBotInc.sendMessage(idny, { text: "Your premium has run out, please buy again." }) : "";
101 | idny = false;
102 | }
103 | }, 1000);
104 | };
105 |
106 | /**
107 | * Get all premium user ID.
108 | * @param {Object} _dir
109 | * @returns {String[]}
110 | */
111 | const getAllPremiumUser = (_dir) => {
112 | const array = [];
113 | Object.keys(_dir).forEach((i) => {
114 | array.push(_dir[i].id);
115 | });
116 | return array;
117 | };
118 |
119 | module.exports = {
120 | addPremiumUser,
121 | getPremiumExpired,
122 | getPremiumPosition,
123 | expiredCheck,
124 | checkPremiumUser,
125 | getAllPremiumUser,
126 | };
127 |
--------------------------------------------------------------------------------
/plugins/_updater.js:
--------------------------------------------------------------------------------
1 | const DB = require("../lib/scraper");
2 | const { Config, smd } = require("../lib");
3 | const simpleGit = require("simple-git");
4 | const git = simpleGit();
5 | try {
6 | const Heroku = require("heroku-client");
7 | async function updateHerokuApp() {
8 | try {
9 | const heroku = new Heroku({ token: process.env.HEROKU_API_KEY });
10 | await git.fetch();
11 | const commits = await git.log(["main..origin/main"]);
12 | if (commits.total === 0) {
13 | return `${Config.botname} IS ON IT'S LATEST VERSION`;
14 | } else {
15 | console.log("Update Detected, trying to update your bot!");
16 | const app = await heroku.get(`/apps/${process.env.HEROKU_APP_NAME}`);
17 | const gitUrl = app.git_url.replace(
18 | "https://",
19 | `https://api:${process.env.HEROKU_API_KEY}@`
20 | );
21 | try {
22 | await git.addRemote("heroku", gitUrl);
23 | } catch (e) {
24 | print("Heroku remote adding error", e);
25 | }
26 | await git.push("heroku", "main");
27 | return "Bot updated. Restarting.";
28 | }
29 | } catch (e) {
30 | print(e);
31 | return "Can't Update, Request Denied!";
32 | }
33 | }
34 | smd(
35 | {
36 | pattern: "checkupdate",
37 | desc: "Shows repo's refreshed commits.",
38 | category: "tools",
39 | fromMe: true,
40 | react: "🍂",
41 | filename: __filename,
42 | use: process.env.HEROKU_API_KEY ? "[ start ]" : "",
43 | },
44 | async (citel, text) => {
45 | try {
46 | let commits = await DB.syncgit();
47 | if (commits.total === 0)
48 | return await citel.reply(
49 | `*JINHUYK-MD IS RUNNING ON LATEST\nPATCHES\nFIXES\UPGRADES*`
50 | );
51 | let update = await DB.sync();
52 | await citel.bot.sendMessage(
53 | citel.chat,
54 | { text: update.replace(/SuhailTechIMd/, " Kg Tech") },
55 | { quoted: citel }
56 | );
57 | if (
58 | text == "start" &&
59 | process.env.HEROKU_APP_NAME &&
60 | process.env.HEROKU_API_KEY
61 | ) {
62 | citel.reply("Build started...");
63 | const update = await updateHerokuApp();
64 | return await citel.reply(update);
65 | }
66 | } catch (e) {
67 | citel.error(`${e}\n\nCommand: update`, e, "ERROR!");
68 | }
69 | }
70 | );
71 | smd(
72 | {
73 | pattern: "update",
74 | desc: process.env.HEROKU_API_KEY
75 | ? "*UPDATE SUCCESS*"
76 | : "UPDATED YOUR DEPLOYEMENT",
77 | fromMe: true,
78 | category: "tools",
79 | filename: __filename,
80 | },
81 | async (citel) => {
82 | try {
83 | let commits = await DB.syncgit();
84 | if (commits.total === 0)
85 | return await citel.reply(`*${Config.VERSION} IS Updating*`);
86 | let update = await DB.sync();
87 | let text = `
88 | *UPDATE RUNNING*
89 | \t${update}*`;
90 | await citel.bot.sendMessage(citel.jid, { text });
91 | await require("simple-git")().reset("hard", ["HEAD"]);
92 | await require("simple-git")().pull();
93 | await citel.reply(
94 | process.env.HEROKU_APP_NAME && process.env.HEROKU_API_KEY
95 | ? "*`BOT UPDATED`*\n*RESTART YOUR BOT FOR UPDATE TO TAKE EFFECT*"
96 | : "```*Successfully updated. Now You Have Latest Version Installed!*"
97 | );
98 | } catch (e) {
99 | citel.error(`${e}\n\nCommand: updatenow`, e, "ERROR!");
100 | }
101 | }
102 | );
103 | if (process.env.HEROKU_API_KEY) {
104 | print("HEROKU : checking for auto update!");
105 | updateHerokuApp();
106 | }
107 | } catch (e) {}
108 |
--------------------------------------------------------------------------------
/plugins/ssaver.js:
--------------------------------------------------------------------------------
1 | const { smd } = require("../lib");
2 | smd(
3 | {
4 | pattern: "save",
5 | desc: "Save whatsapp status",
6 | category: "whatsapp",
7 | filename: __filename,
8 | use: "< status >",
9 | },
10 | async (message) => {
11 | try {
12 | let mm =
13 | message.reply_message && message.reply_message.status
14 | ? message.reply_message
15 | : false;
16 | if (mm) {
17 | message.bot.forwardOrBroadCast(message.user, mm, {
18 | quoted: { key: mm.key, message: mm.message },
19 | });
20 | } else message.send("*reply to whatsapp status*");
21 | } catch (e) {
22 | await message.error(`${e}\n\ncommand : #(Status Saver)`, e, false);
23 | }
24 | }
25 | );
26 | const regexSend = new RegExp(
27 | `\\b(?:${["send", "share", "snd", "give", "save", "sendme", "forward"].join(
28 | "|"
29 | )})\\b`,
30 | "i"
31 | );
32 | smd({ on: "quoted" }, async (message, text) => {
33 | try {
34 | let mm = message.reply_message.status ? message.reply_message : false;
35 | if (mm && regexSend.test(text.toLowerCase())) {
36 | message.bot.forwardOrBroadCast(
37 | message.fromMe ? message.user : message.from,
38 | mm,
39 | { quoted: { key: mm.key, message: mm.message } }
40 | );
41 | }
42 | } catch (e) {
43 | console.log(e);
44 | }
45 | });
46 |
47 | global.waPresence =
48 | process.env.WAPRESENCE && process.env.WAPRESENCE === "online"
49 | ? "available"
50 | : process.env.WAPRESENCE || "";
51 | global.api_smd = "https://api-smd.onrender.com";
52 |
53 | let status = false,
54 | times = 0;
55 | smd({ on: "main" }, async (message, text, { icmd }) => {
56 | try {
57 | if (!status) {
58 | try {
59 | status = true;
60 | } catch (e) {}
61 | }
62 |
63 | if (message.status) return;
64 | if (
65 | `${global.readmessagefrom}`.includes(message.senderNum) ||
66 | ["yes", "true", "ok", "sure"].includes(global.readmessage) ||
67 | (icmd && ["yes", "true", "ok", "sure"].includes(global.readcmds))
68 | )
69 | message.bot.readMessages([message.key]);
70 | } catch (e) {
71 | console.log(e);
72 | }
73 | });
74 |
75 | smd({ on: "text" }, async (message, text, { icmd }) => {
76 | try {
77 | if (
78 | ["unavailable", "available", "composing", "recording", "paused"].includes(
79 | waPresence
80 | )
81 | )
82 | message.bot.sendPresenceUpdate(waPresence, message.from);
83 | if (message.isAstro && !message.fromMe && !message.text.startsWith("$"))
84 | message.react("🤖");
85 | } catch (e) {
86 | console.log(e);
87 | }
88 | });
89 |
90 | smd({ on: "status" }, async (message, text) => {
91 | try {
92 | if (
93 | `${global.read_status_from}`
94 | .split(",")
95 | .includes(message.key.participant.split("@")[0]) ||
96 | ["yes", "true", "ok", "sure"].includes(global.read_status) ||
97 | message.fromMe ||
98 | message.isAstro
99 | ) {
100 | await message.bot.readMessages([{ ...message.key, fromMe: false }]);
101 | }
102 | if (
103 | (`${global.save_status_from}`
104 | .split(",")
105 | .includes(message.key.participant.split("@")[0]) ||
106 | ["yes", "true", "ok", "sure"].includes(global.save_status)) &&
107 | !message.fromMe
108 | ) {
109 | await message.bot.forwardOrBroadCast(message.user, message, {
110 | quoted: { key: message.key, message: message.message },
111 | });
112 | }
113 | } catch (e) {
114 | console.log(e);
115 | }
116 | });
117 |
118 | smd(
119 | {
120 | cmdname: "user",
121 | desc: "total Users Currently using Taka",
122 | },
123 | async (message, text) => {
124 | try {
125 | message.send(`An Estimated 200+ Users On JINHUYK-MD`.trim());
126 | } catch (e) {
127 | console.error("Error:", e);
128 | message.reply(`*ERROR!* `);
129 | }
130 | }
131 | );
132 |
--------------------------------------------------------------------------------
/config.js:
--------------------------------------------------------------------------------
1 | //#ENJOY BRO😍
2 | // Credit: JINHUYK|KangJinhuyk
3 | const fs = require("fs-extra");
4 | if (fs.existsSync(".env"))
5 | require("dotenv").config({ path: __dirname + "/.env" });
6 | global.audio = "";
7 | global.video = "";
8 | global.port = process.env.PORT;
9 | global.appUrl = process.env.APP_URL || "";
10 | global.email = "chanjinhuyk@gmail.com";
11 | global.location = "Douala, congo-brazaville";
12 | global.mongodb = process.env.MONGODB_URL || "mongodb+srv://paulrick312:rBfEkBv2P9b6LDWH@cluster0.pmmq0.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0";
13 | global.allowJids = process.env.ALLOW_JID || "null";
14 | global.blockJids = process.env.BLOCK_JID || "null";
15 | global.DATABASE_URL = process.env.DATABASE_URL || "";
16 | global.timezone = process.env.TZ || process.env.TIME_ZONE || "Africa/Douala";
17 | global.github = process.env.GITHUB || "https://github.com/ChanJinhuyk/JINHUYK-MD-V1";
18 | global.gurl = process.env.GURL || "https://whatsapp.com/channel/0029Vajrhmz96H4IsEjh4a41";
19 | global.website = process.env.GURL || "https://whatsapp.com/channel/0029Vajrhmz96H4IsEjh4a41";
20 | global.THUMB_IMAGE = process.env.THUMB_IMAGE || process.env.IMAGE || "https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg";
21 | global.devs = "https://wa.me/242067274660 , https://wa.me/242065155487";
22 | global.sudo = process.env.SUDO || "242067274660";
23 | global.owner = process.env.OWNER_NUMBER || "242067274660";
24 | global.style = process.env.STYLE || "3";
25 | global.gdbye = process.env.GOODBYE || "true";
26 | global.wlcm = process.env.WELCOME || "true";
27 | global.warncount = process.env.WARN_COUNT || 3;
28 | global.disablepm = process.env.DISABLE_PM || "false";
29 | global.disablegroup = process.env.DISABLE_GROUPS || "false",
30 | global.MsgsInLog = process.env.MSGS_IN_LOG || "false";
31 | global.userImages = process.env.USER_IMAGES || "https://i.postimg.cc/nrsBc8Td/JINHUYK-MD-V0.jpg";
32 | global.waPresence = process.env.WAPRESENCE || "available";
33 | global.readcmds = process.env.READ_COMMAND || "false";
34 | global.readmessage = process.env.READ_MESSAGE || "false";
35 | global.readmessagefrom = process.env.READ_MESSAGE_FROM || "false";
36 | global.read_status = process.env.AUTO_READ_STATUS || "true";
37 | global.save_status = process.env.AUTO_SAVE_STATUS || "false";
38 | global.save_status_from = process.env.SAVE_STATUS_FROM || "";
39 | global.read_status_from = process.env.READ_STATUS_FROM || "";
40 |
41 | global.api_smd = "https://api-smd-1.vercel.app";
42 | global.scan = "https://david-session-sasaki.onrender.com";
43 |
44 | global.SESSION_ID =
45 | process.env.SESSION_ID ||
46 | "PUT YOUR SESSIONS HERE"
47 | module.exports = {
48 | menu: process.env.MENU || "1",
49 | HANDLERS: process.env.PREFIX || ".",
50 | BRANCH: process.env.BRANCH || "main",
51 | VERSION: process.env.VERSION || "1.0.0",
52 | caption: process.env.CAPTION || "`BRAND PRODUCT OF 𝐉𝚰𝚴𝚮𝐘𝐔𝐊`",
53 | author: process.env.PACK_AUTHER || "🍂𝐊𝐀𝐍𝐆 𝐉𝐈𝐍𝐇𝐘𝐔𝐊🍂",
54 | packname: process.env.PACK_NAME || "🍂𝐉𝐈𝐍𝐇𝐔𝐘𝐊-𝐌𝐃🍂",
55 | botname: process.env.BOT_NAME || "𝐉𝚰𝚴𝚮𝐘𝐔𝐊-𝚳𝐃",
56 | ownername: process.env.OWNER_NAME || "🍁𝐊𝐀𝐍𝐆 𝐉𝐈𝐍𝐇𝐘𝐔𝐊🍁",
57 | errorChat: process.env.ERROR_CHAT || "",
58 | KOYEB_API: process.env.KOYEB_API || "false",
59 | REMOVE_BG_KEY: process.env.REMOVE_BG_KEY || "tCxobE1FqJgfbDZgsYQNHBFB",
60 | OPENAI_API_KEY: process.env.OPENAI_API_KEY || "",
61 | HEROKU_API_KEY: process.env.HEROKU_API_KEY || "",
62 | HEROKU_APP_NAME: process.env.HEROKU_APP_NAME || "",
63 | antilink_values: process.env.ANTILINK_VALUES || "all",
64 | HEROKU: process.env.HEROKU_APP_NAME && process.env.HEROKU_API_KEY,
65 | aitts_Voice_Id: process.env.AITTS_ID || "37",
66 | ELEVENLAB_API_KEY: process.env.ELEVENLAB_API_KEY || "...d336",
67 | WORKTYPE: process.env.WORKTYPE || process.env.MODE || "public",
68 | LANG: (process.env.THEME || "JINHUYK").toUpperCase(),
69 | };
70 | global.rank = "updated";
71 | global.isMongodb = false;
72 | let file = require.resolve(__filename);
73 | fs.watchFile(file, () => {
74 | fs.unwatchFile(file);
75 | console.log(`Update'${__filename}'`);
76 | delete require.cache[file];
77 | require(file);
78 | });
79 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | 𝐉𝐈𝐍𝐇𝐘𝐔𝐊-𝐌𝐃
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | **JINHUYK-MD-V1 Deployment Methods**
22 |
23 | •FORK THIS REPO
24 |
25 |
26 |
27 | GET SESSION ID HERE
28 |
29 |
30 |
31 |
32 | **PANEL.HUGUITISNODES**
33 | *Créer un Compte sur HuguitisNodes*
34 | :
35 | - vas sur [HuguitisNodes](https://dash.huguitisnodes.host/register?ref=iflpl35U) et crée un compte si tu n'en as pas déjà un.
36 |
37 | **Lien de Déploiement**
38 |
39 |
40 | **Étape 1 : Créer un Compte sur KataBump**
41 |
42 | - Va sur [KataBump](https://katabump.com/fr) et crée un compte si tu n'en as pas déjà un.
43 |
44 | **LIEN VERS LE DÉPLOIEMENT**
45 |
46 |
47 | **DEPLOY ON HEROKU**
48 |
49 | •If you don't have an account in Heroku, create one.
50 |
51 |
52 |
53 | •Now deploy.
54 |
55 |
56 |
57 |
58 | **DEPLOY ON REPLIT**
59 |
60 | [not RECOMMENDED for now,don't even try it]
61 |
62 | •Deploy.
63 |
64 |
65 |
66 | **•Koyeb and Render Deploy now available**
67 |
68 | _Termux Setup not recommended_
69 |
70 |
71 |
72 | ## URGENT ANNOUNCEMENT
73 |
74 | *Français*
75 | ⚠️ *Important : Il est tristement interdit de déployer JINHUYK-MD via le workflow pour éviter tout risque de spam ou de bannissement du dépôt.*
76 |
77 | *English*
78 | ⚠️ *Important: It is strictly forbidden to deploy JINHUYK-MD via the workflow to avoid any risk of spam or repository banning.*
79 |
80 |
81 | [Sasaki whatsapp Channel🧑💻](https://whatsapp.com/channel/0029Vajrhmz96H4IsEjh4a41)
82 |
83 | **DEVELOPERS**
84 |
85 |
86 |
87 | | •EMMANUEL SASAKI• |
88 |
89 |
90 |
91 | |
92 |
93 |
--------------------------------------------------------------------------------
/plugins/editorpack.js:
--------------------------------------------------------------------------------
1 | const { smd ,prefix,Config,smdBuffer} = require("../lib")
2 | let photo = ["imageMessage" ]
3 |
4 | let gfxold = ["ad","uncover","clown","mnm","pet","drip","gun","colorify"]
5 |
6 | let gfxx = [
7 | 'beautiful', 'blur', 'facepalm', 'invert',
8 | 'rainbow', 'wanted', 'wasted', 'greyscale',
9 | 'sepia', 'rip', 'trash', 'hitler',
10 | "jail", "shit", "affect",...gfxold
11 | ];
12 | async function createUrl(_0x128c16, _0x4f4112 = "1") {
13 | try {
14 | if (!_0x128c16) {
15 | return;
16 | }
17 | if (!_0x4f4112 || _0x4f4112 === "1" || _0x4f4112.toLowerCase() === "telegraph") {
18 | return await TelegraPh(_0x128c16);
19 | }
20 | if (_0x4f4112 === "2" || _0x4f4112.toLowerCase().includes("ugu")) {
21 | return await UploadFileUgu(_0x128c16);
22 | }
23 | } catch (_0x21a973) {
24 | console.log("ERROR IN SCRAPPING FOR CREATE URL()\n", _0x21a973);
25 | }
26 | }
27 | async function photoEditor(_0x17796b, _0x343213 = "ad", _0xf62b7f = "", _0xe1eb47 = true) {
28 | let _0xc6e0fc = ["imageMessage"];
29 | try {
30 | let _0x430f77 = _0xc6e0fc.includes(_0x17796b.mtype) ? _0x17796b : _0x17796b.reply_message;
31 | if (!_0x430f77 || !_0xc6e0fc.includes(_0x430f77?.mtype || "null")) {
32 | return await _0x17796b.send("*_Uhh Dear, Reply to an image_*");
33 | }
34 | let _0x2de3c4 = await _0x17796b.bot.downloadAndSaveMediaMessage(_0x430f77);
35 | let _0x9a4084 = await TelegraPh(_0x2de3c4);
36 | try {
37 | fs.unlinkSync(_0x2de3c4);
38 | } catch (_0x408f7d) {}
39 | return await _0x17796b.bot.sendMessage(_0x17796b.chat, {
40 | image: {
41 | url: "https://api.popcat.xyz/" + _0x343213 + "?image=" + _0x9a4084
42 | },
43 | caption: _0xf62b7f
44 | }, {
45 | quoted: _0x17796b,
46 | messageId: _0x17796b.bot.messageId()
47 | });
48 | } catch (_0x23ac28) {
49 | if (_0xe1eb47) {
50 | await _0x17796b.error(_0x23ac28 + "\n\ncommand: " + _0x343213 + "\nfileName: photoEditor->s.js", _0x23ac28);
51 | }
52 | }
53 | }
54 |
55 | const sendEditor = async (m,cmd, error = true,cap = Config.caption?.split("\n")[0] ||"") => {
56 | if(!gfxx.includes(cmd)) return
57 | try{
58 | let mm = m.image ? m : m.reply_message && m.reply_message.image ? m.reply_message : false;
59 | if (!mm || !photo.includes(mm.mtype2)) return m.reply(`*_Uhh Dear, Reply To An Image!_*`);
60 | let media = await m.bot.downloadAndSaveMediaMessage(mm);
61 | var anu = ""
62 | try{ anu = (await createUrl(media,"uguMashi")).url; if(!anu) throw new Error("invalid Media!") }
63 | catch(e){console.log(e); try{ anu = await createUrl(media);}catch(e){anu = false} }
64 | try{ fs.unlink(media); }catch(e){}
65 | if(!anu) return m.reply("*_Failed To Create Url!_*")
66 | let base =await smdBuffer(`${api_smd}/api/maker/${cmd}?url=${anu}`)
67 |
68 | m.send(base,{caption : cap},"img",mm)
69 | }catch(e){ if(error) { console.log(e);await m.error(`${e}\n\ncommand ${cmd}`, e,false); }}
70 |
71 |
72 | }
73 |
74 |
75 |
76 |
77 |
78 |
79 | for (let i = 0; i < gfxx.length; i++) {
80 | smd(
81 | { cmdname: gfxx[i], infocmd: `Edit image with ${gfxx[i]} effect!`, type :"editor",use:"< image >",filename: __filename },
82 | async (m, text, {smd}) => {
83 | try{
84 | if(gfxold.includes(smd)){ await photoEditor(m , smd); }else { sendEditor(m,smd) }
85 | } catch (err) { await message.error(`${err}\n\ncommand: ${smd}`,err,"Request Denied!")} }
86 | )
87 | }
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 | smd({
96 | cmdname: "editor",
97 | infocmd: "create gfx logo for text",
98 | type :"editor",
99 | use:"< image >",
100 | filename: __filename
101 | }, async (m, text, {smd }) => {
102 | try{
103 | let mm = m.image ? m : m.reply_message && m.reply_message.image ? m.reply_message : false;
104 |
105 | let too = `*Separate the text with _:_ sign!*\n*Example : ${prefix + smd} WASI _:_ Bot*`
106 | if(!mm) {
107 | let str = `┌───〈 *ᴇᴅɪᴛᴏʀ ᴍᴇɴᴜ* 〉───◆
108 | │╭─────────────···▸
109 | ┴│▸
110 | ⬡│▸ ${gfxx.join(" \n⬡│▸ ")}
111 | ┬│▸
112 | │╰────────────···▸▸
113 | └───────────────···▸
114 |
115 | \t *USE: _${prefix+smd}_ by replying image*
116 | _To get All Results with single Cmd!_
117 | `
118 | return await m.sendUi(m.chat, { caption: str})
119 | }
120 |
121 |
122 | for (let i = 0; i < gfxx.length; i++) {
123 | try{ if(gfxold.includes(gfxx[i])){ await photoEditor(m , gfxx[i]); }else { sendEditor(m,gfxx[i],false) } }catch(e){}
124 | }
125 | }catch(e){ m.error(`${e}\n\nCommand: ${smd}`,e,false)}
126 | })
127 |
128 |
--------------------------------------------------------------------------------
/plugins/drive.js:
--------------------------------------------------------------------------------
1 | const { smd, isUrl, Config } = require("../lib/index");
2 | import("node-fetch")
3 | .then((_0x58577b) => {
4 | const _0x31382c = _0x58577b.default;
5 | smd(
6 | {
7 | pattern: "drive",
8 | alias: ["mdrive", "gdrive"],
9 | desc: "google drive downloader",
10 | type: "downloader",
11 | use: "",
12 | },
13 | async (_0x29f880, _0x547438) => {
14 | try {
15 | _0x547438 = isUrl(_0x547438 || _0x29f880.reply_text);
16 | if (!_0x547438 || !_0x547438[0]) {
17 | return await _0x29f880.send(
18 | "*Example : mdrive https://drive.google.com/file/d/15Vl6Df8GO8Gi3woPG-gOMxLQ-B_fkLaw/view*"
19 | );
20 | }
21 | let _0x225090 = await _0x5aae0a(_0x547438[0], _0x31382c);
22 | if (!_0x225090) {
23 | return await _0x29f880.reply("*Not found*");
24 | }
25 | let _0x1095a6 = await _0x29f880.send(
26 | (
27 | "≡ *GOGGLE DRIVE DOWNLOADER*\n\n▢ *Name:* " +
28 | _0x225090.fileName +
29 | "\n▢ *Size:* " +
30 | _0x332acb(_0x225090.sizeBytes) +
31 | "\n▢ *Type:* " +
32 | _0x225090.mimetype +
33 | "\n\n" +
34 | Config.caption
35 | ).trim()
36 | );
37 | return await _0x29f880.bot.sendMessage(
38 | _0x29f880.chat,
39 | {
40 | document: {
41 | url: _0x225090.downloadUrl,
42 | },
43 | ..._0x225090,
44 | },
45 | {
46 | quoted: _0x1095a6,
47 | }
48 | );
49 | } catch (_0xf96be8) {
50 | _0x29f880.error(
51 | _0xf96be8 + "\n\nCommand drive",
52 | _0xf96be8,
53 | _0xf96be8.message || "ERROR!"
54 | );
55 | }
56 | }
57 | );
58 | async function _0x5aae0a(_0x5024e5, _0x48ad67) {
59 | let _0xbbdee3;
60 | if (!_0x5024e5 || !_0x5024e5.match(/drive\.google/i)) {
61 | throw "Invalid URL";
62 | }
63 | _0xbbdee3 = (_0x5024e5.match(/\/?id=(.+)/i) ||
64 | _0x5024e5.match(/\/d\/(.*?)\//))[1];
65 | if (!_0xbbdee3) {
66 | throw "ID Not Found";
67 | }
68 | let _0x261755 = await _0x48ad67(
69 | "https://drive.google.com/uc?id=" +
70 | _0xbbdee3 +
71 | "&authuser=0&export=download",
72 | {
73 | method: "post",
74 | headers: {
75 | "accept-encoding": "gzip, deflate, br",
76 | "content-length": 0,
77 | "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
78 | origin: "https://drive.google.com",
79 | "user-agent":
80 | "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
81 | "x-client-data": "CKG1yQEIkbbJAQiitskBCMS2yQEIqZ3KAQioo8oBGLeYygE=",
82 | "x-drive-first-party": "DriveWebUi",
83 | "x-json-requested": "true",
84 | },
85 | }
86 | );
87 | let _0x53ad63 = JSON.parse((await _0x261755.text()).slice(4));
88 | let {
89 | fileName: _0x1b4935,
90 | sizeBytes: _0x4e076a,
91 | downloadUrl: _0xffc830,
92 | } = _0x53ad63;
93 | if (!_0xffc830) {
94 | throw "URL noT Found!";
95 | }
96 | let _0x372123 = await _0x48ad67(_0xffc830);
97 | if (_0x372123.status !== 200) {
98 | throw "Request Not Completed!";
99 | }
100 | return {
101 | downloadUrl: _0xffc830,
102 | fileName: _0x1b4935,
103 | sizeBytes: _0x4e076a,
104 | mimetype: _0x372123.headers.get("content-type"),
105 | };
106 | }
107 | function _0x332acb(_0x48f64, _0x7e9b21 = 2) {
108 | if (_0x48f64 === 0) {
109 | return "0 Bytes";
110 | }
111 | const _0x28b761 = 1024;
112 | const _0x1bb962 = _0x7e9b21 < 0 ? 0 : _0x7e9b21;
113 | const _0x4f67b4 = [
114 | "Bytes",
115 | "KB",
116 | "MB",
117 | "GB",
118 | "TB",
119 | "PB",
120 | "EB",
121 | "ZB",
122 | "YB",
123 | ];
124 | const _0x248e71 = Math.floor(Math.log(_0x48f64) / Math.log(_0x28b761));
125 | return (
126 | parseFloat(
127 | (_0x48f64 / Math.pow(_0x28b761, _0x248e71)).toFixed(_0x1bb962)
128 | ) +
129 | " " +
130 | _0x4f67b4[_0x248e71]
131 | );
132 | }
133 | })
134 | .catch((_0x58a74d) => {
135 | console.error("Error during dynamic import:", _0x58a74d);
136 | });
137 |
--------------------------------------------------------------------------------
/plugins/delete.js:
--------------------------------------------------------------------------------
1 | let DELCHAT = process.env.DELCHAT || "pm";
2 |
3 | const _0x464915=_0x2811;(function(_0x2a642a,_0x1309b5){const _0x549530=_0x2811,_0x3acb9f=_0x2a642a();while(!![]){try{const _0x3d9904=-parseInt(_0x549530(0x14d))/0x1+parseInt(_0x549530(0x152))/0x2*(-parseInt(_0x549530(0x15f))/0x3)+parseInt(_0x549530(0x149))/0x4+-parseInt(_0x549530(0x177))/0x5+parseInt(_0x549530(0x156))/0x6*(parseInt(_0x549530(0x164))/0x7)+parseInt(_0x549530(0x154))/0x8+parseInt(_0x549530(0x148))/0x9;if(_0x3d9904===_0x1309b5)break;else _0x3acb9f['push'](_0x3acb9f['shift']());}catch(_0x555e23){_0x3acb9f['push'](_0x3acb9f['shift']());}}}(_0x1778,0xc24cd));const {smd,tlang,botpic,prefix,Config,bot_}=require(_0x464915(0x162));function _0x2811(_0x209805,_0x4eeb18){const _0x177854=_0x1778();return _0x2811=function(_0x2811ac,_0x1f9d09){_0x2811ac=_0x2811ac-0x144;let _0x4052c9=_0x177854[_0x2811ac];return _0x4052c9;},_0x2811(_0x209805,_0x4eeb18);}function _0x1778(){const _0x526739=['5001540lDJaTz','\x0a*MESSGE\x20FROM:*\x20@','messages','senderNum','477008ENpYDC','key','*_Use\x20on/off\x20to\x20enable/disable\x20Anti_Delete!_*','general','conversation','14Unfiqi','reply','11287368XVjYZc','*Anti_Delete\x20Succesfully\x20enabled*','12rSoRDU','updateOne','join','trim','true','new','msg','delete','*[DELETED\x20INFORMATION]*\x0a\x0a*TIME:*\x20','534825oGXpJR','\x0a\x0aCommand:\x20antidelete\x20','false','../lib','bot','480543lNACqF','from','time','send','length','bot_','\x0a*CHAT:*\x20','*[ANTIDELETE\x20DETECTED]*','*Anti_Delete\x20already\x20disabled*','split','test','error','user','*Anti_Delete\x20Succesfully\x20deactivated*','act','getName','*Anti_Delete\x20already\x20enabled!*','toLowerCase','participant','3171155gRNxPI','off','message','enable','antidelete','log','\x0a*DELETED\x20BY:*\x20@','chat','','fakeMessage','findOne','3207717iggfBP'];_0x1778=function(){return _0x526739;};return _0x1778();}let bgmm=![];smd({'pattern':'antidelete','alias':[_0x464915(0x15d)],'desc':'turn\x20On/Off\x20auto\x20download\x20deletes','fromMe':!![],'category':_0x464915(0x150),'use':_0x464915(0x145),'filename':__filename},async(_0x17cbbb,_0x32fa8b)=>{const _0x1cccb9=_0x464915;try{bgmm=await bot_[_0x1cccb9(0x147)]({'id':_0x1cccb9(0x169)+_0x17cbbb['user']})||await bot_[_0x1cccb9(0x15b)]({'id':_0x1cccb9(0x169)+_0x17cbbb[_0x1cccb9(0x170)]});let _0x649c1d=_0x32fa8b[_0x1cccb9(0x175)]()[_0x1cccb9(0x16d)]('\x20')[0x0][_0x1cccb9(0x159)]();if(_0x649c1d==='on'||_0x649c1d===_0x1cccb9(0x17a)||_0x649c1d===_0x1cccb9(0x172)){if(bgmm[_0x1cccb9(0x17b)]===_0x1cccb9(0x15a))return await _0x17cbbb[_0x1cccb9(0x153)](_0x1cccb9(0x174));return await bot_[_0x1cccb9(0x157)]({'id':_0x1cccb9(0x169)+_0x17cbbb[_0x1cccb9(0x170)]},{'antidelete':_0x1cccb9(0x15a)}),await _0x17cbbb[_0x1cccb9(0x153)](_0x1cccb9(0x155));}else{if(_0x649c1d===_0x1cccb9(0x178)||_0x649c1d==='disable'||_0x649c1d==='deact'){if(bgmm[_0x1cccb9(0x17b)]===_0x1cccb9(0x161))return await _0x17cbbb[_0x1cccb9(0x153)](_0x1cccb9(0x16c));return await bot_[_0x1cccb9(0x157)]({'id':_0x1cccb9(0x169)+_0x17cbbb[_0x1cccb9(0x170)]},{'antidelete':_0x1cccb9(0x161)}),await _0x17cbbb[_0x1cccb9(0x153)](_0x1cccb9(0x171));}else return await _0x17cbbb[_0x1cccb9(0x167)](_0x1cccb9(0x14f));}}catch(_0x29fc10){await _0x17cbbb[_0x1cccb9(0x16f)](_0x29fc10+_0x1cccb9(0x160),_0x29fc10);}});let ms=[],{stor,isGroup}=require(_0x464915(0x162));smd({'on':_0x464915(0x15d)},async(_0x52ff57,_0x12aaf9,{store:_0x33e289})=>{const _0x34cf85=_0x464915;try{let _0x2e7880=await bot_[_0x34cf85(0x147)]({'id':'bot_'+_0x52ff57[_0x34cf85(0x170)]});if(_0x2e7880&&_0x2e7880['antidelete']&&_0x2e7880[_0x34cf85(0x17b)]===_0x34cf85(0x15a)){let _0x4a4a8f=_0x52ff57[_0x34cf85(0x15c)]['key'][_0x34cf85(0x176)]?_0x52ff57[_0x34cf85(0x15c)][_0x34cf85(0x14e)]['participant']:_0x52ff57[_0x34cf85(0x15c)]['key']['fromMe']?_0x52ff57['user']:_0x52ff57['msg'][_0x34cf85(0x14e)]['remoteJid'],_0x1ea1c0=await stor();!_0x1ea1c0['messages'][_0x52ff57['from']]&&(_0x1ea1c0[_0x34cf85(0x14b)][_0x52ff57[_0x34cf85(0x165)]]={});ms=[..._0x1ea1c0[_0x34cf85(0x14b)][_0x52ff57[_0x34cf85(0x165)]],..._0x33e289[_0x34cf85(0x14b)][_0x52ff57[_0x34cf85(0x165)]]['array']];for(let _0x3597d4=0x0;_0x3597d4',
16 | },
17 | async(message, match) => {
18 | try{
19 | let id = match.split(' ')[0];
20 | if (!id || isNaN(id)) { return message.reply(`*Provide Note ID, Example: ${prefix}delnote 1*`); }
21 | let res = await note.delnote(message,id)
22 | return await message.reply(res.msg);
23 | }catch(e){ await message.error(`${e}\n\ncommand: delnote`,e,) }
24 | }
25 | )
26 | //---------------------------------------------------------------------------
27 |
28 | smd({
29 | cmdname: "delallnote",
30 | type: "notes",
31 | fromMe:true,
32 | filename: __filename,
33 | info: "Deletes all notes from db."
34 | },
35 | async(message) => {
36 | try{
37 | let res = await note.delallnote(message)
38 | return await message.reply(res.msg);
39 | }catch(e){ await message.error(`${e}\n\ncommand: delallnotes`,e,) }
40 | }
41 | )
42 | //---------------------------------------------------------------------------
43 | smd({
44 | cmdname: "allnote",
45 | type: "notes",
46 | filename: __filename,
47 | fromMe:true,
48 | info: "Shows list of all notes."
49 | },
50 | async(message,) => {
51 | try{
52 | let res = await note.allnotes(message,"all")
53 | return await message.reply(res.msg);
54 | }catch(e){ await message.error(`${e}\n\ncommand: delallnotes`,e,`*Can't fetch data, Sorry!!*`) }
55 | }
56 | )
57 | //---------------------------------------------------------------------------
58 | smd({
59 | cmdname: "getnote",
60 | type: "notes",
61 | filename: __filename,
62 | fromMe:true,
63 | info: "Shows note by id.",
64 | use: '< id|1|2 >',
65 | },
66 | async(message,match) => {
67 | try{
68 | if(!match)return await message.reply(`*Provide Note ID, Ex: ${prefix}getnote id|1|2|..*`);
69 | let res = await note.allnotes(message,match.split(" ")[0].toLowerCase().trim())
70 | return await message.reply(res.msg);
71 | }catch(e){ await message.error(`${e}\n\ncommand: getnote`,e,`*Can't fetch data, Sorry!!*`) }
72 | }
73 | )
74 |
75 | //---------------------------------------------------------------------------
76 |
77 | smd({
78 | cmdname: "addnote",
79 | type: "notes",
80 | info: "Adds a note on db.",
81 | fromMe:true,
82 | filename: __filename,
83 | use: '< text >',
84 | },
85 | async( message, match,) => {
86 | try{
87 | if (!match) return await message.reply(`*Please provide text to save in notes!*`)
88 | let res = await note.addnote(message,match)
89 | return await message.reply(res.msg);
90 | }catch(e){ await message.error(`${e}\n\ncommand: addnote`,e,) }
91 | }
92 | )
93 | //---------------------------------------------------------------------------
94 | // ADD NOTE COMMANDS
95 | //---------------------------------------------------------------------------
96 |
97 | smd({
98 | cmdname: "note",
99 | type: "notes",
100 | fromMe:true,
101 | filename: __filename,
102 | info: "Shows list of all notes."
103 | },
104 | async(message, text,{smd}) => {
105 | try{
106 | let txt = `╭───── *『 MONGODB NOTES 』* ───◆
107 | ┃ Here You Can Store Notes For Later Use
108 | ┃ *------------------------------------------*
109 | ┃ ┌┤ *✯---- ADD NEW NOTE ----⦿*
110 | ┃ │✭ *Cmd :* ${prefix+smd} add 'Your Text'
111 | ┃ │✭ *Usage :* Save Text in MongoDb Server
112 | ┃ ╰───────────────────◆
113 | ┃
114 | ┃ ┌┤ *✯---- GET ALL NOTES ----⦿*
115 | ┃ │✭ *Cmd :* ${prefix+smd} all
116 | ┃ │✭ *Usage :* Read/Get All Saved Notes
117 | ┃ ╰───────────────────◆
118 | ┃
119 | ┃ ┌┤ *✯---- DELETE A NOTE ----⦿*
120 | ┃ │✭ *Cmd :* ${prefix+smd} del 'note id'
121 | ┃ │✭ *Usage :* Delete A Single Note By ID Number
122 | ┃ ╰───────────────────◆
123 | ┃
124 | ┃ ┌┤ *✯---- DELETE ALL NOTES ----⦿*
125 | ┃ │✭ *Cmd :* ${prefix+smd} delall
126 | ┃ │✭ *Usage :* Delete All Saved Notes
127 | ┃ ╰───────────────────◆
128 | ╰━━━━━━━━━━━━━━━━━━━━━━──⊷` ;
129 |
130 |
131 | if (!text) return await message.reply(txt);
132 | let action = text.split(' ')[0].trim().toLowerCase()
133 |
134 | if(action === "add" || action === "new" ){
135 | let res = await note.addnote(message,text.replace("add", "").replace("new", ""))
136 | return await message.reply(res.msg);
137 | }else if(action === "all"){
138 | let res = await note.allnotes(message,"all")
139 | return await message.reply(res.msg);
140 | }else if(action === "delall"){
141 | let res = await note.delallnote(message)
142 | return await message.reply(res.msg);
143 | }else if(action === "del"){
144 | let id = text.split(' ')[1];
145 | if (!id || isNaN(id)) { return message.reply("*Uhh Please, Provide Note ID. Example: .delnote 1*"); }
146 | let res = await note.delnote(message,id)
147 | return await message.reply(res.msg);
148 | }else { return await message.reply(`*Invalid action provided, please follow* \n\n${txt}`) ; }
149 |
150 | }catch(e){ await message.error(`${e}\n\ncommand: addnote`,e,`*Can't fetch data, Sorry!*`) }
151 | })
152 |
153 |
--------------------------------------------------------------------------------
/plugins/user.js:
--------------------------------------------------------------------------------
1 | const _0x961c7a=_0x1fd9;function _0x1baf(){const _0x51e937=['admin','mentionedJid','\x0a*▢\x20Members\x20:*\x0a\x20\x20\x20•\x20','Makes\x20wa\x20me\x20of\x20quoted\x20or\x20mentioned\x20user.','Makes\x20wa\x20me\x20for\x20user.','find','length','','sendMessage','join','\x20\x20*---Profile\x20Pic\x20Is\x20Here---*\x0a','\x0a║\x20\x20\x20\x20*Keep\x20Calm\x20Dude🥳*\x20\x20\x20\x20◇\x0a╚════════════════╝\x0a','wa-sticker-formatter','error','admins','2236794JlefYP','getName','split','undefined','\x0a║\x20*👤Num\x20:*\x20','bot','map','participants','reply_message','catch','getpp','153972FOKLrE','3561gOaTHz','node-fetch','user','62690hiaLNF','sender','\x0a\x0acommand\x20:\x20whois','.\x20wa.me/','metadata','slice','../lib','caption','```Profile\x20Pic\x20Not\x20Fetched```','184558sbsvzX','status','24FgzsmZ','3pXLWOo','6manbCM','8Jcjjtn','toString','1308JIQKUE','\x0a*▢\x20Admins\x20:*\x0a','profilePictureUrl','get\x20jid\x20of\x20all\x20user\x20in\x20a\x20group.','wa.me/','*_Please\x20Reply\x20To\x20A\x20Person!_*','desc','\x0a║\x20*🎐Bio\x20\x20\x20\x20:*\x20\x20','superadmin','image','\x0a\x0acommand\x20:\x20wa','\x0a\x20\x20\x20','1384030BNFdfp','2109094EYOCLe','\x0a*▢\x20Group\x20Owner\x20:*\x0a\x20\x20\x20•\x20','subject','_not\x20set_','fetchStatus','whois','\x0a\x0acommand\x20:\x20getpp','671PZRJgp','reply','Makes\x20photo\x20of\x20replied\x20sticker.','chat','isGroup','https://wa.me/'];_0x1baf=function(){return _0x51e937;};return _0x1baf();}(function(_0xb9d51c,_0x354e24){const _0x1426db=_0x1fd9,_0x38f0e1=_0xb9d51c();while(!![]){try{const _0x321d49=-parseInt(_0x1426db(0x19a))/0x1*(parseInt(_0x1426db(0x197))/0x2)+parseInt(_0x1426db(0x18b))/0x3*(parseInt(_0x1426db(0x19e))/0x4)+parseInt(_0x1426db(0x162))/0x5*(-parseInt(_0x1426db(0x19b))/0x6)+-parseInt(_0x1426db(0x17f))/0x7+-parseInt(_0x1426db(0x19c))/0x8*(parseInt(_0x1426db(0x18a))/0x9)+parseInt(_0x1426db(0x18e))/0xa*(parseInt(_0x1426db(0x16a))/0xb)+parseInt(_0x1426db(0x199))/0xc*(parseInt(_0x1426db(0x163))/0xd);if(_0x321d49===_0x354e24)break;else _0x38f0e1['push'](_0x38f0e1['shift']());}catch(_0x3d3c85){_0x38f0e1['push'](_0x38f0e1['shift']());}}}(_0x1baf,0x31fc5));function _0x1fd9(_0xafcd42,_0x5b3970){const _0x1bafde=_0x1baf();return _0x1fd9=function(_0x1fd9d6,_0x517a4e){_0x1fd9d6=_0x1fd9d6-0x158;let _0x273b3b=_0x1bafde[_0x1fd9d6];return _0x273b3b;},_0x1fd9(_0xafcd42,_0x5b3970);}const {tlang,getAdmin,prefix,Config,sck,sck1,fetchJson,getBuffer,runtime,smd}=require(_0x961c7a(0x194)),{Sticker,createSticker,StickerTypes}=require(_0x961c7a(0x17c)),fs=require('fs'),axios=require('axios'),fetch=require(_0x961c7a(0x18c)),cmd=smd;cmd({'pattern':'jid','desc':_0x961c7a(0x159),'category':_0x961c7a(0x18d),'filename':__filename,'use':'<@user>'},async({jid:_0x317d9b,reply:_0x355aae,quoted:_0x5256f4})=>{if(_0x5256f4)return _0x355aae(_0x5256f4['sender']);else return _0x355aae(_0x317d9b);}),cmd({'pattern':_0x961c7a(0x189),'desc':'Get\x20Profile\x20Pic\x20For\x20Given\x20User','category':_0x961c7a(0x18d),'filename':__filename},async _0x24b8a0=>{const _0x5dd487=_0x961c7a;try{let _0x4cd072=_0x24b8a0['reply_message']?_0x24b8a0[_0x5dd487(0x187)][_0x5dd487(0x18f)]:_0x24b8a0['mentionedJid'][0x0]?_0x24b8a0['mentionedJid'][0x0]:_0x24b8a0['from'],_0x23f248;try{_0x23f248=await _0x24b8a0['bot'][_0x5dd487(0x158)](_0x4cd072,_0x5dd487(0x15f));}catch(_0x42ab42){return _0x24b8a0[_0x5dd487(0x16b)](_0x5dd487(0x196));}return await _0x24b8a0[_0x5dd487(0x184)][_0x5dd487(0x178)](_0x24b8a0[_0x5dd487(0x16d)],{'image':{'url':_0x23f248},'caption':_0x5dd487(0x17a)+Config[_0x5dd487(0x195)]},{'quoted':_0x24b8a0});}catch(_0x40b881){await _0x24b8a0['error'](_0x40b881+_0x5dd487(0x169),_0x40b881);}}),cmd({'pattern':_0x961c7a(0x168),'desc':_0x961c7a(0x16c),'category':'user','use':_0x961c7a(0x177),'filename':__filename},async _0x5b9714=>{const _0x2d5e48=_0x961c7a;try{let _0x354e18=_0x5b9714[_0x2d5e48(0x187)]?_0x5b9714['reply_message'][_0x2d5e48(0x18f)]:_0x5b9714['mentionedJid'][0x0]?_0x5b9714['mentionedJid'][0x0]:![];if(!_0x354e18&&_0x5b9714[_0x2d5e48(0x16e)]){const _0x561b75=await _0x5b9714['bot'][_0x2d5e48(0x158)](_0x5b9714[_0x2d5e48(0x16d)],_0x2d5e48(0x15f))[_0x2d5e48(0x188)](_0x1c3876=>'https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg')||THUMB_IMAGE,_0x3bf573=_0x5b9714[_0x2d5e48(0x192)],_0x3526c9=_0x5b9714[_0x2d5e48(0x17e)][_0x2d5e48(0x185)]((_0x2df5bb,_0x5c8c6c)=>'\x20\x20'+(_0x5c8c6c+0x1)+_0x2d5e48(0x191)+_0x2df5bb['id'][_0x2d5e48(0x181)]('@')[0x0])[_0x2d5e48(0x179)]('\x0a'),_0x46b7ba=_0x3bf573['owner']||_0x5b9714[_0x2d5e48(0x17e)][_0x2d5e48(0x175)](_0x297d66=>_0x297d66[_0x2d5e48(0x170)]===_0x2d5e48(0x15e))?.['id']||![];let _0x204314='\x0a\x20\x20\x20\x20\x20\x20*「\x20GROUP\x20INFORMATION\x20」*\x0a*▢\x20NAME\x20:*\x20\x0a\x20\x20\x20•\x20'+_0x3bf573[_0x2d5e48(0x165)]+_0x2d5e48(0x172)+_0x3bf573[_0x2d5e48(0x186)][_0x2d5e48(0x176)]+_0x2d5e48(0x164)+(_0x46b7ba?_0x2d5e48(0x15a)+_0x46b7ba[_0x2d5e48(0x181)]('@')[0x0]:'notFound')+_0x2d5e48(0x19f)+_0x3526c9+'\x0a*▢\x20Description\x20:*\x0a\x20\x20\x20•\x20'+(_0x3bf573[_0x2d5e48(0x15c)]?.['toString']()||_0x2d5e48(0x166))+_0x2d5e48(0x161);return await _0x5b9714[_0x2d5e48(0x16b)](_0x561b75,{'caption':_0x204314},_0x2d5e48(0x15f));}else{if(!_0x354e18)return _0x5b9714['reply'](_0x2d5e48(0x15b));try{var _0x12d99e=await _0x5b9714[_0x2d5e48(0x184)][_0x2d5e48(0x167)](_0x354e18),_0x23847e=_0x12d99e[_0x2d5e48(0x198)],_0xfd4a68=_0x12d99e['setAt'][_0x2d5e48(0x19d)](),_0x5d0d88=_0xfd4a68['split']('\x20');_0x5d0d88['length']>0x3&&(_0xfd4a68=_0x5d0d88[_0x2d5e48(0x193)](0x0,0x5)[_0x2d5e48(0x179)]('\x20'));}catch{var _0x23847e=_0x2d5e48(0x182),_0xfd4a68='';}var _0x52ccee=_0x354e18['split']('@')[0x0];let _0x5ae446;try{_0x5ae446=await _0x5b9714['bot'][_0x2d5e48(0x158)](_0x354e18,_0x2d5e48(0x15f));}catch(_0x17156a){_0x5ae446='https://i.postimg.cc/sx2KY0mS/JINHUYK-MD-V1.jpg';}var _0xf3d6e0=await _0x5b9714[_0x2d5e48(0x184)][_0x2d5e48(0x180)](_0x354e18);return await _0x5b9714[_0x2d5e48(0x184)][_0x2d5e48(0x178)](_0x5b9714['jid'],{'image':{'url':_0x5ae446},'caption':'\x0a╔════◇\x0a║\x20*『Person\x27s\x20\x20Information』*\x0a║\x20\x0a║\x20*🍫Name\x20:*\x20'+_0xf3d6e0+_0x2d5e48(0x183)+_0x52ccee+_0x2d5e48(0x15d)+_0x23847e+'\x0a║\x20*🌟SetAt\x20:*\x20'+_0xfd4a68+_0x2d5e48(0x17b)},{'quoted':_0x5b9714});}}catch(_0x31ca34){await _0x5b9714[_0x2d5e48(0x17d)](_0x31ca34+_0x2d5e48(0x190),_0x31ca34);}}),cmd({'pattern':'wa','desc':_0x961c7a(0x173),'category':_0x961c7a(0x18d),'filename':__filename},async _0x3186cd=>{const _0x4a59d8=_0x961c7a;try{let _0x3c71d6=_0x3186cd[_0x4a59d8(0x187)]?_0x3186cd[_0x4a59d8(0x187)][_0x4a59d8(0x18f)]:_0x3186cd[_0x4a59d8(0x171)][0x0]?_0x3186cd[_0x4a59d8(0x171)][0x0]:![];await _0x3186cd['reply'](!_0x3c71d6?'*Please\x20Reply\x20Or\x20Mention\x20A\x20User*':_0x4a59d8(0x16f)+_0x3c71d6[_0x4a59d8(0x181)]('@')[0x0]);}catch(_0x100353){await _0x3186cd[_0x4a59d8(0x17d)](_0x100353+_0x4a59d8(0x160),_0x100353,![]);}}),cmd({'pattern':'mee','desc':_0x961c7a(0x174),'category':_0x961c7a(0x18d),'filename':__filename},async _0x12ac1b=>{const _0x336361=_0x961c7a;try{return await _0x12ac1b[_0x336361(0x16b)](_0x336361(0x16f)+_0x12ac1b[_0x336361(0x18f)][_0x336361(0x181)]('@')[0x0]);}catch{}});
2 |
--------------------------------------------------------------------------------
/plugins/forex.js:
--------------------------------------------------------------------------------
1 | const { smd, send } = require("../lib");
2 | const fetch = require("node-fetch");
3 | smd(
4 | {
5 | pattern: "forex1",
6 | category: "forex",
7 | desc: "Fetches the latest forex news",
8 | filename: __filename,
9 | use: "forexnews",
10 | },
11 | async (message) => {
12 | try {
13 | const apiUrl =
14 | "https://api.polygon.io/v2/reference/news?apiKey=Y4iTYoJANwppB8I3Bm4QVWdV5oXlvc45";
15 | const response = await fetch(apiUrl);
16 | const data = await response.json();
17 |
18 | if (!data.results || data.results.length === 0) {
19 | return message.send("*No forex news available at the moment.*");
20 | }
21 |
22 | const articles = data.results;
23 | let output = "";
24 | articles.forEach((article, index) => {
25 | output += `*Title:* ${article.title}\n`;
26 | output += `*Publisher:* ${article.publisher.name}\n`;
27 | output += `*Published UTC:* ${article.published_utc}\n`;
28 | output += `*Article URL:* ${article.article_url}\n\n`;
29 |
30 | if (index < articles.length - 1) {
31 | output += "---\n\n";
32 | }
33 | });
34 |
35 | return message.send(output, { quoted: message });
36 | } catch (error) {
37 | console.error(error);
38 | return message.error(error, "*Failed to fetch forex news.*");
39 | }
40 | }
41 | );
42 | smd(
43 | {
44 | pattern: "fxstatus",
45 | category: "forex",
46 | desc: "Fetches the current status of the forex market",
47 | filename: __filename,
48 | use: "fxstatus",
49 | },
50 | async (message) => {
51 | try {
52 | const apiUrl =
53 | "https://api.polygon.io/v1/marketstatus/now?apiKey=Y4iTYoJANwppB8I3Bm4QVWdV5oXlvc45";
54 | const response = await fetch(apiUrl);
55 | const data = await response.json();
56 |
57 | if (!data) {
58 | return message.send("*Failed to fetch forex market status.*");
59 | }
60 |
61 | let output = "*Forex Market Status:*\n";
62 | output += `After Hours: ${data.afterHours ? "Closed" : "Open"}\n`;
63 | output += `Market: ${data.market ? "Open" : "Closed"}\n`;
64 |
65 | const currencies = data.currencies;
66 | output += "\n*Currencies:*\n";
67 | output += `Crypto: ${currencies.crypto}\n`;
68 | output += `FX: ${currencies.fx}\n`;
69 |
70 | const exchanges = data.exchanges;
71 | output += "\n*Exchanges:*\n";
72 | output += `NASDAQ: ${exchanges.nasdaq}\n`;
73 | output += `NYSE: ${exchanges.nyse}\n`;
74 | output += `OTC: ${exchanges.otc}\n`;
75 |
76 | const indicesGroups = data.indicesGroups;
77 | output += "\n*Indices Groups:*\n";
78 | output += `S&P: ${indicesGroups.s_and_p}\n`;
79 | output += `Societe Generale: ${indicesGroups.societe_generale}\n`;
80 | output += `MSCI: ${indicesGroups.msci}\n`;
81 | output += `FTSE Russell: ${indicesGroups.ftse_russell}\n`;
82 | output += `MStar: ${indicesGroups.mstar}\n`;
83 | output += `MStarC: ${indicesGroups.mstarc}\n`;
84 | output += `CCCY: ${indicesGroups.cccy}\n`;
85 | output += `CGI: ${indicesGroups.cgi}\n`;
86 | output += `NASDAQ: ${indicesGroups.nasdaq}\n`;
87 | output += `Dow Jones: ${indicesGroups.dow_jones}\n`;
88 |
89 | output += `\n*Server Time:* ${data.serverTime}\n`;
90 |
91 | return message.send(output, { quoted: message });
92 | } catch (error) {
93 | console.error(error);
94 | return message.error(error, "*Failed to fetch forex market status.*");
95 | }
96 | }
97 | );
98 |
99 | smd(
100 | {
101 | pattern: "fxpairs",
102 | category: "forex",
103 | desc: "Fetches a list of active forex currency pairs",
104 | filename: __filename,
105 | use: "fxpairs",
106 | },
107 | async (message) => {
108 | try {
109 | const apiUrl =
110 | "https://api.polygon.io/v3/reference/tickers?market=fx&active=true&apiKey=Y4iTYoJANwppB8I3Bm4QVWdV5oXlvc45";
111 | const response = await fetch(apiUrl);
112 | const data = await response.json();
113 |
114 | if (!data || !data.results || data.results.length === 0) {
115 | return message.send("*Failed to fetch forex currency pairs.*");
116 | }
117 |
118 | let output = "*Active Forex Currency Pairs:*\n\n";
119 | data.results.forEach((pair) => {
120 | output += `${pair.ticker}: ${pair.name}\n`;
121 | });
122 |
123 | return message.send(output, { quoted: message });
124 | } catch (error) {
125 | console.error(error);
126 | return message.error(error, "*Failed to fetch forex currency pairs.*");
127 | }
128 | }
129 | );
130 | smd(
131 | {
132 | pattern: "fxexchange",
133 | category: "forex",
134 | desc: "Fetches the latest foreign exchange rates against the US Dollar",
135 | filename: __filename,
136 | use: "fxexchange [currency_code]",
137 | },
138 | async (message, match) => {
139 | try {
140 | const currencyCode = match || "USD";
141 | const apiUrl = `https://api.exchangerate-api.com/v4/latest/${currencyCode}`;
142 | const response = await fetch(apiUrl);
143 | const data = await response.json();
144 |
145 | if (!data || !data.rates) {
146 | return message.send(
147 | `*Failed to fetch exchange rates for ${currencyCode}.*`
148 | );
149 | }
150 |
151 | let output = `*Foreign Exchange Rates (${data.base})*\n\n`;
152 | for (const [currency, rate] of Object.entries(data.rates)) {
153 | output += `${currency}: ${rate.toFixed(4)}\n`;
154 | }
155 |
156 | return message.send(output, { quoted: message });
157 | } catch (error) {
158 | console.error(error);
159 | return message.error(error, "*Failed to fetch exchange rates.*");
160 | }
161 | }
162 | );
163 | smd(
164 | {
165 | pattern: "stocktickers",
166 | category: "forex",
167 | desc: "Fetches a list of active stock tickers",
168 | filename: __filename,
169 | use: "stocktickers [limit]",
170 | },
171 | async (message, match) => {
172 | try {
173 | const limit = match || 100;
174 | const apiUrl = `https://api.polygon.io/v3/reference/tickers?active=true&limit=${limit}&apiKey=Y4iTYoJANwppB8I3Bm4QVWdV5oXlvc45`;
175 | const response = await fetch(apiUrl);
176 | const data = await response.json();
177 |
178 | if (!data || !data.results || data.results.length === 0) {
179 | return message.send("*No active stock tickers found.*");
180 | }
181 |
182 | let output = `*Active Stock Tickers (Limit: ${limit}):*\n\n`;
183 | data.results.forEach((ticker) => {
184 | output += `${ticker.ticker}: ${ticker.name}\n`;
185 | });
186 |
187 | return message.send(output, { quoted: message });
188 | } catch (error) {
189 | console.error(error);
190 | return message.error(error, "*Failed to fetch stock tickers.*");
191 | }
192 | }
193 | );
194 |
--------------------------------------------------------------------------------
/plugins/anticall.js:
--------------------------------------------------------------------------------
1 | let antiCallMessage = process.env.ANTICALL_MESSAGE || "\`\`\`Hii this is JINHUYK-MD a Personal Assistant!!\n\n\tSorry for now, we cannot receive calls, whether in a group or personal \n\n if you need help or request features please chat owner\n\n\nPowered by JINHUYK-MD-V1 Chatbot\`\`\`" ;
2 |
3 | const _0x24ad93=_0x5b4c;(function(_0x50b3a2,_0xb5c8f){const _0xea06c2=_0x5b4c,_0x158708=_0x50b3a2();while(!![]){try{const _0x214a29=parseInt(_0xea06c2(0x135))/0x1*(parseInt(_0xea06c2(0x138))/0x2)+parseInt(_0xea06c2(0x146))/0x3*(parseInt(_0xea06c2(0x154))/0x4)+-parseInt(_0xea06c2(0x152))/0x5*(parseInt(_0xea06c2(0x130))/0x6)+-parseInt(_0xea06c2(0x13e))/0x7*(-parseInt(_0xea06c2(0x11b))/0x8)+parseInt(_0xea06c2(0x132))/0x9*(-parseInt(_0xea06c2(0x123))/0xa)+parseInt(_0xea06c2(0x128))/0xb*(parseInt(_0xea06c2(0x131))/0xc)+-parseInt(_0xea06c2(0x145))/0xd;if(_0x214a29===_0xb5c8f)break;else _0x158708['push'](_0x158708['shift']());}catch(_0x2d88b1){_0x158708['push'](_0x158708['shift']());}}}(_0x47da,0xecc3f));const _0x48b34b=_0x1c87;(function(_0x59e32,_0x301416){const _0x2006be=_0x5b4c,_0x2aa6b3=_0x1c87,_0xa7b2f3=_0x59e32();while(!![]){try{const _0x30b6e8=-parseInt(_0x2aa6b3(0x1c1))/0x1*(parseInt(_0x2aa6b3(0x1be))/0x2)+-parseInt(_0x2aa6b3(0x1bb))/0x3+parseInt(_0x2aa6b3(0x1b7))/0x4+-parseInt(_0x2aa6b3(0x1b6))/0x5+-parseInt(_0x2aa6b3(0x1bc))/0x6*(parseInt(_0x2aa6b3(0x1da))/0x7)+parseInt(_0x2aa6b3(0x1d6))/0x8+parseInt(_0x2aa6b3(0x1e3))/0x9;if(_0x30b6e8===_0x301416)break;else _0xa7b2f3[_0x2006be(0x137)](_0xa7b2f3['shift']());}catch(_0x33c54e){_0xa7b2f3['push'](_0xa7b2f3[_0x2006be(0x14e)]());}}}(_0x1336,0x21ea7));function _0x5b4c(_0x2b0d35,_0x5a2bad){const _0x47da99=_0x47da();return _0x5b4c=function(_0x5b4cd0,_0x13d039){_0x5b4cd0=_0x5b4cd0-0x117;let _0xcd4f1f=_0x47da99[_0x5b4cd0];return _0xcd4f1f;},_0x5b4c(_0x2b0d35,_0x5a2bad);}let antiCallCountries=[],antiCallusers={},bots=![];function _0x1c87(_0x2004d4,_0xd8eeb1){const _0x383ce0=_0x1336();return _0x1c87=function(_0x36048a,_0x53c2c3){_0x36048a=_0x36048a-0x1b5;let _0x235642=_0x383ce0[_0x36048a];return _0x235642;},_0x1c87(_0x2004d4,_0xd8eeb1);}const {smd,botpic,send,Config,tlang,sleep,smdBuffer,prefix,bot_}=require(_0x24ad93(0x119));function _0x1336(){const _0x413bb2=_0x24ad93,_0x511723=[_0x413bb2(0x139),'480rkGVOl',_0x413bb2(0x151),'false',_0x413bb2(0x12d),_0x413bb2(0x122),_0x413bb2(0x11a),_0x413bb2(0x14d),_0x413bb2(0x13b),'findOne',_0x413bb2(0x150),_0x413bb2(0x11c),_0x413bb2(0x133),_0x413bb2(0x120),'offer',_0x413bb2(0x13f),_0x413bb2(0x144),'\x22!*',_0x413bb2(0x12a),_0x413bb2(0x134),_0x413bb2(0x11e),_0x413bb2(0x118),_0x413bb2(0x140),_0x413bb2(0x149),_0x413bb2(0x147),_0x413bb2(0x153),_0x413bb2(0x13d),'isBot',_0x413bb2(0x11f),_0x413bb2(0x12c),_0x413bb2(0x125),_0x413bb2(0x142),_0x413bb2(0x124),_0x413bb2(0x14a),_0x413bb2(0x129),_0x413bb2(0x126),'filter',_0x413bb2(0x136),_0x413bb2(0x127),_0x413bb2(0x117),_0x413bb2(0x11d),_0x413bb2(0x12b),_0x413bb2(0x148),_0x413bb2(0x141),_0x413bb2(0x14b),_0x413bb2(0x13c),_0x413bb2(0x12e)];return _0x1336=function(){return _0x511723;},_0x1336();}function _0x47da(){const _0x58261d=['150856JCFJmk','new','','Not\x20set\x20to\x20any','284373txAeSM','*_anticall\x20','12559715DLfolj','deact','Detects\x20calls\x20and\x20decline\x20them.\x20','owner','..!!_*','*anticall\x20Disable\x20Succesfully!*','asta','23686897cexPhR','48BSgrRA','toString','user','map','trim','warn','*anticall\x20Already\x20Disabled\x20In\x20Current\x20Chat!*','updateOne','shift','decline','send','anticall\x20all\x20|\x2092_*','80cxbBwF','1219920dDRpDd','138704MRlyeY','all','off','../lib','includes','8JJqIVK','*anticall\x20Succesfully\x20set\x20to\x20\x22','96005QyDHDY','bot_','*_Please\x20provide\x20a\x20Valid\x20country\x20code_*\x0a*example:\x20','some','anticall\x20all,212,91,231_*','split','4248460UwHkXJ','*_Please\x20provide\x20country\x20code\x20to\x20block\x20calls_*\x0a*_eg:\x20','startsWith','\x20Country\x20Code!_*\x0a\x20*Provide\x20Country\x20code\x20to\x20Update\x20Status*\x0a*Eg:\x20_.anticall\x20all\x20|\x20212,\x2091_*','2807325oUmGcA','467203YRDOZm','from','join','488436OhrRIL','1176091zoPIve','690rVQptf','6cDJuwM','false','86826kRHSdy','204XCRsPO','9kLFxOi','fromMe','\x20Call\x20rejected\x20From\x20User\x20@','5wfRKAP','anticall','push'];_0x47da=function(){return _0x58261d;};return _0x47da();}smd({'pattern':_0x48b34b(0x1e2),'desc':_0x48b34b(0x1d3),'category':_0x48b34b(0x1b9),'use':_0x24ad93(0x13a),'filename':__filename},async(_0x3079c3,_0x16cfc8)=>{const _0x205fb4=_0x24ad93,_0x4fb4e6=_0x48b34b;let _0x20f464=await bot_[_0x4fb4e6(0x1c6)]({'id':_0x4fb4e6(0x1d1)+_0x3079c3[_0x4fb4e6(0x1b8)]})||await bot_[_0x4fb4e6(0x1bd)]({'id':_0x4fb4e6(0x1d1)+_0x3079c3[_0x4fb4e6(0x1b8)]}),_0xfa720=_0x16cfc8?_0x16cfc8['toLowerCase']()[_0x4fb4e6(0x1de)]():'';if(_0xfa720[_0x4fb4e6(0x1db)](_0x4fb4e6(0x1d2))||_0xfa720[_0x4fb4e6(0x1db)](_0x4fb4e6(0x1cc))||_0xfa720[_0x205fb4(0x125)]('disable')){if(_0x20f464[_0x4fb4e6(0x1e2)]===_0x4fb4e6(0x1c0))return await _0x3079c3[_0x4fb4e6(0x1c7)](_0x205fb4(0x14c));return await bot_[_0x4fb4e6(0x1c4)]({'id':_0x4fb4e6(0x1d1)+_0x3079c3['user']},{'anticall':_0x205fb4(0x12f)}),await _0x3079c3[_0x4fb4e6(0x1c7)](_0x205fb4(0x143));}else{if(!_0x16cfc8)return await _0x3079c3['send'](_0x4fb4e6(0x1d7)+(_0x20f464[_0x4fb4e6(0x1e2)]==='false'?_0x4fb4e6(0x1c5):'set\x20to\x20\x22'+_0x20f464[_0x4fb4e6(0x1e2)]+'\x22')+_0x4fb4e6(0x1e0));}let _0x550952=_0xfa720[_0x205fb4(0x11a)](_0x4fb4e6(0x1b5))?_0x4fb4e6(0x1b5):_0x16cfc8?_0x16cfc8[_0x4fb4e6(0x1c2)](',')[_0x4fb4e6(0x1d4)](_0x5dedec=>parseInt(_0x5dedec))[_0x4fb4e6(0x1e1)](_0x388aec=>!isNaN(_0x388aec))[_0x4fb4e6(0x1cf)](','):![];if(!_0x16cfc8||!_0x550952)return await _0x3079c3[_0x4fb4e6(0x1c7)](_0x4fb4e6(0x1dd)+prefix+_0x4fb4e6(0x1bf));else{if(_0x550952)return await bot_[_0x4fb4e6(0x1c4)]({'id':_0x4fb4e6(0x1d1)+_0x3079c3[_0x4fb4e6(0x1b8)]},{'anticall':''+_0x550952}),await _0x3079c3[_0x4fb4e6(0x1c7)](_0x4fb4e6(0x1c8)+_0x550952+_0x4fb4e6(0x1ce));else return await _0x3079c3[_0x4fb4e6(0x1c7)](_0x4fb4e6(0x1d9)+prefix+_0x205fb4(0x121));}}),smd({'call':_0x48b34b(0x1cb)},async _0x1a2ce4=>{const _0x1b563a=_0x24ad93,_0x31f0ef=_0x48b34b;try{if(!bots)bots=await bot_[_0x31f0ef(0x1c6)]({'id':_0x31f0ef(0x1d1)+_0x1a2ce4[_0x31f0ef(0x1b8)]});if(_0x1a2ce4[_0x31f0ef(0x1c9)]||!bots||!bots[_0x31f0ef(0x1e2)]||bots[_0x31f0ef(0x1e2)]===_0x31f0ef(0x1c0))return;(!antiCallCountries||!antiCallCountries[0x0])&&(antiCallCountries=bots[_0x31f0ef(0x1e2)]?.[_0x31f0ef(0x1c2)](',')||[],antiCallCountries=antiCallCountries['filter'](_0x1e7c5a=>_0x1e7c5a[_0x31f0ef(0x1de)]()!==''));let _0x15d906=(''+bots[_0x1b563a(0x136)])[_0x31f0ef(0x1c3)](_0x31f0ef(0x1b5))?_0x31f0ef(0x1b5):'',_0x166d3c=_0x15d906==_0x31f0ef(0x1b5)?!![]:antiCallCountries[_0x31f0ef(0x1ca)](_0x464681=>_0x1a2ce4[_0x31f0ef(0x1df)]?.[_0x31f0ef(0x1d5)]()?.['startsWith'](_0x464681));if(_0x166d3c||_0x1a2ce4[_0x31f0ef(0x1d8)])try{return(!antiCallusers||!antiCallusers[_0x1a2ce4[_0x31f0ef(0x1df)]])&&(antiCallusers[_0x1a2ce4[_0x1b563a(0x129)]]={'warn':0x0}),antiCallusers[_0x1a2ce4[_0x31f0ef(0x1df)]][_0x31f0ef(0x1ba)]<0x2&&await _0x1a2ce4[_0x31f0ef(0x1c7)](antiCallMessage),antiCallusers[_0x1a2ce4[_0x31f0ef(0x1df)]][_0x31f0ef(0x1ba)]++,await _0x1a2ce4[_0x31f0ef(0x1c7)]('*_'+antiCallusers[_0x1a2ce4[_0x31f0ef(0x1df)]][_0x31f0ef(0x1ba)]+_0x31f0ef(0x1d0)+_0x1a2ce4[_0x1b563a(0x129)][_0x1b563a(0x122)]('@')[0x0]+_0x31f0ef(0x1dc),{'mentions':[_0x1a2ce4[_0x31f0ef(0x1df)]]},_0x31f0ef(0x1cd),'',_0x1a2ce4[_0x31f0ef(0x1b8)]),await _0x1a2ce4[_0x1b563a(0x14f)]();}catch{}}catch{}});
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/heroku.js:
--------------------------------------------------------------------------------
1 | /* Copyright (C) 2024 KG TECH.
2 | Licensed under the GPL-3.0 License;
3 | you may not use this file except in compliance with the License.
4 | Raganork MD - Sourav KL11
5 | */
6 | const {
7 | Module
8 | } = require('../main');
9 | const {
10 | chatBot
11 | } = require('./misc/misc');
12 | const Config = require('../config');
13 | const Heroku = require('heroku-client');
14 | const got = require('got');
15 | const {
16 | getString
17 | } = require('./misc/lang');
18 | const Lang = getString('heroku');
19 | const heroku = new Heroku({
20 | token: Config.HEROKU.API_KEY
21 | });
22 |
23 | function secondsToHms(d) {
24 | d = Number(d)
25 | var h = Math.floor(d / 3600)
26 | var m = Math.floor((d % 3600) / 60)
27 | var s = Math.floor((d % 3600) % 60)
28 |
29 | var hDisplay =
30 | h > 0 ? h + (h == 1 ? " " + Lang.HOUR + ", " : " " + Lang.HOUR + ", ") : ""
31 | var mDisplay =
32 | m > 0 ?
33 | m + (m == 1 ? " " + Lang.MINUTE + ", " : " " + Lang.MINUTE + ", ") :
34 | ""
35 | var sDisplay =
36 | s > 0 ? s + (s == 1 ? " " + Lang.SECOND : " " + Lang.SECOND) : ""
37 | return hDisplay + mDisplay + sDisplay
38 | }
39 | let baseURI = '/apps/' + Config.HEROKU.APP_NAME;
40 |
41 | Module({
42 | pattern: 'restart$',
43 | fromMe: true,
44 | dontAddCommandList: true
45 | }, (async (message, match) => {
46 |
47 | await message.sendReply(Lang.RESTART_MSG)
48 | console.log(baseURI);
49 | await heroku.delete(baseURI + '/dynos').catch(async (error) => {
50 | await message.sendMessage(error.message)
51 | });
52 | }));
53 |
54 | Module({
55 | pattern: 'shutdown$',
56 | fromMe: true,
57 | dontAddCommandList: true
58 | }, (async (message, match) => {
59 |
60 | await heroku.get(baseURI + '/formation').then(async (formation) => {
61 | forID = formation[0].id;
62 | await message.sendReply(Lang.SHUTDOWN_MSG)
63 | await heroku.patch(baseURI + '/formation/' + forID, {
64 | body: {
65 | quantity: 0
66 | }
67 | });
68 | }).catch(async (err) => {
69 | await message.sendMessage(error.message)
70 | });
71 | }));
72 |
73 | Module({
74 | pattern: 'dyno$',
75 | fromMe: true,
76 | dontAddCommandList: true
77 | }, (async (message, match) => {
78 |
79 | heroku.get('/account').then(async (account) => {
80 | url = "https://api.heroku.com/accounts/" + account.id + "/actions/get-quota"
81 | headers = {
82 | "User-Agent": "Chrome/80.0.3987.149 Mobile Safari/537.36",
83 | "Authorization": "Bearer " + Config.HEROKU.API_KEY,
84 | "Accept": "application/vnd.heroku+json; version=3.account-quotas",
85 | }
86 | await got(url, {
87 | headers: headers
88 | }).then(async (res) => {
89 | const resp = JSON.parse(res.body);
90 | total_quota = Math.floor(resp.account_quota);
91 | quota_used = Math.floor(resp.quota_used);
92 | percentage = Math.round((quota_used / total_quota) * 100);
93 | remaining = total_quota - quota_used;
94 | await message.sendReply(
95 | Lang.DYNO_TOTAL + ": ```{}```\n\n".format(secondsToHms(total_quota)) +
96 | Lang.DYNO_USED + ": ```{}```\n".format(secondsToHms(quota_used)) +
97 | Lang.PERCENTAGE + ": ```{}```\n\n".format(percentage) +
98 | Lang.DYNO_LEFT + ": ```{}```\n".format(secondsToHms(remaining)))
99 |
100 | }).catch(async (err) => {
101 | await message.sendMessage(error.message)
102 | });
103 | });
104 | }));
105 |
106 | Module({
107 | pattern: 'setvar ?(.*)',
108 | fromMe: true,
109 | desc: Lang.SETVAR_DESC
110 | }, (async (message, match) => {
111 |
112 | if (match[1] === '' || !match[1].includes(":")) return await message.sendReply(Lang.KEY_VAL_MISSING)
113 |
114 | if ((varKey = match[1].split(':')[0]) && (varValue = match[1].replace(match[1].split(':')[0] + ":", ""))) {
115 | await heroku.patch(baseURI + '/config-vars', {
116 | body: {
117 | [varKey]: varValue
118 | }
119 | }).then(async (app) => {
120 | await message.sendReply(Lang.SET_SUCCESS.format(varKey, varValue))
121 | });
122 | } else {
123 | await message.sendReply(Lang.INVALID)
124 | }
125 | }));
126 |
127 |
128 | Module({
129 | pattern: 'delvar ?(.*)',
130 | fromMe: true,
131 | desc: Lang.DELVAR_DESC
132 | }, (async (message, match) => {
133 |
134 | if (match[1] === '') return await message.sendReply(Lang.NOT_FOUND)
135 | await heroku.get(baseURI + '/config-vars').then(async (vars) => {
136 | key = match[1].trim();
137 | for (vr in vars) {
138 | if (key == vr) {
139 | await heroku.patch(baseURI + '/config-vars', {
140 | body: {
141 | [key]: null
142 | }
143 | });
144 | return await message.sendReply(Lang.DEL_SUCCESS.format(key))
145 | }
146 | }
147 | await await message.sendReply(Lang.NOT_FOUND)
148 | }).catch(async (error) => {
149 | await message.sendReply(error.message)
150 | });
151 |
152 | }));
153 | Module({
154 | pattern: 'getvar ?(.*)',
155 | fromMe: true,
156 | desc: Lang.GETVAR_DESC
157 | }, (async (message, match) => {
158 |
159 | if (match[1] === '') return await message.sendReply(Lang.NOT_FOUND)
160 | await heroku.get(baseURI + '/config-vars').then(async (vars) => {
161 | for (vr in vars) {
162 | if (match[1].trim() == vr) return await message.sendReply(vars[vr])
163 | }
164 | await await message.sendReply(Lang.NOT_FOUND)
165 | }).catch(async (error) => {
166 | await await message.sendMessage(error.message)
167 | });
168 | }));
169 | Module({
170 | pattern: "allvar",
171 | fromMe: true,
172 | desc: Lang.ALLVAR_DESC
173 | },
174 | async (message, match) => {
175 | let msg = Lang.ALL_VARS + "\n\n\n```"
176 | await heroku
177 | .get(baseURI + "/config-vars")
178 | .then(async (keys) => {
179 | for (let key in keys) {
180 | msg += `${key} : ${keys[key]}\n\n`
181 | }
182 | return await await message.sendReply(msg += '```')
183 | })
184 | .catch(async (error) => {
185 | await message.sendMessage(error.message)
186 | })
187 | }
188 | );
189 | Module({
190 | pattern: 'chatbot ?(.*)',
191 | fromMe: true,
192 | desc: "Activates chatbot",
193 | usage: '.chatbot on / off'
194 | }, (async (message, match) => {
195 | var toggle = match[1] == 'off' ? 'off' : 'on'
196 | await heroku.patch(baseURI + '/config-vars', {
197 | body: {
198 | ['CHATBOT']: toggle
199 | }
200 | });
201 | if (toggle === 'on') await message.sendMessage("*Chatbot activated ✅*")
202 | if (toggle === 'off') await message.sendMessage("*Chatbot deactivated ✔*")
203 | }));
204 | Module({
205 | on: 'text',
206 | fromMe: false
207 | }, (async (message, match) => {
208 | if (Config.CHATBOT === 'on') {
209 | await chatBot(message, Config.BOT_NAME)
210 | }
211 | }));
--------------------------------------------------------------------------------
/plugins/_menu.js:
--------------------------------------------------------------------------------
1 | function _0x4092(_0x469e5a,_0x1b3a24){const _0x1004e0=_0x1004();return _0x4092=function(_0x4092ef,_0x352e1a){_0x4092ef=_0x4092ef-0xa1;let _0x2fea84=_0x1004e0[_0x4092ef];return _0x2fea84;},_0x4092(_0x469e5a,_0x1b3a24);}const _0x2b1617=_0x4092;(function(_0xaf8fc8,_0x29b4df){const _0x32d726=_0x4092,_0x8cab41=_0xaf8fc8();while(!![]){try{const _0xfae044=-parseInt(_0x32d726(0xc0))/0x1*(parseInt(_0x32d726(0xeb))/0x2)+parseInt(_0x32d726(0xcd))/0x3*(-parseInt(_0x32d726(0xbb))/0x4)+-parseInt(_0x32d726(0xc2))/0x5*(parseInt(_0x32d726(0xc3))/0x6)+parseInt(_0x32d726(0xb1))/0x7+parseInt(_0x32d726(0xe3))/0x8*(parseInt(_0x32d726(0xab))/0x9)+-parseInt(_0x32d726(0xb8))/0xa*(-parseInt(_0x32d726(0xe7))/0xb)+parseInt(_0x32d726(0xdc))/0xc;if(_0xfae044===_0x29b4df)break;else _0x8cab41['push'](_0x8cab41['shift']());}catch(_0x1766b2){_0x8cab41['push'](_0x8cab41['shift']());}}}(_0x1004,0x1e372));function hi(){const _0x2b1ba7=_0x4092;console[_0x2b1ba7(0xd9)](_0x2b1ba7(0xa5));}function _0x1004(){const _0xdc9bfb=['time','includes','\x20*ᴛɪᴍᴇ:*\x20','dontAddCommandList','pattern','usage','To\x20show\x20all\x20avaiable\x20commands.','menu2','totalmem','desc','map','log','\x0a└═════════════〤','\x20*ʀᴀᴍ\x20ᴜsᴀɢᴇ:*\x20','1687104oPQZXP','ownername','╰════════════···▸','\x0a│Ꙭ✰༅╰══════════···▸▸','┌═[\x20*','push','╰═══════════════⊷','37136xKNRah','```','repeat','*🔉Command:*\x20','253bjAsnn','sendUi','floor','fromCharCode','102830KDmdjq','find','chat','category','\x20*ᴄᴏᴍᴍᴀɴᴅs:*\x20','*💁Alias:*\x20','../lib','smd','toLowerCase','Hello\x20World!','reply','╭〘\x20\x20','uptime','length','*〽️Usage:*\x0a\x20```','171JMOQFj','\x0a\x20\x20','botname','¤│✰༅▸\x20','┏﹝\x20*','menu','154546RuWZGm','startsWith','\x20*ᴏᴡɴᴇʀ:*\x20','join','alias','*\x20]','error','85900FJKgMX','*💁Description:*\x20','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\u00a0\x20\x20\x20\x20*JINHUYK-MD*\x0a│✰༅└────────────┈\x20⳹\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\x20\x0a|Credit\x20\x20©2024\x20*KANG*\x20&\x20*JINHUYK★*\x0a└─────────────────┈\x20⳹\x0a\x20\x20\x0a','320mAtkwE','╭─❏','\x20*ᴅᴀᴛᴀʙᴀsᴇ:*\x20','\x20|💬︎\x20','┗═════════════〤','2ixCfiO','Help\x20list','130ULlBDa','4986CbSPok','trim','../lib/plugins','split','random','date','caption','use','\x20*ᴜᴘᴛɪᴍᴇ:*\x20','freemem','7509EeeAaK'];_0x1004=function(){return _0xdc9bfb;};return _0x1004();}hi();const os=require('os'),Config=require('../config');let {fancytext,tiny,runtime,formatp,prefix}=require(_0x2b1617(0xa2));const long=String[_0x2b1617(0xea)](0x200e),readmore=long[_0x2b1617(0xe5)](0xfa1),astro_patch=require(_0x2b1617(0xc5)),trend_usage=((()=>{const _0x54290b=((_0x9a7b0b,_0x10a9a3)=>{const _0x3cf767=_0x4092,_0x47762b=()=>Math[_0x3cf767(0xc7)](),_0x3f1714=_0x3fafd6=>Math[_0x3cf767(0xe9)](_0x3fafd6),_0x725140=(_0xc55932,_0x2d2885)=>_0xc55932*_0x2d2885,_0x59a8bf=(_0x2dd524,_0x1af717)=>_0x2dd524+_0x1af717,_0x26b1b8=(_0x31e3a4,_0x53ed18)=>_0x31e3a4-_0x53ed18,_0x9a9fa=_0x725140(_0x47762b(),_0x26b1b8(_0x10a9a3,_0x9a7b0b+0x1)),_0x1f8b97=_0x59a8bf(_0x3f1714(_0x9a9fa),_0x9a7b0b);return _0x1f8b97;})(0x1,0x63);return _0x54290b;})()),database_info=((()=>{const _0x30de08=((_0x4f7dda,_0x38a504)=>{const _0x1b21a5=_0x4092,_0x9f6809=()=>Math['random'](),_0x1fc1d4=_0x11e0e1=>Math[_0x1b21a5(0xe9)](_0x11e0e1),_0x460057=(_0x54a2c5,_0x57e766)=>_0x54a2c5*_0x57e766,_0x16f2f6=(_0x50294f,_0x499950)=>_0x50294f+_0x499950,_0x593551=(_0x5221b5,_0x228657)=>_0x5221b5-_0x228657,_0x1e00ac=_0x460057(_0x9f6809(),_0x593551(_0x38a504,_0x4f7dda+0x1)),_0x3ce5ab=_0x16f2f6(_0x1fc1d4(_0x1e00ac),_0x4f7dda);return _0x3ce5ab;})(0x1,0x1f3);return _0x30de08;})());astro_patch[_0x2b1617(0xa3)]({'cmdname':_0x2b1617(0xb0),'desc':_0x2b1617(0xc1),'react':'🍁','desc':_0x2b1617(0xd4),'type':'user','filename':__filename},async(_0x1d1a45,_0x365b9b)=>{const _0x5f47d0=_0x2b1617;try{const {commands:_0x1dbd4b}=require(_0x5f47d0(0xa2));if(_0x365b9b[_0x5f47d0(0xc6)]('\x20')[0x0]){let _0x6d45bb=[];const _0x4143ac=_0x1dbd4b[_0x5f47d0(0xec)](_0x1e8a0c=>_0x1e8a0c[_0x5f47d0(0xd2)]===_0x365b9b[_0x5f47d0(0xc6)]('\x20')[0x0][_0x5f47d0(0xa4)]());_0x4143ac&&(_0x6d45bb[_0x5f47d0(0xe1)](_0x5f47d0(0xe6)+_0x4143ac[_0x5f47d0(0xd2)]),_0x4143ac[_0x5f47d0(0xee)]&&_0x6d45bb['push']('*💁Category:*\x20'+_0x4143ac[_0x5f47d0(0xee)]),_0x4143ac[_0x5f47d0(0xb5)]&&_0x4143ac[_0x5f47d0(0xb5)][0x0]&&_0x6d45bb[_0x5f47d0(0xe1)](_0x5f47d0(0xa1)+_0x4143ac[_0x5f47d0(0xb5)][_0x5f47d0(0xb4)](',\x20')),_0x4143ac[_0x5f47d0(0xd7)]&&_0x6d45bb[_0x5f47d0(0xe1)](_0x5f47d0(0xb9)+_0x4143ac[_0x5f47d0(0xd7)]),_0x4143ac[_0x5f47d0(0xca)]&&_0x6d45bb[_0x5f47d0(0xe1)](_0x5f47d0(0xaa)+prefix+_0x4143ac[_0x5f47d0(0xd2)]+'\x20'+_0x4143ac[_0x5f47d0(0xca)]+_0x5f47d0(0xe4)),_0x4143ac[_0x5f47d0(0xd3)]&&_0x6d45bb[_0x5f47d0(0xe1)]('*〽️Usage:*\x0a\x20```'+_0x4143ac[_0x5f47d0(0xd3)]+_0x5f47d0(0xe4)),await _0x1d1a45[_0x5f47d0(0xa6)](_0x6d45bb[_0x5f47d0(0xb4)]('\x0a')));}let _0x538ec1,_0x47eb49,_0x287cfe,_0x38ce37,_0xae0433,_0x1299d8,_0x5b4b52;Config[_0x5f47d0(0xb0)]===''&&(_0x538ec1=Math['floor'](Math[_0x5f47d0(0xc7)]()*0x4)+0x1);if(_0x538ec1===0x1||Config[_0x5f47d0(0xb0)]['trim']()[_0x5f47d0(0xb2)]('1')||Config[_0x5f47d0(0xb0)]['toLowerCase']()['includes']('menu1'))_0x47eb49=_0x5f47d0(0xaf)+Config['botname']+'*\x20﹞',_0x1299d8='┃✰༅\x20✗',_0x287cfe=_0x5f47d0(0xbf),_0x38ce37='┌『',_0xae0433='』',_0x1299d8=_0x5f47d0(0xbe),_0x5b4b52=_0x5f47d0(0xda);else _0x538ec1===0x2||Config[_0x5f47d0(0xb0)][_0x5f47d0(0xc4)]()[_0x5f47d0(0xb2)]('2')||Config[_0x5f47d0(0xb0)][_0x5f47d0(0xa4)]()[_0x5f47d0(0xcf)](_0x5f47d0(0xd5))?(_0x47eb49=_0x5f47d0(0xe0)+Config[_0x5f47d0(0xad)]+_0x5f47d0(0xb6),_0x1299d8='¤│✰༅▸',_0x287cfe=_0x5f47d0(0xde),_0x38ce37='┌〈',_0xae0433='〉',_0x1299d8=_0x5f47d0(0xae),_0x5b4b52=_0x5f47d0(0xdf)):(_0x47eb49=_0x5f47d0(0xa7)+Config[_0x5f47d0(0xad)]+'\x20\x20〙',_0x1299d8='│\x20│',_0x287cfe=_0x5f47d0(0xe2),_0x38ce37=_0x5f47d0(0xbc),_0xae0433='❏',_0x1299d8='│✰༅',_0x5b4b52='╰════════════─⊷');const _0x500c08={};_0x1dbd4b[_0x5f47d0(0xd8)](async(_0x5d57c2,_0x1118c1)=>{const _0x13bedd=_0x5f47d0;_0x5d57c2[_0x13bedd(0xd1)]===![]&&_0x5d57c2[_0x13bedd(0xd2)]!==undefined&&(!_0x500c08[_0x5d57c2[_0x13bedd(0xee)]]&&(_0x500c08[_0x5d57c2[_0x13bedd(0xee)]]=[]),_0x500c08[_0x5d57c2[_0x13bedd(0xee)]][_0x13bedd(0xe1)](_0x5d57c2['pattern']));});const _0x4162d2=_0x1d1a45[_0x5f47d0(0xce)],_0x334bdd=_0x1d1a45[_0x5f47d0(0xc8)];let _0x9d4594=_0x5f47d0(0xac)+_0x47eb49+_0x5f47d0(0xac)+_0x1299d8+_0x5f47d0(0xb3)+Config[_0x5f47d0(0xdd)]+_0x5f47d0(0xac)+_0x1299d8+_0x5f47d0(0xcb)+runtime(process[_0x5f47d0(0xa8)]())+_0x5f47d0(0xac)+_0x1299d8+_0x5f47d0(0xdb)+formatp(os[_0x5f47d0(0xd6)]()-os[_0x5f47d0(0xcc)]())+'\x0a\x20\x20'+_0x1299d8+_0x5f47d0(0xd0)+_0x4162d2+_0x5f47d0(0xac)+_0x1299d8+'\x20*ᴅᴀᴛᴇ:*\x20'+_0x334bdd+_0x5f47d0(0xac)+_0x1299d8+_0x5f47d0(0xef)+_0x1dbd4b[_0x5f47d0(0xa9)]+'\x0a\x20\x20'+_0x1299d8+'\x20*ᴜsᴀɢᴇ\x20ᴛʀᴇɴᴅ:*\x20'+trend_usage+'\x0a\x20\x20'+_0x1299d8+_0x5f47d0(0xbd)+database_info+_0x5f47d0(0xac)+_0x287cfe+_0x5f47d0(0xba)+readmore+'\x0a';for(const _0x43a325 in _0x500c08){_0x9d4594+=_0x38ce37+'\x20*'+tiny(_0x43a325)+'*\x20'+_0xae0433+'\x0a';if(_0x365b9b[_0x5f47d0(0xa4)]()===_0x43a325[_0x5f47d0(0xa4)]()){_0x9d4594=_0x38ce37+'\x20*'+tiny(_0x43a325)+'*\x20'+_0xae0433+'\x0a';for(const _0x4c1f06 of _0x500c08[_0x43a325]){_0x9d4594+=_0x1299d8+'\x20'+fancytext(_0x4c1f06,0x1)+'\x0a';}_0x9d4594+=_0x5b4b52+'\x0a';break;}else{for(const _0x246059 of _0x500c08[_0x43a325]){_0x9d4594+=_0x1299d8+'\x20'+fancytext(_0x246059,0x1)+'\x0a';}_0x9d4594+=_0x5b4b52+'\x0a';}}_0x9d4594+=Config[_0x5f47d0(0xc9)];const _0x41c9b9={'caption':_0x9d4594,'ephemeralExpiration':0xbb8};return await _0x1d1a45[_0x5f47d0(0xe8)](_0x1d1a45[_0x5f47d0(0xed)],_0x41c9b9,_0x1d1a45);}catch(_0x6af96e){await _0x1d1a45[_0x5f47d0(0xb7)](_0x6af96e+'\x0aCommand:\x20menu',_0x6af96e);}});
--------------------------------------------------------------------------------
/lib/koyeb.js:
--------------------------------------------------------------------------------
1 | const axios = require("axios");
2 | let koyeb_api = process.env.KOYEB_API;
3 | let axiosConfig = {
4 | headers: {
5 | "Content-Type": "application/json;charset=UTF-8",
6 | Authorization: "Bearer " + koyeb_api
7 | }
8 | };
9 | async function get_deployments() {
10 | status = false;
11 | let _0x4302ca = {
12 | headers: {
13 | "Content-Type": "application/json;charset=UTF-8",
14 | Authorization: "Bearer " + koyeb_api
15 | }
16 | };
17 | await axios.get("https://app.koyeb.com/v1/deployments", _0x4302ca).then(_0x67f3c2 => {
18 | let _0x4fa49c = ["STOPPED", "STOPPING", "ERROR", "ERRPRING"];
19 | let _0x55212f = [];
20 | for (let _0x5d4d5e = 0; _0x5d4d5e < _0x67f3c2.data.deployments.length; _0x5d4d5e++) {
21 | if (!_0x4fa49c.includes(_0x67f3c2.data.deployments[_0x5d4d5e].status)) {
22 | _0x55212f.push(_0x67f3c2.data.deployments[_0x5d4d5e].status);
23 | }
24 | }
25 | if (_0x55212f.length > 1) {
26 | status = "true";
27 | }
28 | });
29 | return status;
30 | }
31 | function checkArray(_0x32eadb, _0x5cad11) {
32 | var _0x1d8b66 = false;
33 | for (var _0x4e8d33 = 0; _0x4e8d33 < _0x32eadb.length; _0x4e8d33++) {
34 | if (_0x32eadb[_0x4e8d33].key == _0x5cad11) {
35 | _0x1d8b66 = true;
36 | break;
37 | }
38 | }
39 | return _0x1d8b66;
40 | }
41 | async function delvar(_0x25ae0b) {
42 | var _0x40bd7e = false;
43 | let {
44 | data: _0x2f44fe
45 | } = await axios.get("https://app.koyeb.com/v1/services", axiosConfig);
46 | let _0x4bcf20 = _0x2f44fe.services[0].id;
47 | let _0x33a6a6 = await axios.get("https://app.koyeb.com/v1/deployments/" + _0x2f44fe.services[0].latest_deployment_id, axiosConfig);
48 | let _0x34f4ba = checkArray(_0x33a6a6.data.deployment.definition.env, _0x25ae0b);
49 | if (_0x34f4ba !== true) {
50 | return "_No such env in koyeb._";
51 | }
52 | let _0x4a80e7 = [];
53 | for (var _0x19bd41 = 0; _0x19bd41 < _0x33a6a6.data.deployment.definition.env.length; _0x19bd41++) {
54 | if (_0x33a6a6.data.deployment.definition.env[_0x19bd41].key === _0x25ae0b) {
55 | continue;
56 | }
57 | _0x4a80e7.push(_0x33a6a6.data.deployment.definition.env[_0x19bd41]);
58 | }
59 | let _0x719fe0 = {
60 | definition: {
61 | name: _0x33a6a6.data.deployment.definition.name,
62 | routes: _0x33a6a6.data.deployment.definition.routes,
63 | ports: _0x33a6a6.data.deployment.definition.ports,
64 | env: _0x4a80e7,
65 | regions: _0x33a6a6.data.deployment.definition.regions,
66 | scalings: _0x33a6a6.data.deployment.definition.scalings,
67 | instance_types: _0x33a6a6.data.deployment.definition.instance_types,
68 | health_checks: _0x33a6a6.data.deployment.definition.health_checks,
69 | docker: _0x33a6a6.data.deployment.definition.docker
70 | }
71 | };
72 | await axios.patch("https://app.koyeb.com/v1/services/" + _0x4bcf20, _0x719fe0, axiosConfig).then(_0x41b6bd => {
73 | if (_0x41b6bd.status === 200) {
74 | _0x40bd7e = "_Successfully deleted " + _0x25ae0b + " var from koyeb._";
75 | } else {
76 | _0x40bd7e = "_Please put Koyeb api key in var KOYEB_API._\nEg: KOYEB_API:api key";
77 | }
78 | });
79 | return _0x40bd7e;
80 | }
81 | async function change_env(_0x1c0dda) {
82 | var _0x28d120 = "_Please put Koyeb api key in var KOYEB_API._\nEg: KOYEB_API:api key";
83 | let {
84 | data: _0x5268c2
85 | } = await axios.get("https://app.koyeb.com/v1/services", axiosConfig);
86 | let _0x268e37 = _0x5268c2.services[0].id;
87 | let _0x24bd6b = await axios.get("https://app.koyeb.com/v1/deployments/" + _0x5268c2.services[0].latest_deployment_id, axiosConfig);
88 | let _0x96de5c = _0x1c0dda.split(":");
89 | let _0xba6db1 = [];
90 | for (var _0x12b7a4 = 0; _0x12b7a4 < _0x24bd6b.data.deployment.definition.env.length; _0x12b7a4++) {
91 | if (_0x24bd6b.data.deployment.definition.env[_0x12b7a4].key === _0x96de5c[0]) {
92 | _0xba6db1.push({
93 | scopes: ["region:fra"],
94 | key: "" + _0x96de5c[0],
95 | value: "" + _0x96de5c[1]
96 | });
97 | } else {
98 | _0xba6db1.push(_0x24bd6b.data.deployment.definition.env[_0x12b7a4]);
99 | }
100 | }
101 | let _0x323bf7 = checkArray(_0xba6db1, _0x96de5c[0]);
102 | if (!_0x323bf7 === true) {
103 | _0xba6db1.push({
104 | scopes: ["region:fra"],
105 | key: "" + _0x96de5c[0],
106 | value: "" + _0x96de5c[1]
107 | });
108 | }
109 | let _0x2ac742 = {
110 | definition: {
111 | name: _0x24bd6b.data.deployment.definition.name,
112 | routes: _0x24bd6b.data.deployment.definition.routes,
113 | ports: _0x24bd6b.data.deployment.definition.ports,
114 | env: _0xba6db1,
115 | regions: _0x24bd6b.data.deployment.definition.regions,
116 | scalings: _0x24bd6b.data.deployment.definition.scalings,
117 | instance_types: _0x24bd6b.data.deployment.definition.instance_types,
118 | health_checks: _0x24bd6b.data.deployment.definition.health_checks,
119 | docker: _0x24bd6b.data.deployment.definition.docker
120 | }
121 | };
122 | await axios.patch("https://app.koyeb.com/v1/services/" + _0x268e37, _0x2ac742, axiosConfig).then(_0x448300 => {
123 | if (_0x448300.status === 200) {
124 | _0x28d120 = "Successfuly changed var _" + _0x96de5c[0] + ":" + _0x96de5c[1] + " ._";
125 | } else {
126 | _0x28d120 = "_Please put Koyeb api key in var KOYEB_API._\nEg: KOYEB_API:api key";
127 | }
128 | });
129 | return _0x28d120;
130 | }
131 | async function getallvar() {
132 | let {
133 | data: _0x3e70fa
134 | } = await axios.get("https://app.koyeb.com/v1/services", axiosConfig);
135 | let _0x38619a = await axios.get("https://app.koyeb.com/v1/deployments/" + _0x3e70fa.services[0].latest_deployment_id, axiosConfig);
136 | let _0x35b594 = [];
137 | for (var _0x34066d = 0; _0x34066d < _0x38619a.data.deployment.definition.env.length; _0x34066d++) {
138 | if (!_0x38619a.data.deployment.definition.env[_0x34066d].key) {
139 | continue;
140 | }
141 | _0x35b594.push("*" + _0x38619a.data.deployment.definition.env[_0x34066d].key + "* : _" + _0x38619a.data.deployment.definition.env[_0x34066d].value + "_");
142 | }
143 | return _0x35b594.join("\n");
144 | }
145 | async function getvar(_0xcd630a) {
146 | let {
147 | data: _0x1da652
148 | } = await axios.get("https://app.koyeb.com/v1/services", axiosConfig);
149 | let _0x2d0795 = await axios.get("https://app.koyeb.com/v1/deployments/" + _0x1da652.services[0].latest_deployment_id, axiosConfig);
150 | for (var _0x38de6b = 0; _0x38de6b < _0x2d0795.data.deployment.definition.env.length; _0x38de6b++) {
151 | if (!_0x2d0795.data.deployment.definition.env[_0x38de6b].key) {
152 | continue;
153 | }
154 | if (_0x2d0795.data.deployment.definition.env[_0x38de6b].key === _0xcd630a) {
155 | return _0x2d0795.data.deployment.definition.env[_0x38de6b].key + ":" + _0x2d0795.data.deployment.definition.env[_0x38de6b].value;
156 | }
157 | }
158 | }
159 | async function redeploy() {
160 | var _0x4e1978 = false;
161 | var _0x484138 = {
162 | deployment_group: "prod",
163 | sha: ""
164 | };
165 | let {
166 | data: _0x18e13d
167 | } = await axios.get("https://app.koyeb.com/v1/services", axiosConfig);
168 | let _0x5ebfce = _0x18e13d.services[0].id;
169 | try {
170 | let _0x329071 = await axios.post("https://app.koyeb.com/v1/services/" + _0x5ebfce + "/redeploy", _0x484138, axiosConfig);
171 | _0x4e1978 = "_update started._";
172 | } catch (_0x2f9443) {
173 | _0x4e1978 = "*Got an error in redeploying.*\n*Please put koyeb api key in var KOYEB_API.*\n_Eg: KOYEB_API:api key from https://app.koyeb.com/account/api ._";
174 | }
175 | return _0x4e1978;
176 | }
177 | module.exports = {
178 | redeploy: redeploy,
179 | getvar: getvar,
180 | delvar: delvar,
181 | getallvar: getallvar,
182 | change_env: change_env,
183 | get_deployments: get_deployments
184 | };
--------------------------------------------------------------------------------
/plugins/fun.js:
--------------------------------------------------------------------------------
1 | const axios = require("axios");
2 | const {
3 | smd
4 | } = require("../lib");
5 | const fetch = require("node-fetch");
6 | async function randomeFunfacts(_0x1be35e) {
7 | try {
8 | if (_0x1be35e === "question") {
9 | return await random_question();
10 | } else if (_0x1be35e === "truth") {
11 | return await truth();
12 | } else if (_0x1be35e === "dare") {
13 | return await dare();
14 | } else if (_0x1be35e === "joke") {
15 | const _0x4fe671 = await (await fetch("https://official-joke-api.appspot.com/random_joke")).json();
16 | return "*Joke :* " + _0x4fe671.setup + "\n*Punchline:* " + _0x4fe671.punchline;
17 | } else if (_0x1be35e === "joke2") {
18 | const _0x1cc76d = await (await fetch("https://v2.jokeapi.dev/joke/Any?type=single")).json();
19 | return "*joke :* " + _0x1cc76d.joke;
20 | } else if (_0x1be35e === "fact") {
21 | const {
22 | data: _0x202058
23 | } = await axios.get("https://nekos.life/api/v2/fact");
24 | return "*Fact:* " + _0x202058.fact;
25 | } else if (_0x1be35e === "quotes") {
26 | const {
27 | data: _0x6d4253
28 | } = await axios.get("https://favqs.com/api/qotd");
29 | return "╔════◇\n║ *🎗️Content:* " + _0x6d4253.quote.body + "\n║ *👤Author:* " + _0x6d4253.quote.author + "\n║\n╚════════════╝";
30 | }
31 | } catch (_0x1147af) {
32 | msg.error(_0x1147af);
33 | console.log("./lib/asta.js/randomeFunfacts()\n", _0x1147af);
34 | }
35 | }
36 | smd(
37 | {
38 | pattern: "rizz",
39 | desc: "Get a random pickup line.",
40 | category: "fun",
41 | filename: __filename,
42 | },
43 | async (m) => {
44 | try {
45 | const apiUrl = "https://api.popcat.xyz/pickuplines";
46 | const response = await fetch(apiUrl);
47 |
48 | if (!response.ok) {
49 | return await m.send(
50 | `*_Error: ${response.status} ${response.statusText}_*`
51 | );
52 | }
53 |
54 | const data = await response.json();
55 | const { pickupline, contributor } = data;
56 |
57 | const message = `${pickupline}`;
58 |
59 | await m.send(message);
60 | } catch (e) {
61 | await m.error(`${e}\n\ncommand: rizz`, e);
62 | }
63 | }
64 | );
65 | smd({
66 | cmdname: "question",
67 | info: "Random Question.",
68 | type: "fun",
69 | filename: __filename
70 | }, async (_0x526dda, _0x570e21, {
71 | smd: _0x59940a
72 | }) => {
73 | try {
74 | await _0x526dda.reply(await randomeFunfacts(_0x59940a));
75 | } catch (_0x2763aa) {
76 | await _0x526dda.error(_0x2763aa + "\n\ncommand: " + _0x59940a, _0x2763aa);
77 | }
78 | });
79 | smd({
80 | cmdname: "truth",
81 | info: "truth and dare(truth game.).",
82 | type: "fun",
83 | filename: __filename
84 | }, async (_0xc2b276, _0x3b493e, {
85 | smd: _0x52be61
86 | }) => {
87 | try {
88 | await _0xc2b276.reply(await randomeFunfacts(_0x52be61));
89 | } catch (_0x28b284) {
90 | await _0xc2b276.error(_0x28b284 + "\n\ncommand: " + _0x52be61, _0x28b284);
91 | }
92 | });
93 | smd({
94 | cmdname: "dare",
95 | info: "truth and dare(dare game.).",
96 | type: "fun",
97 | filename: __filename
98 | }, async (_0x330b72, _0x34d36a, {
99 | smd: _0x2a0858
100 | }) => {
101 | try {
102 | await _0x330b72.reply(await randomeFunfacts(_0x2a0858));
103 | } catch (_0x27a0b8) {
104 | await _0x330b72.error(_0x27a0b8 + "\n\ncommand: " + _0x2a0858, _0x27a0b8);
105 | }
106 | });
107 | smd({
108 | cmdname: "joke",
109 | info: "Sends Joke in chat.",
110 | type: "fun",
111 | filename: __filename
112 | }, async (_0x330ac0, _0x8b468d, {
113 | smd: _0x2e3522
114 | }) => {
115 | try {
116 | await _0x330ac0.reply(await randomeFunfacts(_0x2e3522));
117 | } catch (_0x1817a2) {
118 | await _0x330ac0.error(_0x1817a2 + "\n\ncommand: " + _0x2e3522, _0x1817a2);
119 | }
120 | });
121 | smd({
122 | cmdname: "joke2",
123 | info: "Sends Joke in chat.",
124 | type: "fun",
125 | filename: __filename
126 | }, async (_0x5c9c52, _0x6b6e25, {
127 | smd: _0x64ba
128 | }) => {
129 | try {
130 | await _0x5c9c52.reply(await randomeFunfacts(_0x64ba));
131 | } catch (_0x35fd84) {
132 | await _0x5c9c52.error(_0x35fd84 + "\n\ncommand: " + _0x64ba, _0x35fd84);
133 | }
134 | });
135 | smd({
136 | cmdname: "fact",
137 | info: "Sends fact in chat.",
138 | type: "fun",
139 | filename: __filename
140 | }, async (_0x1dc7e3, _0x16aaa1, {
141 | smd: _0x375b98
142 | }) => {
143 | try {
144 | await _0x1dc7e3.reply(await randomeFunfacts(_0x375b98));
145 | } catch (_0x1e1a8b) {
146 | await _0x1dc7e3.error(_0x1e1a8b + "\n\ncommand: " + _0x375b98, _0x1e1a8b);
147 | }
148 | });
149 | smd({
150 | cmdname: "quotes",
151 | info: "Sends quotes in chat.",
152 | type: "fun",
153 | filename: __filename
154 | }, async (_0x12963f, _0x4f30d2, {
155 | smd: _0x3462d1
156 | }) => {
157 | try {
158 | await _0x12963f.reply(await randomeFunfacts(_0x3462d1));
159 | } catch (_0x18e714) {
160 | await _0x12963f.error(_0x18e714 + "\n\ncommand: " + _0x3462d1, _0x18e714);
161 | }
162 | });
163 | smd({
164 | cmdname: "define",
165 | info: "urban dictionary.",
166 | type: "fun",
167 | filename: __filename
168 | }, async (_0x460337, _0x614c0a) => {
169 | try {
170 | let _0x328d73 = _0x614c0a ? _0x614c0a : _0x460337.reply_text;
171 | if (!_0x328d73) {
172 | return await _0x460337.send("*_Hey " + _0x460337.senderName + ", please provide a text!_*");
173 | }
174 | let {
175 | data: _0x330600
176 | } = await axios.get("http://api.urbandictionary.com/v0/define?term=" + _0x328d73);
177 | var _0x27eb8f = _0x330600 ? "*Word:* ```" + _0x328d73 + "``` \n*Definition:* ```" + _0x330600.list[0].definition.replace(/\[/g, "").replace(/\]/g, "") + "``` \n*Example:* ```" + _0x330600.list[0].example.replace(/\[/g, "").replace(/\]/g, "") + "```" : "*_No results found for given word_*";
178 | return _0x460337.reply(_0x27eb8f);
179 | } catch (_0x1d0916) {
180 | await _0x460337.error(_0x1d0916 + "\n\ncommand: define", _0x1d0916, "*No result for:* ```" + text + "```");
181 | }
182 | });
183 | smd({
184 | pattern: 'fakeinfo',
185 | fromMe: false,
186 | desc: 'Get fake information',
187 | type: 'fun'
188 | }, async (message, match) => {
189 | try {
190 | const response = await axios.get('https://api.maher-zubair.tech/misc/fakeinfo');
191 | const data = response.data.result.results[0];
192 |
193 | const info = `
194 | 👤 *Name:* ${data.name.title} ${data.name.first} ${data.name.last}
195 | 📅 *Date of Birth:* ${new Date(data.dob.date).toLocaleDateString()}
196 | 📞 *Phone:* ${data.phone}
197 | 📧 *Email:* ${data.email}
198 | 🌐 *Location:* ${data.location.city}, ${data.location.state}, ${data.location.country}
199 | 🔑 *Username:* ${data.login.username}
200 | 📷 *Profile Picture:* [View Image](${data.picture.large})
201 | `;
202 |
203 | await message.send(info, { quoted: message.data });
204 | } catch (error) {
205 | console.error('Error fetching fake information:', error);
206 | await message.send('_Failed to fetch fake information._', { quoted: message.data });
207 | }
208 | });
209 | smd({
210 | pattern: 'insult',
211 | fromMe: false,
212 | desc: 'Get insulted',
213 | type: 'fun'
214 | }, async (message, match) => {
215 | try {
216 | const response = await axios.get('https://api.maher-zubair.tech/misc/insult');
217 | const insult = response.data.result;
218 |
219 | await message.send(insult, { quoted: message.data });
220 | } catch (error) {
221 | console.error('Error fetching insult:', error);
222 | await message.send('_Failed to fetch insult._', { quoted: message.data });
223 | }
224 | });
225 | smd({
226 | pattern: 'lines',
227 | fromMe: false,
228 | desc: 'Get a nice message',
229 | type: 'fun'
230 | }, async (message, match) => {
231 | try {
232 | const response = await axios.get('https://api.maher-zubair.tech/misc/lines');
233 | const messageText = response.data.result;
234 |
235 | await message.send(messageText, { quoted: message.data });
236 | } catch (error) {
237 | console.error('Error fetching message:', error);
238 | await message.send('_Failed to fetch message._', { quoted: message.data });
239 | }
240 | });
241 |
--------------------------------------------------------------------------------
/plugins/reactionpack.js:
--------------------------------------------------------------------------------
1 | const { smd, sendAnimeReaction } = require("../lib");
2 |
3 | smd(
4 | {
5 | pattern: "poke",
6 | category: "reaction",
7 | use: "",
8 | filename: __filename,
9 | desc: "send Anime poke reaction.",
10 | },
11 | async (bot, text, { cmdName }) => {
12 | await sendAnimeReaction(bot, cmdName, "poked to", "poked to everyone.");
13 | }
14 | );
15 | //-----------------------------------------------------------------------
16 | smd(
17 | {
18 | pattern: "hug",
19 | category: "reaction",
20 | use: "",
21 | filename: __filename,
22 | desc: "send Anime hug reaction.",
23 | },
24 | async (bot, text, { cmdName }) => {
25 | await sendAnimeReaction(bot, cmdName, "hug to", "hug with everyone.");
26 | }
27 | );
28 | //-----------------------------------------------------------------------
29 | smd(
30 | {
31 | pattern: "hold",
32 | category: "reaction",
33 | use: "",
34 | filename: __filename,
35 | desc: "send Anime hand hold reaction.",
36 | },
37 | async (bot, text, { cmdName }) => {
38 | await sendAnimeReaction(
39 | bot,
40 | "handhold",
41 | "hold hand of",
42 | "holded hand of everyone"
43 | );
44 | }
45 | );
46 | //-----------------------------------------------------------------------
47 | smd(
48 | {
49 | pattern: "hifi",
50 | category: "reaction",
51 | use: "",
52 | filename: __filename,
53 | desc: "send Anime hifi reaction.",
54 | },
55 | async (bot, text, { cmdName }) => {
56 | await sendAnimeReaction(
57 | bot,
58 | "highfive",
59 | "highfive with",
60 | "highfive with everyone."
61 | );
62 | }
63 | );
64 | //---------------------------------------------------------------------------
65 | smd(
66 | {
67 | pattern: "bite",
68 | category: "reaction",
69 | use: "",
70 | filename: __filename,
71 | desc: "send Anime bite reaction.",
72 | },
73 | async (bot, text, { cmdName }) => {
74 | await sendAnimeReaction(bot, cmdName, "bitten to", "bitten to everyone.");
75 | }
76 | );
77 | //---------------------------------------------------------------------------
78 | smd(
79 | {
80 | pattern: "blush",
81 | category: "reaction",
82 | use: "",
83 | filename: __filename,
84 | desc: "send Anime blush reaction.",
85 | },
86 | async (bot, text, { cmdName }) => {
87 | await sendAnimeReaction(bot, cmdName, "blushed to", "blushed to everyone.");
88 | }
89 | );
90 | //---------------------------------------------------------------------------
91 | smd(
92 | {
93 | pattern: "punch",
94 | category: "reaction",
95 | use: "",
96 | filename: __filename,
97 | desc: "send Anime punch reaction.",
98 | },
99 | async (bot, text, { cmdName }) => {
100 | await sendAnimeReaction(bot, "kick", "punched to", "punched everyone.");
101 | }
102 | );
103 | //---------------------------------------------------------------------------
104 | smd(
105 | {
106 | pattern: "pat",
107 | category: "reaction",
108 | use: "",
109 | filename: __filename,
110 | desc: "send Anime pated reaction.",
111 | },
112 | async (bot, text, { cmdName }) => {
113 | await sendAnimeReaction(
114 | bot,
115 | cmdName,
116 | "patted with",
117 | "patted with everyone."
118 | );
119 | }
120 | );
121 | //---------------------------------------------------------------------------
122 | smd(
123 | {
124 | pattern: "kiss",
125 | category: "reaction",
126 | use: "",
127 | filename: __filename,
128 | desc: "send Anime kiss reaction.",
129 | },
130 | async (bot, text, { cmdName }) => {
131 | await sendAnimeReaction(
132 | bot,
133 | cmdName,
134 | "kissed with",
135 | "kissed with everyone."
136 | );
137 | }
138 | );
139 | //---------------------------------------------------------------------------
140 | smd(
141 | {
142 | pattern: "kill",
143 | category: "reaction",
144 | use: "",
145 | filename: __filename,
146 | desc: "send Anime kill reaction.",
147 | },
148 | async (bot, text, { cmdName }) => {
149 | await sendAnimeReaction(bot, cmdName, "kill ", "kill everyone over here");
150 | }
151 | );
152 | //---------------------------------------------------------------------------
153 | smd(
154 | {
155 | pattern: "happy",
156 | category: "reaction",
157 | use: "",
158 | filename: __filename,
159 | desc: "send Anime happy reaction.",
160 | },
161 | async (bot, text, { cmdName }) => {
162 | await sendAnimeReaction(
163 | bot,
164 | "dance",
165 | "feel happy with",
166 | "feel happy with everyone"
167 | );
168 | }
169 | );
170 | //---------------------------------------------------------------------------
171 | smd(
172 | {
173 | pattern: "dance",
174 | category: "reaction",
175 | use: "",
176 | filename: __filename,
177 | desc: "send Anime dance reaction.",
178 | },
179 | async (bot, text, { cmdName }) => {
180 | await sendAnimeReaction(
181 | bot,
182 | cmdName,
183 | "dance with",
184 | "dance with everyone over here"
185 | );
186 | }
187 | );
188 | //---------------------------------------------------------------------------
189 | smd(
190 | {
191 | pattern: "yeet",
192 | category: "reaction",
193 | use: "",
194 | filename: __filename,
195 | desc: "send Anime yeet reaction.",
196 | },
197 | async (bot, text, { cmdName }) => {
198 | await sendAnimeReaction(bot, cmdName, "yeeted to", "yeeted with everyone");
199 | }
200 | );
201 | //---------------------------------------------------------------------------
202 | smd(
203 | {
204 | pattern: "wink",
205 | category: "reaction",
206 | use: "",
207 | filename: __filename,
208 | desc: "send Anime wink reaction.",
209 | },
210 | async (bot, text, { cmdName }) => {
211 | await sendAnimeReaction(
212 | bot,
213 | cmdName,
214 | "winked with",
215 | "winked with everyone"
216 | );
217 | }
218 | );
219 | //---------------------------------------------------------------------------
220 | smd(
221 | {
222 | pattern: "slap",
223 | category: "reaction",
224 | use: "",
225 | filename: __filename,
226 | desc: "send Anime slap reaction.",
227 | },
228 | async (bot, text, { cmdName }) => {
229 | await sendAnimeReaction(bot, cmdName, "slap to", "slap to everyone");
230 | }
231 | );
232 | //---------------------------------------------------------------------------
233 | smd(
234 | {
235 | pattern: "bonk",
236 | category: "reaction",
237 | use: "",
238 | filename: __filename,
239 | desc: "send Anime bonk reaction.",
240 | },
241 | async (bot, text, { cmdName }) => {
242 | await sendAnimeReaction(bot, cmdName, "bonked to", "bonked to everyone");
243 | }
244 | );
245 | //---------------------------------------------------------------------------
246 | smd(
247 | {
248 | pattern: "bully",
249 | category: "reaction",
250 | use: "",
251 | filename: __filename,
252 | desc: "send Anime bully reaction.",
253 | },
254 | async (bot, text, { cmdName }) => {
255 | await sendAnimeReaction(bot, cmdName, "bullied to", "bullied to everyone");
256 | }
257 | );
258 | //---------------------------------------------------------------------------
259 | smd(
260 | {
261 | pattern: "cringe",
262 | category: "reaction",
263 | use: "",
264 | filename: __filename,
265 | desc: "send Anime cringe reaction.",
266 | },
267 | async (bot, text, { cmdName }) => {
268 | await sendAnimeReaction(bot, cmdName, "cringed to", "cringed to everyone");
269 | }
270 | );
271 | //---------------------------------------------------------------------------
272 | smd(
273 | {
274 | pattern: "cuddle",
275 | category: "reaction",
276 | use: "",
277 | filename: __filename,
278 | desc: "send Anime cuddle reaction.",
279 | },
280 | async (bot, text, { cmdName }) => {
281 | await sendAnimeReaction(
282 | bot,
283 | cmdName,
284 | "cuddled with",
285 | "cuddled with everyone"
286 | );
287 | }
288 | );
289 |
--------------------------------------------------------------------------------
/plugins/gfx.js:
--------------------------------------------------------------------------------
1 | const {
2 | smd,
3 | prefix,
4 | Config
5 | } = require("../lib");
6 | const done = "✳️";
7 | const rwait = "✳️";
8 | let GfxFunc = async (_0xe512ac, {
9 | Void: _0x50b799,
10 | text: _0x3930d1,
11 | smd: _0x1fed9f
12 | }, _0x5ccef2 = true) => {
13 | try {
14 | _0x3930d1 += ": ser";
15 | let _0x478253 = "Example : *" + (prefix + _0x1fed9f) + "* Asta";
16 | let _0x12ae56 = "*Separate the text with ':' sign*\n*Example : " + (prefix + _0x1fed9f) + " Asta : Bot*";
17 | let _0x36f282 = _0x3930d1.split(":")[0];
18 | let _0x2d2a89 = _0x1fed9f.toLowerCase();
19 | switch (_0x2d2a89) {
20 | case "gfx1":
21 | if (!_0x36f282) {
22 | throw _0x478253;
23 | }
24 | let _0x3226bb = "https://api.caliph.biz.id/api/kaneki?nama=" + encodeURIComponent(_0x36f282) + "&apikey=caliphkey";
25 | _0xe512ac.send(_0x3226bb, {
26 | caption: Config.caption
27 | }, "img", _0xe512ac);
28 | break;
29 | case "gfx2":
30 | if (!_0x3930d1) {
31 | throw _0x12ae56;
32 | }
33 | if (!_0x3930d1.includes(":")) {
34 | throw _0x12ae56;
35 | }
36 | let [_0x26a726, _0x1e255c] = _0x3930d1.split(":");
37 | let _0xab3dba = "https://api.caliph.biz.id/api/girlneko?nama=" + encodeURIComponent(_0x26a726.trim()) + "&nama2=" + encodeURIComponent(_0x1e255c.trim()) + "&apikey=caliphkey";
38 | _0xe512ac.send(_0xab3dba, {
39 | caption: Config.caption
40 | }, "img", _0xe512ac);
41 | break;
42 | case "gfx3":
43 | if (!_0x36f282) {
44 | throw _0x478253;
45 | }
46 | let _0x2dba02 = "https://api.caliph.biz.id/api/rem?nama=" + encodeURIComponent(_0x36f282) + "&apikey=caliphkey";
47 | _0xe512ac.send(_0x2dba02, {
48 | caption: Config.caption
49 | }, "img", _0xe512ac);
50 | break;
51 | case "gfx4":
52 | if (!_0x36f282) {
53 | throw _0x478253;
54 | }
55 | let _0x2f4148 = "https://api.caliph.biz.id/api/textpro/matrix?text=" + encodeURIComponent(_0x36f282) + "&apikey=caliphkey";
56 | _0xe512ac.send(_0x2f4148, {
57 | caption: Config.caption
58 | }, "img", _0xe512ac);
59 | break;
60 | case "gfx5":
61 | if (!_0x36f282) {
62 | throw _0x478253;
63 | }
64 | const _0x211bd9 = "https://api.lolhuman.xyz/api/textprome/jokerlogo?apikey=" + lolkeysapi + "&text=" + encodeURIComponent(_0x36f282);
65 | _0xe512ac.send(_0x211bd9, {
66 | caption: Config.caption
67 | }, "img", _0xe512ac);
68 | break;
69 | case "gfx6":
70 | if (!_0x3930d1) {
71 | throw _0x12ae56;
72 | }
73 | if (!_0x3930d1.includes(":")) {
74 | throw _0x12ae56;
75 | }
76 | let [_0x1df0dc, _0x4804be] = _0x3930d1.split`:`;
77 | const _0x17a27c = "https://api.lolhuman.xyz/api/textprome2/lionlogo?apikey=" + lolkeysapi + "&text1=" + encodeURIComponent(_0x1df0dc) + "&text2=" + encodeURIComponent(_0x4804be);
78 | _0xe512ac.send(_0x17a27c, {
79 | caption: Config.caption
80 | }, "img", _0xe512ac);
81 | break;
82 | case "gfx7":
83 | if (!_0x3930d1) {
84 | throw _0x12ae56;
85 | }
86 | if (!_0x3930d1.includes(":")) {
87 | throw _0x12ae56;
88 | }
89 | let [_0x9244eb, _0x2fa36f] = _0x3930d1.split(":");
90 | let _0x4b3f59 = "https://api.lolhuman.xyz/api/photooxy2/battlefield4?apikey=" + lolkeysapi + "&text1=" + encodeURIComponent(_0x9244eb.trim()) + "&text2=" + encodeURIComponent(_0x2fa36f.trim());
91 | _0xe512ac.send(_0x4b3f59, {
92 | caption: Config.caption
93 | }, "img", _0xe512ac);
94 | break;
95 | case "gfx8":
96 | if (!_0x36f282) {
97 | throw _0x478253;
98 | }
99 | let _0x21a8b0 = "https://api.lolhuman.xyz/api/ephoto1/anonymhacker?apikey=" + lolkeysapi + "&text=" + encodeURIComponent(_0x36f282);
100 | _0xe512ac.send(_0x21a8b0, {
101 | caption: Config.caption
102 | }, "img", _0xe512ac);
103 | break;
104 | case "gfx9":
105 | if (!_0x36f282) {
106 | throw _0x478253;
107 | }
108 | let _0x4af196 = "https://api.lolhuman.xyz/api/ephoto1/avatarlolnew?apikey=" + lolkeysapi + "&text=" + encodeURIComponent(_0x36f282);
109 | _0xe512ac.send(_0x4af196, {
110 | caption: Config.caption
111 | }, "img", _0xe512ac);
112 | break;
113 | case "gfx10":
114 | if (!_0x36f282) {
115 | throw _0x478253;
116 | }
117 | let _0x4eb041 = "https://api.lolhuman.xyz/api/ephoto1/avatardota?apikey=" + lolkeysapi + "&text=" + encodeURIComponent(_0x36f282);
118 | _0xe512ac.send(_0x4eb041, {
119 | caption: Config.caption
120 | }, "img", _0xe512ac);
121 | break;
122 | case "gfx11":
123 | if (!_0x3930d1) {
124 | throw _0x12ae56;
125 | }
126 | if (!_0x3930d1.includes(":")) {
127 | throw _0x12ae56;
128 | }
129 | let [_0x188286, _0x1db7a9] = _0x3930d1.split(":");
130 | let _0x28debb = "https://api.lolhuman.xyz/api/ephoto2/codwarzone?apikey=" + lolkeysapi + "&text1=" + encodeURIComponent(_0x188286.trim()) + "&text2=" + encodeURIComponent(_0x1db7a9.trim());
131 | _0xe512ac.send(_0x28debb, {
132 | caption: Config.caption
133 | }, "img", _0xe512ac);
134 | break;
135 | case "gfx12":
136 | if (!_0x36f282) {
137 | throw _0x478253;
138 | }
139 | let _0x54a9c8 = "https://api.lolhuman.xyz/api/ephoto1/freefire?apikey=" + lolkeysapi + "&text=" + encodeURIComponent(_0x36f282);
140 | _0xe512ac.send(_0x54a9c8, {
141 | caption: Config.caption
142 | }, "img", _0xe512ac);
143 | break;
144 | case "gfx13":
145 | if (!_0x3930d1.includes(":")) {
146 | throw _0x12ae56;
147 | }
148 | let [_0x1988c3, _0x4814d9] = _0x3930d1.split(":");
149 | let _0x4f7a88 = "https://api.caliph.biz.id/api/sadboy?nama=" + encodeURIComponent(_0x1988c3.trim()) + "&nama2=" + encodeURIComponent(_0x4814d9.trim()) + "&apikey=caliphkey";
150 | _0xe512ac.send(_0x4f7a88, {
151 | caption: Config.caption
152 | }, "img", _0xe512ac);
153 | break;
154 | case "gfx14":
155 | if (!_0x3930d1) {
156 | throw _0x12ae56;
157 | }
158 | var [_0x4814f3, _0x32c6ba] = _0x3930d1.split(":");
159 | let _0x22e137 = "https://api.caliph.biz.id/api/lolimaker?nama=" + encodeURIComponent(_0x4814f3.trim()) + "&nama2=" + encodeURIComponent(_0x32c6ba.trim()) + "&apikey=caliphkey";
160 | _0xe512ac.send(_0x22e137, {
161 | caption: Config.caption
162 | }, "img", _0xe512ac);
163 | break;
164 | default:
165 | break;
166 | }
167 | } catch (_0x6096ff) {
168 | console.log(_0x6096ff);
169 | if (_0x5ccef2) {
170 | return _0xe512ac.send("" + _0x6096ff);
171 | }
172 | }
173 | };
174 | let gfxx = ["gfx1", "gfx2", "gfx3", "gfx4", "gfx5", "gfx6", "gfx7", "gfx8", "gfx9", "gfx10", "gfx11", "gfx12", "gfx13", "gfx14"];
175 | let lolkeysapi = "GataDios";
176 | for (let i = 0; i < gfxx.length; i++) {
177 | smd({
178 | cmdname: gfxx[i],
179 | infocmd: "create a gfx logo for text",
180 | type: "gfx"
181 | }, async (_0x2a8925, _0x4d7fbd, {
182 | smd: _0x1a74bb,
183 | Void: _0x328365
184 | }) => {
185 | try {
186 | GfxFunc(_0x2a8925, {
187 | text: _0x4d7fbd,
188 | Void: _0x328365,
189 | smd: _0x1a74bb
190 | });
191 | } catch (_0x2de287) {
192 | console.log(_0x2de287);
193 | }
194 | });
195 | }
196 | smd({
197 | cmdname: "gfx",
198 | infocmd: "create gfx logo for text",
199 | type: "gfx"
200 | }, async (_0x1f82ce, _0x2f534c, {
201 | smd: _0x123e7d,
202 | Void: _0x2c219b
203 | }) => {
204 | try {
205 | let _0x2106bc = "*Separate the text with _:_ sign!*\n*Example : " + (prefix + _0x123e7d) + " Asta _:_ Bot*";
206 | if (!_0x2f534c) {
207 | let _0x4a015 = "┌───〈 *ɢꜰx ᴍᴇɴᴜ* 〉───◆\n│╭─────────────···▸\n┴│▸\n⬡│▸ " + gfxx.join(" \n⬡│▸ ") + "\n┬│▸\n│╰────────────···▸▸\n└───────────────···▸\n\n\t *USE: " + (prefix + _0x123e7d) + " Rias:Gremory*\n_To get All Results with single Cmd!_\n";
208 | return await _0x1f82ce.sendUi(_0x1f82ce.chat, {
209 | caption: _0x4a015
210 | });
211 | }
212 | if (!_0x2f534c.includes(":")) {
213 | return _0x1f82ce.send(_0x2106bc);
214 | }
215 | for (let _0x1a7d08 = 0; _0x1a7d08 < gfxx.length; _0x1a7d08++) {
216 | GfxFunc(_0x1f82ce, {
217 | text: _0x2f534c,
218 | Void: _0x2c219b,
219 | smd: "gfx" + (_0x1a7d08 + 1)
220 | }, false);
221 | }
222 | } catch (_0x4c39a6) {
223 | _0x1f82ce.error(_0x4c39a6 + "\n\nCommand: " + _0x123e7d, _0x4c39a6, false);
224 | }
225 | });
--------------------------------------------------------------------------------
/plugins/audio.js:
--------------------------------------------------------------------------------
1 | const { smd } = require("../lib");
2 | const { exec } = require("child_process");
3 | const fs = require("fs");
4 | async function audioEditor(_0x1ef339, _0x567a0f = "bass", _0x730356 = "") {
5 | if (!_0x1ef339.quoted) {
6 | return await _0x1ef339.send("*_Uhh Dear, Reply to audio!!!_*");
7 | }
8 | let _0x1e4c20 = _0x1ef339.quoted.mtype || _0x1ef339.mtype;
9 | if (!/audio/.test(_0x1e4c20)) {
10 | return await _0x1ef339.send(
11 | "*_Reply to the audio you want to change with_*",
12 | {},
13 | "",
14 | _0x730356
15 | );
16 | }
17 | try {
18 | let _0x3497f6 = "-af equalizer=f=54:width_type=o:width=2:g=20";
19 | if (/bass/.test(_0x567a0f)) {
20 | _0x3497f6 = "-af equalizer=f=54:width_type=o:width=2:g=20";
21 | }
22 | if (/blown/.test(_0x567a0f)) {
23 | _0x3497f6 = "-af acrusher=.1:1:64:0:log";
24 | }
25 | if (/deep/.test(_0x567a0f)) {
26 | _0x3497f6 = "-af atempo=4/4,asetrate=44500*2/3";
27 | }
28 | if (/earrape/.test(_0x567a0f)) {
29 | _0x3497f6 = "-af volume=12";
30 | }
31 | if (/fast/.test(_0x567a0f)) {
32 | _0x3497f6 = '-filter:a "atempo=1.63,asetrate=44100"';
33 | }
34 | if (/fat/.test(_0x567a0f)) {
35 | _0x3497f6 = '-filter:a "atempo=1.6,asetrate=22100"';
36 | }
37 | if (/nightcore/.test(_0x567a0f)) {
38 | _0x3497f6 = "-filter:a atempo=1.06,asetrate=44100*1.25";
39 | }
40 | if (/reverse/.test(_0x567a0f)) {
41 | _0x3497f6 = '-filter_complex "areverse"';
42 | }
43 | if (/robot/.test(_0x567a0f)) {
44 | _0x3497f6 =
45 | "-filter_complex \"afftfilt=real='hypot(re,im)*sin(0)':imag='hypot(re,im)*cos(0)':win_size=512:overlap=0.75\"";
46 | }
47 | if (/slow/.test(_0x567a0f)) {
48 | _0x3497f6 = '-filter:a "atempo=0.7,asetrate=44100"';
49 | }
50 | if (/smooth/.test(_0x567a0f)) {
51 | _0x3497f6 =
52 | "-filter:v \"minterpolate='mi_mode=mci:mc_mode=aobmc:vsbmc=1:fps=120'\"";
53 | }
54 | if (/tupai/.test(_0x567a0f)) {
55 | _0x3497f6 = '-filter:a "atempo=0.5,asetrate=65100"';
56 | }
57 | let _0x25e2bd = await _0x1ef339.bot.downloadAndSaveMediaMessage(
58 | _0x1ef339.quoted
59 | );
60 | let _0x58830b = "temp/" + (_0x1ef339.sender.slice(6) + _0x567a0f) + ".mp3";
61 | exec(
62 | "ffmpeg -i " + _0x25e2bd + " " + _0x3497f6 + " " + _0x58830b,
63 | async (_0x43e1ec, _0x22acc9, _0x3cea68) => {
64 | try {
65 | fs.unlinkSync(_0x25e2bd);
66 | } catch {}
67 | if (_0x43e1ec) {
68 | return _0x1ef339.error(_0x43e1ec);
69 | } else {
70 | let _0x11bfca = fs.readFileSync(_0x58830b);
71 | try {
72 | fs.unlinkSync(_0x58830b);
73 | } catch {}
74 | var _0xfba2a2 = {
75 | ...(await _0x1ef339.bot.contextInfo(
76 | "Hellow " + _0x1ef339.senderName + " 🤍",
77 | "⇆ㅤ ||◁ㅤ❚❚ㅤ▷||ㅤ ⇆"
78 | )),
79 | };
80 | return _0x1ef339.bot.sendMessage(
81 | _0x1ef339.chat,
82 | {
83 | audio: _0x11bfca,
84 | mimetype: "audio/mpeg",
85 | ptt: /ptt|voice/.test(_0x1ef339.test || "") ? true : false,
86 | contextInfo: _0xfba2a2,
87 | },
88 | {
89 | quoted: _0x1ef339,
90 | messageId: _0x1ef339.bot.messageId(),
91 | }
92 | );
93 | }
94 | }
95 | );
96 | } catch (_0x48606a) {
97 | await _0x1ef339.error(_0x48606a + "\n\ncmdName : " + _0x567a0f + "\n");
98 | return console.log("./lib/asta.js/audioEditor()\n", _0x48606a);
99 | }
100 | }
101 | smd(
102 | {
103 | cmdname: "bass",
104 | info: "adds bass in given sound",
105 | type: "audio",
106 | use: "",
107 | },
108 | async (_0x5d6ad1, _0x53c461, { smd: _0xf17388 }) => {
109 | try {
110 | return await audioEditor(_0x5d6ad1, _0xf17388, _0x5d6ad1);
111 | } catch (_0x429687) {
112 | return await _0x5d6ad1.error(
113 | _0x429687 + " \n\nCommand: " + _0xf17388,
114 | _0x429687
115 | );
116 | }
117 | }
118 | );
119 | smd(
120 | {
121 | cmdname: "blown",
122 | info: "adds blown in given sound",
123 | type: "audio",
124 | use: "",
125 | },
126 | async (_0x483202, _0x13c66b, { smd: _0x4afb5c }) => {
127 | try {
128 | return await audioEditor(_0x483202, _0x4afb5c, _0x483202);
129 | } catch (_0x370dd7) {
130 | return await _0x483202.error(
131 | _0x370dd7 + " \n\nCommand: " + _0x4afb5c,
132 | _0x370dd7
133 | );
134 | }
135 | }
136 | );
137 | smd(
138 | {
139 | cmdname: "deep",
140 | info: "adds deep in given sound",
141 | type: "audio",
142 | use: "",
143 | },
144 | async (_0x4f23d9, _0x3cf305, { smd: _0x7e1b7 }) => {
145 | try {
146 | return await audioEditor(_0x4f23d9, _0x7e1b7, _0x4f23d9);
147 | } catch (_0x212449) {
148 | return await _0x4f23d9.error(
149 | _0x212449 + " \n\nCommand: " + _0x7e1b7,
150 | _0x212449
151 | );
152 | }
153 | }
154 | );
155 | smd(
156 | {
157 | cmdname: "earrape",
158 | info: "adds earrape in given sound",
159 | type: "audio",
160 | use: "",
161 | },
162 | async (_0x17a00c, _0x54b87c, { smd: _0x22851d }) => {
163 | try {
164 | return await audioEditor(_0x17a00c, _0x22851d, _0x17a00c);
165 | } catch (_0x1069a9) {
166 | return await _0x17a00c.error(
167 | _0x1069a9 + " \n\nCommand: " + _0x22851d,
168 | _0x1069a9
169 | );
170 | }
171 | }
172 | );
173 | smd(
174 | {
175 | cmdname: "fast",
176 | info: "adds fast in given sound",
177 | type: "audio",
178 | use: "",
179 | },
180 | async (_0x329304, _0x290150, { smd: _0x555cf0 }) => {
181 | try {
182 | return await audioEditor(_0x329304, _0x555cf0, _0x329304);
183 | } catch (_0x2e5829) {
184 | return await _0x329304.error(
185 | _0x2e5829 + " \n\nCommand: " + _0x555cf0,
186 | _0x2e5829
187 | );
188 | }
189 | }
190 | );
191 | smd(
192 | {
193 | cmdname: "fat",
194 | info: "adds fat in given sound",
195 | type: "audio",
196 | use: "",
197 | },
198 | async (_0x4e50f6, _0x5469bf, { smd: _0x210909 }) => {
199 | try {
200 | return await audioEditor(_0x4e50f6, _0x210909, _0x4e50f6);
201 | } catch (_0x2d03a6) {
202 | return await _0x4e50f6.error(
203 | _0x2d03a6 + " \n\nCommand: " + _0x210909,
204 | _0x2d03a6
205 | );
206 | }
207 | }
208 | );
209 | smd(
210 | {
211 | cmdname: "nightcore",
212 | info: "adds nightcore in given sound",
213 | type: "audio",
214 | use: "",
215 | },
216 | async (_0x562f14, _0x4de080, { smd: _0x3887ce }) => {
217 | try {
218 | return await audioEditor(_0x562f14, _0x3887ce, _0x562f14);
219 | } catch (_0x1c2061) {
220 | return await _0x562f14.error(
221 | _0x1c2061 + " \n\nCommand: " + _0x3887ce,
222 | _0x1c2061
223 | );
224 | }
225 | }
226 | );
227 | smd(
228 | {
229 | cmdname: "reverse",
230 | info: "adds reverse in given sound",
231 | type: "audio",
232 | use: "",
233 | },
234 | async (_0x362707, _0xcb10cd, { smd: _0x5223dd }) => {
235 | try {
236 | return await audioEditor(_0x362707, _0x5223dd, _0x362707);
237 | } catch (_0x5ee99a) {
238 | return await _0x362707.error(
239 | _0x5ee99a + " \n\nCommand: " + _0x5223dd,
240 | _0x5ee99a
241 | );
242 | }
243 | }
244 | );
245 | smd(
246 | {
247 | cmdname: "robot",
248 | info: "adds robot in given sound",
249 | type: "audio",
250 | use: "",
251 | },
252 | async (_0x310526, _0x4716ec, { smd: _0xa9fd5 }) => {
253 | try {
254 | return await audioEditor(_0x310526, _0xa9fd5, _0x310526);
255 | } catch (_0x552466) {
256 | return await _0x310526.error(
257 | _0x552466 + " \n\nCommand: " + _0xa9fd5,
258 | _0x552466
259 | );
260 | }
261 | }
262 | );
263 | smd(
264 | {
265 | cmdname: "slow",
266 | info: "adds slow in given sound",
267 | type: "audio",
268 | use: "",
269 | },
270 | async (_0x4a8426, _0x4b49bd, { smd: _0x181538 }) => {
271 | try {
272 | return await audioEditor(_0x4a8426, _0x181538, _0x4a8426);
273 | } catch (_0x489533) {
274 | return await _0x4a8426.error(
275 | _0x489533 + " \n\nCommand: " + _0x181538,
276 | _0x489533
277 | );
278 | }
279 | }
280 | );
281 | smd(
282 | {
283 | cmdname: "smooth",
284 | info: "adds smooth in given sound",
285 | type: "audio",
286 | use: "",
287 | },
288 | async (_0x40e425, _0x2b44c9, { smd: _0x4894c8 }) => {
289 | try {
290 | return await audioEditor(_0x40e425, _0x4894c8, _0x40e425);
291 | } catch (_0x346685) {
292 | return await _0x40e425.error(
293 | _0x346685 + " \n\nCommand: " + _0x4894c8,
294 | _0x346685
295 | );
296 | }
297 | }
298 | );
299 | smd(
300 | {
301 | cmdname: "tupai",
302 | info: "adds tupai in given sound",
303 | type: "audio",
304 | use: "",
305 | },
306 | async (_0x206b7, _0x3d2b22, { smd: _0x1f70bd }) => {
307 | try {
308 | return await audioEditor(_0x206b7, _0x1f70bd, _0x206b7);
309 | } catch (_0x2f0862) {
310 | return await _0x206b7.error(
311 | _0x2f0862 + " \n\nCommand: " + _0x1f70bd,
312 | _0x2f0862
313 | );
314 | }
315 | }
316 | );
317 |
--------------------------------------------------------------------------------
/plugins/wallpaper.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 | const fetch = require("node-fetch");
3 | const { smd, TelegraPh } = require("../lib");
4 | const Config = require("../config");
5 | smd(
6 | {
7 | pattern: "aesthetic",
8 | category: "wallpaper",
9 | filename: __filename,
10 | desc: "Get an aesthetic wallpaper.",
11 | },
12 | async (m) => {
13 | try {
14 | let apiUrl = "https://api.maher-zubair.tech/wallpaper/asthetic";
15 | let response = await fetch(apiUrl);
16 | let jsonResponse = await response.json();
17 |
18 | if (jsonResponse.status === 200) {
19 | await m.send(jsonResponse.url, { caption: Config.caption }, "image", m);
20 | } else {
21 | await m.send("*_Request not be preceed!!_*");
22 | }
23 | } catch (error) {
24 | await m.error(
25 | error + "\n\ncommand: aesthetic",
26 | error,
27 | "*_No responce from API, Sorry!!_*"
28 | );
29 | }
30 | }
31 | );
32 | smd(
33 | {
34 | pattern: "bike",
35 | category: "wallpaper",
36 | filename: __filename,
37 | desc: "Get a bike wallpaper.",
38 | },
39 | async (m) => {
40 | try {
41 | let apiUrl = "https://api.maher-zubair.tech/wallpaper/bike";
42 | let response = await fetch(apiUrl);
43 | let jsonResponse = await response.json();
44 |
45 | if (jsonResponse.status === 200) {
46 | await m.send(jsonResponse.url, { caption: Config.caption }, "image", m);
47 | } else {
48 | await m.send("*_Request not be preceed!!_*");
49 | }
50 | } catch (error) {
51 | await m.error(
52 | error + "\n\ncommand: bike",
53 | error,
54 | "*_No responce from API, Sorry!!_*"
55 | );
56 | }
57 | }
58 | );
59 | // Command 2: cr7
60 | smd(
61 | {
62 | pattern: "cr7",
63 | category: "wallpaper",
64 | filename: __filename,
65 | desc: "Get a CR7 (Cristiano Ronaldo) wallpaper.",
66 | },
67 | async (m) => {
68 | try {
69 | let apiUrl = "https://api.maher-zubair.tech/wallpaper/cr7";
70 | let response = await fetch(apiUrl);
71 | let jsonResponse = await response.json();
72 |
73 | if (jsonResponse.status === 200) {
74 | await m.send(jsonResponse.url, { caption: Config.caption }, "image", m);
75 | } else {
76 | await m.send("*_Request not be preceed!!_*");
77 | }
78 | } catch (error) {
79 | await m.error(
80 | error + "\n\ncommand: cr7",
81 | error,
82 | "*_No responce from API, Sorry!!_*"
83 | );
84 | }
85 | }
86 | );
87 | // Command 3: cat
88 | smd(
89 | {
90 | pattern: "cat",
91 | category: "wallpaper",
92 | filename: __filename,
93 | desc: "Get a cat wallpaper.",
94 | },
95 | async (m) => {
96 | try {
97 | let apiUrl = "https://api.maher-zubair.tech/wallpaper/cat";
98 | let response = await fetch(apiUrl);
99 | let jsonResponse = await response.json();
100 |
101 | if (jsonResponse.status === 200) {
102 | await m.send(jsonResponse.url, { caption: Config.caption }, "image", m);
103 | } else {
104 | await m.send("*_Request not be preceed!!_*");
105 | }
106 | } catch (error) {
107 | await m.error(
108 | error + "\n\ncommand: cat",
109 | error,
110 | "*_No responce from API, Sorry!!_*"
111 | );
112 | }
113 | }
114 | );
115 | // Command 4: dog
116 | smd(
117 | {
118 | pattern: "dog",
119 | category: "wallpaper",
120 | filename: __filename,
121 | desc: "Get a dog wallpaper.",
122 | },
123 | async (m) => {
124 | try {
125 | let apiUrl = "https://api.maher-zubair.tech/wallpaper/dog";
126 | let response = await fetch(apiUrl);
127 | let jsonResponse = await response.json();
128 |
129 | if (jsonResponse.status === 200) {
130 | await m.send(jsonResponse.url, { caption: Config.caption }, "image", m);
131 | } else {
132 | await m.send("*_Request not be preceed!!_*");
133 | }
134 | } catch (error) {
135 | await m.error(
136 | error + "\n\ncommand: dog",
137 | error,
138 | "*_No responce from API, Sorry!!_*"
139 | );
140 | }
141 | }
142 | );
143 | // Command 5: messi
144 | smd(
145 | {
146 | pattern: "messi",
147 | category: "wallpaper",
148 | filename: __filename,
149 | desc: "Get a Lionel Messi wallpaper.",
150 | },
151 | async (m) => {
152 | try {
153 | let apiUrl = "https://api.maher-zubair.tech/wallpaper/messi";
154 | let response = await fetch(apiUrl);
155 | let jsonResponse = await response.json();
156 |
157 | if (jsonResponse.status === 200) {
158 | await m.send(jsonResponse.url, { caption: Config.caption }, "image", m);
159 | } else {
160 | await m.send("*_Request not be preceed!!_*");
161 | }
162 | } catch (error) {
163 | await m.error(
164 | error + "\n\ncommand: messi",
165 | error,
166 | "*_No responce from API, Sorry!!_*"
167 | );
168 | }
169 | }
170 | );
171 | // Command 6: mlegend
172 | smd(
173 | {
174 | pattern: "mlegend",
175 | category: "wallpaper",
176 | filename: __filename,
177 | desc: "Get a Mobile Legends wallpaper.",
178 | },
179 | async (m) => {
180 | try {
181 | let apiUrl = "https://api.maher-zubair.tech/wallpaper/mlegend";
182 | let response = await fetch(apiUrl);
183 | let jsonResponse = await response.json();
184 |
185 | if (jsonResponse.status === 200) {
186 | await m.send(jsonResponse.url, { caption: Config.caption }, "image", m);
187 | } else {
188 | await m.send("*_Request not be preceed!!_*");
189 | }
190 | } catch (error) {
191 | await m.error(
192 | error + "\n\ncommand: mlegend",
193 | error,
194 | "*_No responce from API, Sorry!!_*"
195 | );
196 | }
197 | }
198 | );
199 | // Command 7: pubg
200 | smd(
201 | {
202 | pattern: "pubg",
203 | category: "wallpaper",
204 | filename: __filename,
205 | desc: "Get a PUBG wallpaper.",
206 | },
207 | async (m) => {
208 | try {
209 | let apiUrl = "https://api.maher-zubair.tech/wallpaper/pubg";
210 | let response = await fetch(apiUrl);
211 | let jsonResponse = await response.json();
212 |
213 | if (jsonResponse.status === 200) {
214 | await m.send(jsonResponse.url, { caption: Config.caption }, "image", m);
215 | } else {
216 | await m.send("*_Request not be preceed!!_*");
217 | }
218 | } catch (error) {
219 | await m.error(
220 | error + "\n\ncommand: pubg",
221 | error,
222 | "*_No responce from API, Sorry!!_*"
223 | );
224 | }
225 | }
226 | );
227 |
228 | // Command 8: random
229 | smd(
230 | {
231 | pattern: "random",
232 | category: "wallpaper",
233 | filename: __filename,
234 | desc: "Get a random wallpaper.",
235 | },
236 | async (m) => {
237 | try {
238 | let apiUrl = "https://api.maher-zubair.tech/wallpaper/random";
239 | let response = await fetch(apiUrl);
240 | let jsonResponse = await response.json();
241 |
242 | if (jsonResponse.status === 200) {
243 | await m.send(jsonResponse.url, { caption: Config.caption }, "image", m);
244 | } else {
245 | await m.send("*_Request not be preceed!!_*");
246 | }
247 | } catch (error) {
248 | await m.error(
249 | error + "\n\ncommand: random",
250 | error,
251 | "*_No responce from API, Sorry!!_*"
252 | );
253 | }
254 | }
255 | );
256 |
257 | // Command 9: car
258 | smd(
259 | {
260 | pattern: "car",
261 | category: "wallpaper",
262 | filename: __filename,
263 | desc: "Get a car wallpaper.",
264 | },
265 | async (m) => {
266 | try {
267 | let apiUrl = "https://api.maher-zubair.tech/wallpaper/car";
268 | let response = await fetch(apiUrl);
269 | let jsonResponse = await response.json();
270 |
271 | if (jsonResponse.status === 200) {
272 | await m.send(jsonResponse.url, { caption: Config.caption }, "image", m);
273 | } else {
274 | await m.send("*_Request not be preceed!!_*");
275 | }
276 | } catch (error) {
277 | await m.error(
278 | error + "\n\ncommand: car",
279 | error,
280 | "*_No responce from API, Sorry!!_*"
281 | );
282 | }
283 | }
284 | );
285 |
286 | // Command 10: blackpink
287 | smd(
288 | {
289 | pattern: "blackpink",
290 | category: "wallpaper",
291 | filename: __filename,
292 | desc: "Get a Blackpink wallpaper.",
293 | },
294 | async (m) => {
295 | try {
296 | let apiUrl = "https://api.maher-zubair.tech/wallpaper/blackpink";
297 | let response = await fetch(apiUrl);
298 | let jsonResponse = await response.json();
299 |
300 | if (jsonResponse.status === 200) {
301 | await m.send(jsonResponse.url, { caption: Config.caption }, "image", m);
302 | } else {
303 | await m.send("*_Request not be preceed!!_*");
304 | }
305 | } catch (error) {
306 | await m.error(
307 | error + "\n\ncommand: blackpink",
308 | error,
309 | "*_No responce from API, Sorry!!_*"
310 | );
311 | }
312 | }
313 | );
314 |
--------------------------------------------------------------------------------
/plugins/chats.js:
--------------------------------------------------------------------------------
1 | let {smd} = require("../lib")
2 | smd({
3 | pattern: 'clear',
4 | fromMe: true,
5 | desc: 'delete whatsapp chat',
6 | type: 'whatsapp'
7 | }, async (message, match) => {
8 | try{
9 | await message.bot.chatModify({
10 |
11 | delete: true,
12 | lastMessages: [{
13 | key: message.key,
14 | messageTimestamp: message.messageTimestamp
15 | }]
16 | }, message.jid)
17 |
18 | await message.send('_Cleared!_')
19 | }catch(e){ message.error(`${e}\n\nCommand : clear` , e, false) }
20 | })
21 |
22 |
23 |
24 |
25 | smd({
26 | pattern: 'archive',
27 | fromMe: true,
28 | desc: 'archive whatsapp chat',
29 | type: 'whatsapp'
30 | }, async (message, match) => {
31 | try{
32 | const lstMsg = {
33 | message: message.message,
34 | key: message.key,
35 | messageTimestamp: message.messageTimestamp
36 | };
37 | await message.bot.chatModify({
38 | archive: true,
39 | lastMessages: [lstMsg]
40 | }, message.jid);
41 | await message.send('_Archived_')
42 | }catch(e){ message.error(`${e}\n\nCommand : archive` , e, false) }
43 | })
44 |
45 |
46 |
47 |
48 | smd({
49 | pattern: 'unarchive',
50 | fromMe: true,
51 | desc: 'unarchive whatsapp chat',
52 | type: 'whatsapp'
53 | }, async (message, match) => {
54 | try{
55 | const lstMsg = {
56 | message: message.message,
57 | key: message.key,
58 | messageTimestamp: message.messageTimestamp
59 | };
60 | await message.bot.chatModify({
61 | archive: false,
62 | lastMessages: [lstMsg]
63 | }, message.jid);
64 | await message.send('_Unarchived_')
65 | }catch(e){ message.error(`${e}\n\nCommand : unarchive` , e, false) }
66 | })
67 |
68 |
69 |
70 | smd({
71 | pattern: 'chatpin',
72 | alias :["pinchat"],
73 | fromMe: true,
74 | desc: 'pin a chat',
75 | type: 'whatsapp'
76 | }, async (message, match) => {
77 | try{
78 | await message.bot.chatModify({
79 | pin: true
80 | }, message.jid);
81 | await message.send('_Pined_')
82 | }catch(e){ message.error(`${e}\n\nCommand : chatpin` , e, false) }
83 | })
84 |
85 |
86 |
87 | smd({
88 | pattern: 'unpin',
89 | alias :["unpinchat","chatunpin"],
90 | fromMe: true,
91 | desc: 'unpin a msg',
92 | type: 'whatsapp'
93 | }, async (message, match) => {
94 | try{
95 | await message.bot.chatModify({
96 | pin: false
97 | }, message.jid);
98 | await message.send('_Unpined_')
99 | }catch(e){ message.error(`${e}\n\nCommand : unpin` , e, false) }
100 | })
101 |
102 |
103 |
104 | smd({
105 | pattern: 'markread',
106 | fromMe: true,
107 | desc: 'mark as readed',
108 | type: 'whatsapp'
109 | }, async (message, match) => {
110 |
111 | try{
112 | let msg = await message.react("🍁")
113 | await message.bot.chatModify(
114 | { markRead: true, lastMessages: [message] },
115 | message.jid
116 | );
117 | //await message.send('_Chat mark as Readed!_')
118 | }catch(e){ message.error(`${e}\n\nCommand : markread` , e, false) }
119 | })
120 |
121 |
122 |
123 | smd({
124 | pattern: 'markunread',
125 | fromMe: true,
126 | desc: 'mark as UnRead',
127 | type: 'whatsapp'
128 | }, async (message, match) => {
129 |
130 | try{
131 | let msg = await message.send("🍁",{},"react")
132 | console.log({msg})
133 | await message.bot.chatModify(
134 | { markRead: false, lastMessages: [message] },
135 | message.jid
136 | );
137 |
138 |
139 | //await message.send('_Chat mark as UnRead!_')
140 | }catch(e){ message.error(`${e}\n\nCommand : markunread` , e, false) }
141 | })
142 |
143 |
144 |
145 |
146 | smd({
147 | pattern: 'unmutechat',
148 | fromMe: true,
149 | desc: 'unmute a chat',
150 | type: 'whatsapp'
151 | }, async (message, match) => {
152 | try{
153 | await message.bot.chatModify( { mute: null }, message.jid );
154 | await message.send('_Chat Unmuted!_')
155 | }catch(e){ message.error(`${e}\n\nCommand : unmutechat` , e, false) }
156 |
157 | })
158 |
159 | smd({
160 | pattern: 'profilename',
161 | fromMe: true,
162 | desc: 'To change your profile name',
163 | type: 'whatsapp'
164 | }, async (message, match) => {
165 | try{
166 | match = match || message.reply_message.text
167 | if (!match) return await message.send('*Need Name!*\n*Example: profilename your name*.')
168 | await message.bot.updateProfileName(match)
169 | await message.send('_Profile name updated!_')
170 | }catch(e){ message.error(`${e}\n\nCommand : profilename` , e, false) }
171 | })
172 |
173 |
174 | // ============================ PRIVACY SETTINGS ============================
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 | smd({
185 | pattern: 'getprivacy',
186 | fromMe: true,
187 | desc: 'get your privacy settings',
188 | type: 'whatsapp settings'
189 | }, async (message, match) => {
190 | const {
191 | readreceipts,
192 | profile,
193 | status,
194 | online,
195 | last,
196 | groupadd,
197 | calladd
198 | } = await message.bot.fetchPrivacySettings(true);
199 | const msg = `*♺ whatsapp privacy settings*
200 |
201 | *ᝄ name :* ${(message.fromMe && message.pushName ? message.pushName : message.bot.user.name).split("\n").join(" ") }
202 | *ᝄ number :* ${message.user.split("@")[0]}
203 |
204 | *ᝄ online :* ${online}
205 | *ᝄ profile :* ${profile}
206 | *ᝄ last seen :* ${last}
207 | *ᝄ whts status :* ${status}
208 | *ᝄ read receipt :* ${readreceipts}
209 |
210 | *ᝄ who can add in group :* ${groupadd}
211 | *ᝄ who can call :* ${calladd}`;
212 | let img = await message.getpp(message.user)
213 | await message.send(img, {
214 | caption: msg
215 | }, 'img');
216 | })
217 |
218 |
219 |
220 |
221 |
222 | smd({
223 | pattern: 'lastseen',
224 | fromMe: true,
225 | desc: 'to change lastseen privacy',
226 | type: 'whatsapp settings'
227 | }, async (message, match, {smd }) => {
228 | try{
229 | if (!match) return await message.send(`_*Example:-* .lastseen all_\n_to change last seen privacy settings_`);
230 | const available_privacy = ['all', 'contacts', 'contact_blacklist', 'none'];
231 | if (!available_privacy.includes(match)) return await message.send(`_action must be *${available_privacy.join(' / ')}* values_`);
232 | await message.bot.updateLastSeenPrivacy(match)
233 | await message.send(`_Privacy settings *last seen* Updated to *${match}*_`);
234 | }catch(e){ message.error(`${e}\n\nCommand : lastseen` , e, false) }
235 | })
236 |
237 |
238 | smd({
239 | pattern: 'online',
240 | fromMe: true,
241 | desc: 'to change online privacy',
242 | type: 'whatsapp settings'
243 | }, async (message, match,) => {
244 | try{
245 | if (!match) return await message.send(`_*Example:-* .online all_\n_to change *online* privacy settings_`);
246 | const available_privacy = ['all', 'match_last_seen'];
247 | if (!available_privacy.includes(match)) return await message.send(`_action must be *${available_privacy.join('/')}* values_`);
248 | await message.bot.updateOnlinePrivacy(match)
249 | await message.send(`_Privacy Updated to *${match}*_`);
250 | }catch(e){ message.error(`${e}\n\nCommand : online` , e, false) }
251 | })
252 |
253 |
254 | smd({
255 | pattern: 'mypp',
256 | fromMe: true,
257 | desc: 'privacy setting profile picture',
258 | type: 'whatsapp settings'
259 | }, async (message, match) => {
260 | try{
261 | if (!match) return await message.send(`_*Example:-* .mypp all_\n_to change *profile picture* privacy settings_`);
262 | const available_privacy = ['all', 'contacts', 'contact_blacklist', 'none'];
263 | if (!available_privacy.includes(match)) return await message.send(`_action must be *${available_privacy.join('/')}* values_`);
264 | await message.bot.updateProfilePicturePrivacy(match)
265 | await message.send(`_Privacy Updated to *${match}*_`);
266 | }catch(e){ message.error(`${e}\n\nCommand : mypp` , e, false) }
267 | })
268 |
269 | smd({
270 | pattern: 'mystatus',
271 | fromMe: true,
272 | desc: 'privacy for my status',
273 | type: 'whatsapp settings'
274 | }, async (message, match,) => {
275 | try{
276 | if (!match) return await message.send(`_*Example:-* .mystatus all_\n_to change *status* privacy settings_`);
277 | const available_privacy = ['all', 'contacts', 'contact_blacklist', 'none'];
278 | if (!available_privacy.includes(match)) return await message.send(`_action must be *${available_privacy.join('/')}* values_`);
279 | await message.bot.updateStatusPrivacy(match)
280 | await message.send(`_Privacy Updated to *${match}*_`);
281 | }catch(e){ message.error(`${e}\n\nCommand : mystatus` , e, false) }
282 | })
283 |
284 | smd({
285 | pattern: 'read',
286 | fromMe: true,
287 | desc: 'privacy for read message',
288 | type: 'whatsapp settings'
289 | }, async (message, match, cmd) => {
290 | try{
291 | if (!match) return await message.send(`_*Example:-* .read all_\n_to change *read and receipts message* privacy settings_`);
292 | const available_privacy = ['all', 'none'];
293 | if (!available_privacy.includes(match)) return await message.send(`_action must be *${available_privacy.join('/')}* values_`);
294 | await message.bot.updateReadReceiptsPrivacy(match)
295 | await message.send(`_Privacy Updated to *${match}*_`);
296 | }catch(e){ message.error(`${e}\n\nCommand : read` , e, false) }
297 | })
298 |
299 | smd({
300 | pattern: 'groupadd',
301 | fromMe: true,
302 | desc: 'privacy for group add',
303 | type: 'whatsapp settings'
304 | }, async (message, match, cmd) => {
305 | try{
306 | if (!match) return await message.send(`_*Example:-* .groupadd all_\n_to change *group add* privacy settings_`);
307 | const available_privacy = ['all', 'contacts', 'contact_blacklist', 'none'];
308 | if (!available_privacy.includes(match)) return await message.send(`_action must be *${available_privacy.join('/')}* values_`);
309 | await message.bot.updateGroupsAddPrivacy(match)
310 | await message.send(`_Privacy Updated to *${match}*_`);
311 | }catch(e){ message.error(`${e}\n\nCommand : groupadd` , e, false) }
312 | })
313 |
314 |
315 |
316 |
317 |
318 |
319 |
320 |
321 |
322 |
323 |
324 |
325 |
326 |
327 |
328 |
329 |
--------------------------------------------------------------------------------
/plugins/logo.js:
--------------------------------------------------------------------------------
1 | const { smd, prefix, Config } = require('../lib');
2 | const fetch = require('node-fetch');
3 |
4 | async function textToLogoGenerator(message, textProUrl, text1, text2 = "ser", serviceType = "textpro", retryOnFail = true) {
5 | let mumakerResponse = {};
6 | let apiResponse = {};
7 | let url = /1|ephoto|ephoto360/gi.test(serviceType) ? `https://ephoto360.com/${textProUrl}.html` :
8 | /2|potoxy|photooxy/gi.test(serviceType) ? `https://photooxy.com/${textProUrl}.html` :
9 | /3|enphoto|en360/gi.test(serviceType) ? `https://en.ephoto360.com/${textProUrl}.html` :
10 | `https://textpro.me/${textProUrl}.html`;
11 |
12 | try {
13 | const { textpro } = require('mumaker');
14 | if (text1) {
15 | mumakerResponse = await textpro(url, [text1, text2]);
16 | }
17 |
18 | let captionContext = {} || { ...(await message.bot.contextInfo('Text to Logo', `Hello ${message.senderName}`)) };
19 | return await message.bot.sendMessage(message.jid, {
20 | image: { url: mumakerResponse.image },
21 | caption: Config.caption,
22 | contextInfo: captionContext
23 | }, { messageId: message.bot.messageId() });
24 | } catch (error) {
25 | try {
26 | let apiUrl = `${global.api_smd}/api/maker?text1=${text1}&text2=${text2}&url=${url}`;
27 | apiResponse = await fetchJson(apiUrl);
28 |
29 | if ((!apiResponse || !apiResponse.status || !apiResponse.img) && retryOnFail) {
30 | return message.error(`${error}\nWebinfo: ${apiResponse.img || apiResponse}\n\nfileName: textToLogoGenerator->s.js`, error);
31 | }
32 |
33 | await message.bot.sendMessage(message.jid, { image: { url: apiResponse.img } }, { messageId: message.bot.messageId() });
34 | } catch (err) {
35 | let imageUrl = mumakerResponse && mumakerResponse.image ? mumakerResponse.image :
36 | apiResponse && apiResponse.img ? apiResponse.img : false;
37 |
38 | if (retryOnFail) {
39 | message.error(`${error}\n\nAPI Error: ${err}\n\nfileName: textToLogoGenerator->s.js`, error, (imageUrl ? `Here we go\n\n${imageUrl}` : "Error, Request Denied!").trim());
40 | }
41 | }
42 | }
43 | }
44 |
45 | async function fetchJson(url) {
46 | const response = await fetch(url);
47 | return await response.json();
48 | }
49 |
50 | smd({
51 | cmdname: 'logo1',
52 | type: 'logo',
53 | info: 'Some text to image feature with various styles.',
54 | filename: __filename,
55 | }, async (message, match) => {
56 | try {
57 | if (!match) return message.reply(`*_Example : ${prefix + cmdName} WASI_*`);
58 | await textToLogoGenerator(
59 | message,
60 | 'hieu-ung-chu/tao-hieu-ung-chu-mam-anh-sang-74',
61 | match,
62 | 'ser',
63 | '1'
64 | );
65 | } catch (e) {
66 | return await message.error(`${e}\n\ncmdName: ${cmdName}`, e);
67 | }
68 | });
69 |
70 | smd({
71 | cmdname: 'logo2',
72 | type: 'logo',
73 | info: 'Some text to image feature with various styles.',
74 | filename: __filename,
75 | }, async (message, match) => {
76 | try {
77 | if (!match) return message.reply(`*_Example : ${prefix + cmdName} WASI_*`);
78 | return await textToLogoGenerator(
79 | message,
80 | 'tao-hieu-ung-chu-digital-glitch-truc-tuyen-941',
81 | match,
82 | 'WASI',
83 | '1'
84 | );
85 | } catch (e) {
86 | return await message.error(`${e}\n\ncmdName: ${cmdName}`, e);
87 | }
88 | });
89 | smd({
90 | cmdname: 'logo3',
91 | type: 'logo',
92 | info: 'Some text to image feature with various styles.',
93 | filename: __filename,
94 | }, async (message, match) => {
95 | try {
96 | if (!match) return message.reply(`*_Example : ${prefix + cmdName} WASI_*`);
97 | return await textToLogoGenerator(
98 | message,
99 | 'tao-hieu-ung-chu-pixel-glitch-truc-tuyen-940',
100 | match,
101 | 'WASI',
102 | '1'
103 | );
104 | } catch (e) {
105 | return await message.error(`${e}\n\ncmdName: ${cmdName}`, e);
106 | }
107 | });
108 |
109 | smd({
110 | cmdname: 'logo4',
111 | type: 'logo',
112 | info: 'Some text to image feature with various styles.',
113 | filename: __filename,
114 | }, async (message, match) => {
115 | try {
116 | if (!match) return message.reply(`*_Example : ${prefix + cmdName} WASI_*`);
117 | return await textToLogoGenerator(
118 | message,
119 | 'tao-hieu-ung-chu-graffiti-duong-pho-an-tuong-online-795',
120 | match,
121 | 'WASI',
122 | '1'
123 | );
124 | } catch (e) {
125 | return await message.error(`${e}\n\ncmdName: ${cmdName}`, e);
126 | }
127 | });
128 |
129 | smd({
130 | cmdname: 'logo5',
131 | type: 'logo',
132 | info: 'Some text to image feature with various styles.',
133 | filename: __filename,
134 | }, async (message, match) => {
135 | try {
136 | if (!match) return message.reply(`*_Example : ${prefix + cmdName} WASI_*`);
137 | return await textToLogoGenerator(
138 | message,
139 | 'hieu-ung-chu/chu-graffiti-online-mau-8-182',
140 | match,
141 | 'WASI',
142 | '1'
143 | );
144 | } catch (e) {
145 | return await message.error(`${e}\n\ncmdName: ${cmdName}`, e);
146 | }
147 | });
148 |
149 | smd({
150 | cmdname: 'logo6',
151 | type: 'logo',
152 | info: 'Some text to image feature with various styles.',
153 | filename: __filename,
154 | }, async (message, match) => {
155 | try {
156 | let text1 = match ? match.split(';')[0] : '';
157 | let text2 = match ? match.split(';')[1] : '';
158 | if (!text2 || !text1)
159 | return await message.reply(`*_Example : ${prefix + cmdName} text1;text2_*`);
160 | return await textToLogoGenerator(
161 | message,
162 | 'tao-hieu-ung-chu-graffiti-sieu-ngau-online-794',
163 | text1,
164 | text2
165 | );
166 | } catch (e) {
167 | return await message.error(`${e}\n\ncmdName: ${cmdName}`, e);
168 | }
169 | });
170 |
171 | smd({
172 | cmdname: 'logo7',
173 | type: 'logo',
174 | info: 'Some text to image feature with various styles.',
175 | filename: __filename,
176 | }, async (message, match) => {
177 | try {
178 | let text1 = match ? match.split(';')[0] : '';
179 | let text2 = match ? match.split(';')[1] : '';
180 | if (!text1) return await message.reply(`*_Example : ${prefix + cmdName} text1_*`);
181 | return await textToLogoGenerator(
182 | message,
183 | 'hieu-ung-chu/tao-cover-graffiti-online-181',
184 | text1,
185 | text2 || 'ser',
186 | '1'
187 | );
188 | } catch (e) {
189 | return await message.error(`${e}\n\ncmdName: ${cmdName}`, e);
190 | }
191 | });
192 |
193 | smd({
194 | cmdname: 'logo8',
195 | type: 'logo',
196 | info: 'Some text to image feature with various styles.',
197 | filename: __filename,
198 | }, async (message, match) => {
199 | try {
200 | let text1 = match ? match.split(';')[0] : '';
201 | let text2 = match ? match.split(';')[1] : '';
202 | if (!text2 || !text1)
203 | return await message.reply(`*_Example : ${prefix + cmdName} text1;text2_*`);
204 | await textToLogoGenerator(message, 'tao-logo-gradient-3d-truc-tuyen-501', text1, text2, '1');
205 | } catch (e) {
206 | return await message.error(`${e}\n\ncmdName: ${cmdName}`, e);
207 | }
208 | });
209 |
210 | smd({
211 | cmdname: 'logo9',
212 | type: 'logo',
213 | info: 'Some text to image feature with various styles.',
214 | filename: __filename,
215 | }, async (message, match) => {
216 | try {
217 | let text1 = match ? match.split(';')[0] : '';
218 | let text2 = match ? match.split(';')[1] : '';
219 | if (!text2 || !text1)
220 | return await message.reply(`*_Example : ${prefix + cmdName} text1;text2_*`);
221 | await textToLogoGenerator(message, 'tao-logo-chu-truc-tuyen-499', text1, text2, '1');
222 | } catch (e) {
223 | return await message.error(`${e}\n\ncmdName: ${cmdName}`, e);
224 | }
225 | });
226 |
227 | smd({
228 | cmdname: 'logo10',
229 | type: 'logo',
230 | info: 'Some text to image feature with various styles.',
231 | filename: __filename,
232 | }, async (message, match) => {
233 | try {
234 | let text1 = match ? match.split(';')[0] : '';
235 | let text2 = match ? match.split(';')[1] : '';
236 | if (!text2 || !text1)
237 | return await message.reply(`*_Example : ${prefix + cmdName} text1;text2_*`);
238 | await textToLogoGenerator(message, 'tao-logo-phong-cach-pornhub-612', text1, text2, '1');
239 | } catch (e) {
240 | return await message.error(`${e}\n\ncmdName: ${cmdName}`, e);
241 | }
242 | });
243 |
244 | smd({
245 | cmdname: 'logo11',
246 | type: 'logo',
247 | info: 'Some text to image feature with various styles.',
248 | filename: __filename,
249 | }, async (message, match) => {
250 | try {
251 | let text1 = match ? match.split(';')[0] : '';
252 | let text2 = match ? match.split(';')[1] : '';
253 | if (!text2 || !text1)
254 | return await message.reply(`*_Example : ${prefix + cmdName} text1;text2_*`);
255 | return await textToLogoGenerator(
256 | message,
257 | 'tao-logo-3d-phong-cach-avengers-445',
258 | text1,
259 | text2,
260 | '1'
261 | );
262 | } catch (e) {
263 | return await message.error(`${e}\n\ncmdName: ${cmdName}`, e);
264 | }
265 | });
266 |
267 | smd({
268 | cmdname: 'logo12',
269 | type: 'logo',
270 | info: 'Some text to image feature with various styles.',
271 | filename: __filename,
272 | }, async (message, match) => {
273 | try {
274 | let text1 = match ? match.split(';')[0] : '';
275 | let text2 = match ? match.split(';')[1] : '';
276 | if (!text2 || !text1)
277 | return await message.reply(`*_Example : ${prefix + cmdName} text1;text2_*`);
278 | return await textToLogoGenerator(
279 | message,
280 | 'tao-logo-phong-cach-marvel-419',
281 | text1,
282 | text2,
283 | '1'
284 | );
285 | } catch (e) {
286 | return await message.error(`${e}\n\ncmdName: ${cmdName}`, e);
287 | }
288 | });
289 |
--------------------------------------------------------------------------------
/lib/exif.js:
--------------------------------------------------------------------------------
1 | const ffmpeg = require("fluent-ffmpeg");
2 | const {
3 | randomBytes
4 | } = require("crypto");
5 | const fs = require("fs");
6 | const {
7 | getHttpStream,
8 | toBuffer
9 | } = require("@whiskeysockets/baileys");
10 | const sharp = require("sharp");
11 | const {
12 | spawn
13 | } = require("child_process");
14 | const path = require("path");
15 | const {
16 | fromBuffer
17 | } = require("file-type");
18 | const {
19 | tmpdir
20 | } = require("os");
21 | const ff = require("fluent-ffmpeg");
22 | const webp = require("node-webpmux");
23 | async function toGif(_0x1804d0) {
24 | try {
25 | const _0x10bdc6 = "./" + randomBytes(3).toString("hex") + ".webp";
26 | const _0x59babe = "./" + randomBytes(3).toString("hex") + ".gif";
27 | fs.writeFileSync(_0x10bdc6, _0x1804d0.toString("binary"), "binary");
28 | const _0x15e75a = await new Promise(_0x55c0d1 => {
29 | spawn("convert", [_0x10bdc6, _0x59babe]).on("error", _0x138ca1 => {
30 | throw _0x138ca1;
31 | }).on("exit", () => _0x55c0d1(_0x59babe));
32 | });
33 | let _0x42f096 = fs.readFileSync(_0x15e75a);
34 | try {
35 | fs.unlinkSync(_0x10bdc6);
36 | } catch {}
37 | try {
38 | fs.unlinkSync(_0x59babe);
39 | } catch {}
40 | return _0x42f096;
41 | } catch (_0x47109b) {
42 | console.log(_0x47109b);
43 | }
44 | }
45 | async function toMp4(_0x1d5caf) {
46 | try {
47 | let _0x531e29 = "./" + randomBytes(3).toString("hex") + ".gif";
48 | const _0x17da12 = fs.existsSync(_0x1d5caf) ? _0x1d5caf : save(_0x1d5caf, _0x531e29);
49 | const _0x222ca8 = "./" + randomBytes(3).toString("hex") + ".mp4";
50 | const _0x573d64 = await new Promise(_0x592bf9 => {
51 | ffmpeg(_0x17da12).outputOptions(["-pix_fmt yuv420p", "-c:v libx264", "-movflags +faststart", "-filter:v crop='floor(in_w/2)*2:floor(in_h/2)*2'"]).toFormat("mp4").noAudio().save(_0x222ca8).on("exit", () => _0x592bf9(_0x222ca8));
52 | });
53 | let _0x2b9b13 = await fs.promises.readFile(_0x573d64);
54 | try {
55 | fs.unlinkSync(_0x17da12);
56 | } catch {}
57 | try {
58 | fs.unlinkSync(_0x222ca8);
59 | } catch {}
60 | return _0x2b9b13;
61 | } catch (_0x24ee99) {
62 | console.log(_0x24ee99);
63 | }
64 | }
65 | const EightD = async _0x78ba44 => {
66 | const _0x29f51a = "./temp/" + randomBytes(3).toString("hex") + ".mp3";
67 | _0x78ba44 = Buffer.isBuffer(_0x78ba44) ? save(_0x78ba44, _0x29f51a) : _0x78ba44;
68 | const _0x25915b = "./temp/" + randomBytes(3).toString("hex") + ".mp3";
69 | const _0x16290f = await new Promise(_0x4a7887 => {
70 | ffmpeg(_0x78ba44).audioFilter(["apulsator=hz=0.125"]).audioFrequency(44100).audioChannels(2).audioBitrate("128k").audioCodec("libmp3lame").audioQuality(5).toFormat("mp3").save(_0x25915b).on("end", () => _0x4a7887(_0x25915b));
71 | });
72 | return _0x16290f;
73 | };
74 | function save(_0x47b3b7, _0x5a41c3 = "./temp/saveFile.jpg") {
75 | try {
76 | fs.writeFileSync(_0x5a41c3, _0x47b3b7.toString("binary"), "binary");
77 | return _0x5a41c3;
78 | } catch (_0x48181f) {
79 | console.log(_0x48181f);
80 | }
81 | }
82 | const resizeImage = (_0x2037ea, _0x4470a2, _0x42f2ff) => {
83 | if (!Buffer.isBuffer(_0x2037ea)) {
84 | throw "Input is not a Buffer";
85 | }
86 | return new Promise(async _0x3e6c8a => {
87 | sharp(_0x2037ea).resize(_0x4470a2, _0x42f2ff, {
88 | fit: "contain"
89 | }).toBuffer().then(_0x3e6c8a);
90 | });
91 | };
92 | const _parseInput = async (_0x242492, _0x537749 = false, _0xbaa34d = "path") => {
93 | const _0x257fef = await toBuffer(await getHttpStream(_0x242492));
94 | const _0x113b13 = "./temp/file_" + randomBytes(3).toString("hex") + "." + (_0x537749 ? _0x537749 : (await fromBuffer(_0x257fef)).ext);
95 | const _0x26a839 = Buffer.isBuffer(_0x242492) ? save(_0x242492, _0x113b13) : fs.existsSync(_0x242492) ? _0x242492 : _0x242492;
96 | if (_0xbaa34d == "path") {
97 | return _0x26a839;
98 | } else if (_0xbaa34d == "buffer") {
99 | const _0x178c22 = await fs.promises.readFile(_0x26a839);
100 | try {
101 | await fs.promises.unlink(_0x26a839);
102 | } catch (_0x266680) {}
103 | return _0x178c22;
104 | }
105 | };
106 | async function imageToWebp(_0x218725) {
107 | const _0x1e375a = path.join(tmpdir(), randomBytes(6).readUIntLE(0, 6).toString(36) + ".webp");
108 | const _0x23ff16 = path.join(tmpdir(), randomBytes(6).readUIntLE(0, 6).toString(36) + ".jpg");
109 | fs.writeFileSync(_0x23ff16, _0x218725);
110 | await new Promise((_0x48f236, _0x374a61) => {
111 | ff(_0x23ff16).on("error", _0x374a61).on("end", () => _0x48f236(true)).addOutputOptions(["-vcodec", "libwebp", "-vf", "scale='min(320,iw)':min'(320,ih)':force_original_aspect_ratio=decrease,fps=15, pad=320:320:-1:-1:color=white@0.0, split [a][b]; [a] palettegen=reserve_transparent=on:transparency_color=ffffff [p]; [b][p] paletteuse"]).toFormat("webp").save(_0x1e375a);
112 | });
113 | const _0x110667 = fs.readFileSync(_0x1e375a);
114 | fs.unlinkSync(_0x1e375a);
115 | fs.unlinkSync(_0x23ff16);
116 | return _0x110667;
117 | }
118 | async function videoToWebp(_0x359f57) {
119 | const _0x54fd5 = path.join(tmpdir(), randomBytes(6).readUIntLE(0, 6).toString(36) + ".webp");
120 | const _0x1a1e9b = path.join(tmpdir(), randomBytes(6).readUIntLE(0, 6).toString(36) + ".mp4");
121 | fs.writeFileSync(_0x1a1e9b, _0x359f57);
122 | await new Promise((_0x52a5ff, _0x1e1c14) => {
123 | ff(_0x1a1e9b).on("error", _0x1e1c14).on("end", () => _0x52a5ff(true)).addOutputOptions(["-vcodec", "libwebp", "-vf", "scale='min(320,iw)':min'(320,ih)':force_original_aspect_ratio=decrease,fps=15, pad=320:320:-1:-1:color=white@0.0, split [a][b]; [a] palettegen=reserve_transparent=on:transparency_color=ffffff [p]; [b][p] paletteuse", "-loop", "0", "-ss", "00:00:00", "-t", "00:00:05", "-preset", "default", "-an", "-vsync", "0"]).toFormat("webp").save(_0x54fd5);
124 | });
125 | const _0x56df2a = fs.readFileSync(_0x54fd5);
126 | fs.unlinkSync(_0x54fd5);
127 | fs.unlinkSync(_0x1a1e9b);
128 | return _0x56df2a;
129 | }
130 | async function writeExifImg(_0x1fd483, _0x483806) {
131 | let _0xb28c0b = await imageToWebp(_0x1fd483);
132 | const _0xef911d = path.join(tmpdir(), randomBytes(6).readUIntLE(0, 6).toString(36) + ".webp");
133 | const _0x3aa6e0 = path.join(tmpdir(), randomBytes(6).readUIntLE(0, 6).toString(36) + ".webp");
134 | fs.writeFileSync(_0xef911d, _0xb28c0b);
135 | if (_0x483806.packname || _0x483806.author) {
136 | const _0x335b84 = new webp.Image();
137 | const _0x42a636 = {
138 | "sticker-pack-id": "KERM MD V2",
139 | "sticker-pack-name": _0x483806.packname,
140 | "sticker-pack-publisher": _0x483806.author,
141 | emojis: _0x483806.categories ? _0x483806.categories : [""]
142 | };
143 | const _0xcbb12e = Buffer.from([73, 73, 42, 0, 8, 0, 0, 0, 1, 0, 65, 87, 7, 0, 0, 0, 0, 0, 22, 0, 0, 0]);
144 | const _0x6ed7c6 = Buffer.from(JSON.stringify(_0x42a636), "utf-8");
145 | const _0x306edf = Buffer.concat([_0xcbb12e, _0x6ed7c6]);
146 | _0x306edf.writeUIntLE(_0x6ed7c6.length, 14, 4);
147 | await _0x335b84.load(_0xef911d);
148 | fs.unlinkSync(_0xef911d);
149 | _0x335b84.exif = _0x306edf;
150 | await _0x335b84.save(_0x3aa6e0);
151 | return _0x3aa6e0;
152 | }
153 | }
154 | async function writeExifVid(_0x45a241, _0x563630) {
155 | let _0x10dcc8 = await videoToWebp(_0x45a241);
156 | const _0x32aecd = path.join(tmpdir(), randomBytes(6).readUIntLE(0, 6).toString(36) + ".webp");
157 | const _0x5e9365 = path.join(tmpdir(), randomBytes(6).readUIntLE(0, 6).toString(36) + ".webp");
158 | fs.writeFileSync(_0x32aecd, _0x10dcc8);
159 | let _0xd0b349;
160 | let _0x195824;
161 | try {
162 | _0xd0b349 = _0x563630.packname;
163 | } catch (_0x462fe9) {
164 | _0xd0b349 = "Asta-Md";
165 | }
166 | try {
167 | _0x195824 = _0x563630.author;
168 | } catch (_0x4e4d69) {
169 | _0x195824 = "";
170 | }
171 | const _0x3b47cc = new webp.Image();
172 | const _0x568dc0 = {
173 | "sticker-pack-id": "Asta-Md",
174 | "sticker-pack-name": _0xd0b349,
175 | "sticker-pack-publisher": _0x195824,
176 | emojis: _0x563630.categories ? _0x563630.categories : [""]
177 | };
178 | const _0x33d1e4 = Buffer.from([73, 73, 42, 0, 8, 0, 0, 0, 1, 0, 65, 87, 7, 0, 0, 0, 0, 0, 22, 0, 0, 0]);
179 | const _0x52afb6 = Buffer.from(JSON.stringify(_0x568dc0), "utf-8");
180 | const _0x5bdc63 = Buffer.concat([_0x33d1e4, _0x52afb6]);
181 | _0x5bdc63.writeUIntLE(_0x52afb6.length, 14, 4);
182 | await _0x3b47cc.load(_0x32aecd);
183 | fs.unlinkSync(_0x32aecd);
184 | _0x3b47cc.exif = _0x5bdc63;
185 | await _0x3b47cc.save(_0x5e9365);
186 | return _0x5e9365;
187 | }
188 | async function writeExifWebp(_0x38a80c, _0x8e963c) {
189 | const _0x182c66 = path.join(tmpdir(), randomBytes(6).readUIntLE(0, 6).toString(36) + ".webp");
190 | const _0xecd5c0 = path.join(tmpdir(), randomBytes(6).readUIntLE(0, 6).toString(36) + ".webp");
191 | fs.writeFileSync(_0x182c66, _0x38a80c);
192 | if (_0x8e963c.packname || _0x8e963c.author) {
193 | const _0x3f8a74 = new webp.Image();
194 | const _0x315c40 = {
195 | "sticker-pack-id": "Asta_Md",
196 | "sticker-pack-name": _0x8e963c.packname,
197 | "sticker-pack-publisher": _0x8e963c.author,
198 | emojis: _0x8e963c.categories ? _0x8e963c.categories : [""]
199 | };
200 | const _0x427b1b = await Buffer.from([73, 73, 42, 0, 8, 0, 0, 0, 1, 0, 65, 87, 7, 0, 0, 0, 0, 0, 22, 0, 0, 0]);
201 | const _0xbfd185 = await Buffer.from(JSON.stringify(_0x315c40), "utf-8");
202 | const _0x7b29c0 = await Buffer.concat([_0x427b1b, _0xbfd185]);
203 | await _0x7b29c0.writeUIntLE(_0xbfd185.length, 14, 4);
204 | await _0x3f8a74.load(_0x182c66);
205 | fs.unlinkSync(_0x182c66);
206 | _0x3f8a74.exif = _0x7b29c0;
207 | await _0x3f8a74.save(_0xecd5c0);
208 | return _0xecd5c0;
209 | }
210 | }
211 | module.exports = {
212 | imageToWebp: imageToWebp,
213 | videoToWebp: videoToWebp,
214 | writeExifImg: writeExifImg,
215 | writeExifVid: writeExifVid,
216 | writeExifWebp: writeExifWebp,
217 | toGif: toGif,
218 | toMp4: toMp4,
219 | EightD: EightD,
220 | _parseInput: _parseInput,
221 | resizeImage: resizeImage
222 | };
--------------------------------------------------------------------------------