├── .replit
├── Procfile
├── README.md
├── app.json
├── config.js
├── heroku.yml
├── package.json
└── replit.nix
/.replit:
--------------------------------------------------------------------------------
1 | run = "npm start || yarn start || node lib/client.js"
2 | # stop = "npm stop || yarn stop"
3 | entrypoint = "README.md"
4 | hidden = [".config"]
5 | # modules = ["nodejs-20:v8-20230920-bd784b9"]
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 |
--------------------------------------------------------------------------------
/Procfile:
--------------------------------------------------------------------------------
1 | web: npm start
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
Suhail Md
2 | Introducing Suhail_Md, It is designed to bring a whole new level of excitement to your boring WhatsApp use.
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | 
25 |
26 | ---
27 |
28 |
29 |
30 |
31 | Suhail MD whatsapp bot uses
32 | Multi-Device Baileys.
33 |
34 |
35 |
36 |
37 |
38 | ---
39 |
40 |
41 | Suhail-Md Support Deploy On...
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 | Need help? please create an issue
57 |
58 |
59 |
60 |
61 |
62 | ## Bot Games
63 | ---
64 | 1. ***Connect Four Game.***
65 | 2. ***Tic Tac Toe.***
66 | 3. ***Number Guessing Game.***
67 | 4. ***Word chain Game.***
68 | 5. ***Hidden Card Game.***
69 | 6. ***Rolling Dice.***
70 | 7. ***Character Guessing Game.***
71 | 8. ***Capital of City Finding.***
72 | ##
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 | ## Deployment Methods
83 | ---
84 | 1. ***Get `SESSION ID` by [`SCANING QR`](https://suhail-md-vtsf.onrender.com/) Or [`PARING CODE`](https://sohitechs.com/blog/18/#lin=SuhailMdPair). And then `Go-to Whatapp>Three dots>Linked Devices`***
85 | 2. ***Get Mongodb_URI from [`Mongodb site`](https://www.mongodb.com/) | Watch Tutorial [`To Get Mongodb_URI`](https://youtu.be/6rnftFl0fAI). `Optional`***
86 | 3. ***Click [`FORK`](https://github.com/SuhailTechInfo/Suhail-Md/fork) and `Star ⭐ Repository` for Courage.***
87 | 4. ***Deploy tutorial [`Youtube Video`](https://youtu.be/6rnftFl0fAI).***
88 | 5. ***Deploy FREE on `Codespace,` First see [`Codespace tutorial`](https://youtu.be/3NdJb6_1cJM)***
89 | 6. ***Deploy on [`HEROKU`](https://dashboard.heroku.com/new?template=https://github.com/SuhailTechInfo/Suhail-Md)***
90 | 7. ***Deploy on [`Replit`](https://replit.com/github/SuhailTechInfo/Suhail-Md)***
91 | 8. ***Deploy on [`Railway`](https://railway.app/template/GZOvIe?referralCode=wVDLrh)***
92 | 9. ***Deploy on [`Koyeb`](https://app.koyeb.com/apps/deploy?type=git&repository=github.com/SuhailTechInfo/Suhail-Md&branch=main&env[SESSION_ID]&env[OWNER_NUMBER]=923184474176&env[MONGODB_URI]&&env[OWNER_NAME]=Suhail&env[KOYEB_API]&env[PREFIX]=.&env[WAPRESENCE]&env[AUTO_READ_STATUS]=false&env[DISABLE_PM]=false&env[PACK_AUTHER]=whatsapp+bot&env[PACK_NAME]=Suhail+MD&env[STYLE]=0&env[MODE]=private&env[READ_MESSAGE]=false&env[THEME]=SUHAIL&env[WARN_COUNT]=3&env[BLOCK_JID]=null&env[TIME_ZONE]=Asia/Karachi&name=suhail-md&env[KOYEB_NAME]=suhail-md&env[SUDO]=null&env[THUMB_IMAGE]=https://i.imgur.com/NpA3ZsJ.jpeg)***
93 |
94 | ##
95 | ---
96 |
97 |
98 | - Star ⭐ repo if you like this bot.
99 | - If any problem, then [`+923184474176`](https://wa.me/923184474176)
100 |
101 |
102 | ### Thanks To
103 | - [Sam Pamday](https://github.com/Sampandey001)
104 |
105 |
106 | The Suhail_Md is made available under the [GPL-3 license](https://github.com/SuhailTechInfo/Suhail-Md/blob/main/LICENCE).
107 |
108 |
109 | NOTICE
110 |
111 |
112 | ##
113 | - *Suhail-Md is not made by `WhatsApp Inc.` Sometimes or misusing the bot might `ban` your `WhatsApp account!`*
114 | - *In that case, I'm not responsible for banning your account.*
115 | - *Use Suhail-Md at your own risk by keeping this warning in mind.*
116 | - [`heroku`]( https://dashboard.heroku.com/new?template=https://github.com/SuhailTechInfo/Suhail-Md)
117 |
--------------------------------------------------------------------------------
/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "suhail-md",
3 | "description": "I am Suhail-Md Whatsapp Chuddy Buddy built in NodeJs to make experience better\n\t if Any Problem : www.youtube.com/c/SuhailTechInfo",
4 | "logo": "https://telegra.ph/file/d5b1c3544fedc23e11a06.jpg",
5 | "keywords": ["whatsappbot", "suhailMd", "suhail Md bot", "Suhail-Md", "SuhailMdWhatsaooBot", "SuhailWaBot","SuhailMD","Suhail Md Whatsapp Bot","multi device"],
6 | "success_url": "/suhail/",
7 | "app_url": "/suhail/",
8 |
9 | "env": {
10 | "OWNER_NAME": {
11 | "description": "Name of Bot Owner",
12 | "value": "Suhail Ser",
13 | "required" :true
14 | },
15 |
16 | "WELCOME": {
17 | "description": "put 'false' or 'true' to enable & disable WELCOME ",
18 | "value": "false",
19 | "required" :false
20 | },
21 |
22 | "GOODBYE": {
23 | "description": "put 'false' or 'true' to enable & disable GOODBYE ",
24 | "value": "false",
25 | "required" :false
26 | },
27 | "BOT_NAME": {
28 | "description": " NAME FOR BOT",
29 | "required" :false,
30 | "value": "sᴜʜᴀɪʟ-ᴍᴅ"
31 | },
32 | "IMAGE": {
33 | "description": "Image for bot",
34 | "required" :false,
35 | "value": "https://telegra.ph/file/d5b1c3544fedc23e11a06.jpg"
36 | },
37 | "TZ": {
38 | "description": "Put TIME_ZONE according to your location",
39 | "required" :false,
40 | "value": "Asia/Karachi"
41 | },
42 | "FLUSH": {
43 | "description": " Make it 'true' if bot connected but not responed (After deployement!)",
44 | "required" :false,
45 | "value": "true"
46 | },
47 | "WARN_COUNT": {
48 | "description": " Warn count for users to kick/block when warn limit exceed!",
49 | "required" :false,
50 | "value": "3"
51 | },
52 | "READ_COMMAND": {
53 | "description": " Read bot cmds",
54 | "required" :false,
55 | "value": "false"
56 | },
57 | "AUTO_SAVE_STATUS": {
58 | "description": " Auto save whatsapp status",
59 | "required" :false,
60 | "value": "false"
61 | },
62 | "HEROKU_API_KEY": {
63 | "description": "Put Your Heroku Api Key Here",
64 | "value": "",
65 | "required" :true
66 | },
67 | "HEROKU_APP_NAME": {
68 | "description": "Put Your Heroku App Name Here",
69 | "value": "",
70 | "required" :true
71 | },
72 | "WAPRESENCE": {
73 | "description": "Fill the value: 'unavailable'(for nothing) | 'available'(for alwaysonline) | 'composing'(for typing) | 'recording' | 'paused' ",
74 | "required" :false,
75 | "value": "unavailable"
76 | },
77 | "AUTO_READ_STATUS": {
78 | "description": "Fill the value true if you want bot view your Statuses.",
79 | "required" :false,
80 | "value": "true"
81 | },
82 | "MSGS_IN_LOG": {
83 | "description": "Fill the value true if you want to see Messages in Console.",
84 | "required" :false,
85 | "value": "false"
86 | },
87 | "READ_MESSAGE": {
88 | "description": "Fill the value true if you want bot to read all messages.",
89 | "required" :false,
90 | "value": "false"
91 | },
92 | "DISABLE_PM": {
93 | "description": "Disable bot in pm, Take it false if you wanna run bot in your pm (if MODE is Public)",
94 | "value": "false",
95 | "required" :false
96 | },
97 | "PREFIX": {
98 | "description": "Enter your desired prefix for bot.",
99 | "value": "."
100 | },
101 | "OWNER_NUMBER": {
102 | "description": "The phone numbers of the users who you want to be admin for the bot (should be in international format without + and multiple numbers must be separated by a comma \",\")",
103 | "value": "923184474176"
104 | },
105 | "SESSION_ID": {
106 | "description": "put your SESSION_ID here.",
107 | "value": ""
108 |
109 | },
110 | "OPENAI_API_KEY": {
111 | "description": "put your OPENAI api key here.Get it from beta.openai.com ",
112 | "value": "",
113 | "required" :false
114 | },
115 | "ELEVENLAB_API_KEY": {
116 | "description": "Put your ElevenLab api key here for Aitts. Watch tutorial from https://youtu.be/HCDcdPtkwg4 ",
117 | "value": "",
118 | "required" :false
119 | },
120 | "REMOVE_BG_KEY": {
121 | "description": "put your REMOVE BG KEY here.Get it from removeBg.com ",
122 | "value": "",
123 | "required" :false
124 | },
125 | "MODE": {
126 | "description": "Worktype of your bot. Use public or private, if it is private then only bot number can use it. If public then everyone can use it.",
127 | "value": "private"
128 | },
129 | "PACK_NAME": {
130 | "description": "Put Sticker Pack_Name.",
131 | "value": "Suhail Md",
132 | "required": false
133 | },
134 | "PACK_AUTHER": {
135 | "description": "Put Sticker Author_Name.",
136 | "value": "",
137 | "required": false
138 | }
139 | },
140 | "addons": [
141 | {
142 | "plan": "heroku-postgresql:basic"
143 | }
144 | ],
145 | "buildpacks": [
146 | { "url": "https://github.com/heroku/heroku-buildpack-nodejs#latest" },
147 | { "url": "https://github.com/carlosdommor/heroku-buildpack-ffmpeg-latest" }
148 | ],
149 | "formation": {
150 | "web": {
151 | "quantity": 1,
152 | "size": "standard-2x"
153 | }
154 | }
155 | }
156 |
--------------------------------------------------------------------------------
/config.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs-extra')
2 | if (fs.existsSync('.env')) require('dotenv').config({ path: __dirname+'/.env' })
3 |
4 |
5 | //═══════[Required Variables]════════\\
6 | global.audio= "" ;
7 | global.video= "" ;
8 | global.port =process.env.PORT
9 | global.appUrl=process.env.APP_URL || "" // put your app url here,
10 | global.email ="samsamsun789@gmail.com"
11 | global.location="Lahore,Pakistan."
12 | global.mongodb= process.env.MONGODB_URI || ""
13 | global.allowJids= process.env.ALLOW_JID || "null"
14 | global.blockJids= process.env.BLOCK_JID || "120363023983262391@g.us"
15 | global.DATABASE_URI = process.env.DATABASE_URL || ""
16 |
17 | global.timezone= process.env.TZ || process.env.TIME_ZONE || "Asia/Karachi";
18 | global.github=process.env.GITHUB|| "https://github.com/SuhailTechInfo/Suhail-Md";
19 | global.gurl =process.env.GURL || "https://whatsapp.com/channel/0029Va9thusJP20yWxQ6N643";
20 | global.website=process.env.GURL || "https://whatsapp.com/channel/0029Va9thusJP20yWxQ6N643" ;
21 | global.THUMB_IMAGE = process.env.THUMB_IMAGE || process.env.IMAGE || "https://telegra.ph/file/d5b1c3544fedc23e11a06.jpg" ; // SET LOGO FOR IMAGE
22 |
23 |
24 |
25 | global.devs = "923184474176" // Developer Contact
26 | global.sudo = process.env.SUDO ? process.env.SUDO.replace(/[\s+]/g, '') : "null";
27 | global.owner= process.env.OWNER_NUMBER ? process.env.OWNER_NUMBER.replace(/[\s+]/g, '') : "923184474176";
28 |
29 |
30 |
31 |
32 | //========================= [ BOT SETTINGS ] =========================\\
33 | global.style = process.env.STYLE || '5', // put '1' to "5" here to check bot styles
34 | global.flush = process.env.FLUSH || "false"; // Make it "true" if bot not responed
35 | global.gdbye = process.env.GOODBYE || "false";
36 | global.wlcm = process.env.WELCOME || "false"; // Make it "false" for disable WELCOME
37 |
38 | global.warncount = process.env.WARN_COUNT || 3,
39 | global.disablepm = process.env.DISABLE_PM || "false",
40 | global.MsgsInLog = process.env.MSGS_IN_LOG|| "false", // "true" to see messages , "log" to open logs , "false" to hide logs messages
41 | global.userImages= process.env.USER_IMAGES|| "text",
42 | global.waPresence= process.env.WAPRESENCE || "set according to your need" ; // 'unavailable' | 'available' | 'composing' | 'recording' | 'paused'
43 |
44 |
45 | //========================= [ AUTO READ MSGS & CMDS ] =========================\\
46 | global.readcmds = process.env.READ_COMMAND || "false"
47 | global.readmessage = process.env.READ_MESSAGE || "false"
48 | global.readmessagefrom = process.env.READ_MESSAGE_FROM || "null,923xxxxxxxx";
49 |
50 |
51 | //========================= [ AUTO SAVE & READ STATUS ] =========================\\
52 | global.read_status = process.env.AUTO_READ_STATUS || "false"
53 | global.save_status = process.env.AUTO_SAVE_STATUS || "false"
54 | global.save_status_from = process.env.SAVE_STATUS_FROM || "null,923xxxxxxxx";
55 | global.read_status_from = process.env.READ_STATUS_FROM || "923184474176,923xxxxxxxx";
56 |
57 | global.api_smd = "https://api-smd-1.vercel.app"
58 | global.scan = "https://suhail-md-vtsf.onrender.com/";
59 |
60 | module.exports = {
61 |
62 | menu: process.env.MENU || "", /** Available @MENU @Schemes 1: Aztec_Md, 2: A17_Md, 3: Suhail-Md Default ---------- If Not Choose then it Randomely Pic One Of Them Each time **/
63 |
64 | HANDLERS: process.env.PREFIX || ".",
65 | BRANCH : process.env.BRANCH || "main",
66 | VERSION : process.env.VERSION || "V.1.2.8",
67 | caption : process.env.CAPTION || "©sᴜʜᴀɪʟ²²¹-ᴍᴅ" , // ```『 ᴘᴏᴡᴇʀᴇᴅ ʙʏ sᴜʜᴀɪʟ²²¹-ᴍᴅ 』```", //*『sᴜʙsᴄʀɪʙᴇ • sᴜʜᴀɪʟ ᴛᴇᴄʜ』*\n youtube.com/@suhailtechinfo0"),
68 |
69 | author : process.env.PACK_AUTHER|| "Suhail-MD",
70 | packname: process.env.PACK_NAME || "♥️",
71 | botname : process.env.BOT_NAME || "sᴜʜᴀɪʟ-ᴍᴅ",
72 | ownername:process.env.OWNER_NAME|| "It'x Suhail",
73 |
74 | sessionName:process.env.SESSION_ID || "", // PUT SESSION ID HERE
75 | errorChat : process.env.ERROR_CHAT || "",
76 | KOYEB_API : process.env.KOYEB_API || "false",
77 |
78 | REMOVE_BG_KEY : process.env.REMOVE_BG_KEY || "",
79 | OPENAI_API_KEY: process.env.OPENAI_API_KEY || "",
80 | HEROKU_API_KEY: process.env.HEROKU_API_KEY || "",
81 | HEROKU_APP_NAME:process.env.HEROKU_APP_NAME|| "",
82 | antilink_values:process.env.ANTILINK_VALUES|| "all",
83 | HEROKU: process.env.HEROKU_APP_NAME && process.env.HEROKU_API_KEY,
84 |
85 | aitts_Voice_Id : process.env.AITTS_ID || "37",
86 | ELEVENLAB_API_KEY: process.env.ELEVENLAB_API_KEY || "",
87 | WORKTYPE: process.env.WORKTYPE||process.env.MODE || "private",
88 | LANG: process.env.THEME ? process.env.THEME.toUpperCase() : "SUHAIL",
89 |
90 |
91 |
92 | };
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 | global.isMongodb = false;
122 | let file = require.resolve(__filename)
123 | fs.watchFile(file, () => { fs.unwatchFile(file);console.log(`Update'${__filename}'`);delete require.cache[file]; require(file); })
124 |
125 |
126 | // ========================= [ Disables in V.1.2.8 ] ===============================\\
127 | //style : process.env.STYLE || "2", // put '1' & "2" here to check bot styles
128 | //readmessage:process.env.READ_MESSAGE|| "false",
129 | //warncount: process.env.WARN_COUNT || 3,
130 | //userImages:process.env.USER_IMAGES|| "text", // SET IMAGE AND VIDEO URL FOR BOT MENUS
131 | //disablepm: process.env.DISABLE_PM || "false",
132 | //MsgsInLog: process.env.MSGS_IN_LOG|| "false", // "true" to see messages , "log" to open logs , "false" to hide logs messages
133 | //readcmds:process.env.READ_COMMANDS|| "false",
134 | //alwaysonline:process.env.WAPRESENCE|| "unavailable", // 'unavailable' | 'online' | 'composing' | 'recording' | 'paused'
135 | //read_status: process.env.AUTO_READ_STATUS || "false",
136 | //save_status: process.env.AUTO_SAVE_STATUS || "false",
137 |
138 |
--------------------------------------------------------------------------------
/heroku.yml:
--------------------------------------------------------------------------------
1 | build:
2 | docker:
3 | worker: /lib/Dockerfile
4 | run:
5 | worker: npm start
6 |
7 |
8 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "suhail-md",
3 | "version": "1.2.8-api",
4 | "description": "Multi device whatsapp bot by SuhailTechInfo.",
5 | "main": "lib/client.js",
6 | "type": "commonjs",
7 | "engines" : { "node": "v18.16.0", "npm": "9.5.1" },
8 | "scripts": {
9 | "start": "pm2 start lib/client.js --deep-monitoring --attach --name Suhail",
10 | "stop": "pm2 stop Suhail"
11 | },
12 | "keywords": ["whatsapp bot md","whatsapp bot","sc bot","sc wa bot","suhail md","suhail whatsapp bot","Suhail md bot","multidevice","baileys bot"],
13 | "author": "SuhailTechInfo",
14 | "license" :"Apache-2.0",
15 | "dependencies": {
16 | "@adiwajshing/keyed-db": "^0.2.4",
17 | "@hapi/boom": "^9.1.4",
18 | "@whiskeysockets/baileys": "6.6.0",
19 | "acrcloud": "^1.4.0",
20 | "anime-character-random": "latest",
21 | "aptoide-scraper": "^1.0.1",
22 | "async-g-i-s": "^1.4.0",
23 | "axios": "^0.24.0",
24 | "canvas": "^2.11.2",
25 | "cheerio": "^1.0.0-rc.10",
26 | "child_process": "^1.0.2",
27 | "crypto-js": "latest",
28 | "discord-mongoose-economy": "^1.2.0",
29 | "discord-xp": "^1.1.16",
30 | "dotenv": "^16.0.0",
31 | "express": "^4.18.1",
32 | "ffmpeg": "^0.0.4",
33 | "file-type": "^16.5.3",
34 | "fluent-ffmpeg": "^2.1.2",
35 | "form-data": "^4.0.0",
36 | "fs-extra": "^10.1.0",
37 | "google-it": "^1.6.4",
38 | "google-tts-api": "^2.0.2",
39 | "heroku-client": "3.1.0",
40 | "human-readable": "^0.2.1",
41 | "jimp": "^0.16.1",
42 | "jsdom": "^16.4.0",
43 | "koyeb-api-client": "latest",
44 | "moment-timezone": "^0.5.34",
45 | "mongoose": "^6.2.1",
46 | "mumaker": "^2.0.0",
47 | "node-cron": "^3.0.0",
48 | "node-fetch": "^2.6.1",
49 | "node-webpmux": "^3.1.0",
50 | "pastebin-js": "latest",
51 | "path": "^0.12.7",
52 | "pg": "^8.11.3",
53 | "pm2": "^5.2.0",
54 | "qrcode": "latest",
55 | "secktor-pack": "latest",
56 | "simple-git": "^3.15.1",
57 | "translatte": "^3.0.1",
58 | "util": "^0.12.4",
59 | "wa-sticker-formatter": "^4.3.2",
60 | "youtubei.js": "^7.0.0",
61 | "ytdl-secktor": "^0.0.1-development"
62 | },
63 | "directories": {
64 | "lib": "lib",
65 | "assets": "temp"
66 | },
67 | "devDependencies": {
68 | "pino": "^7.0.5"
69 | },
70 | "repository": {
71 | "type": "git",
72 | "url": "git+https://github.com/SuhailTechInfo/Suhail-Md.git"
73 | },
74 | "bugs": {
75 | "url": "https://github.com/SuhailTechInfo/Suhail-Md/issues"
76 | },
77 | "homepage": "https://github.com/SuhailTechInfo/Suhail-Md#readme"
78 | }
79 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------