Sebuahhobi98

venom

Jan 2nd, 2022
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const express = require('express');
  2. const app = express();
  3. const http = require('http').Server(app);
  4. const https = require('https');
  5. const io = require('socket.io')(http);
  6. var cors = require('cors');
  7. const path = require('path');
  8. var db = require("./utils/config");
  9. // app.use(cors());
  10. const corsOptions = {
  11.     origin: '*',
  12.     credentials: true, //access-control-allow-credentials:true
  13.     optionSuccessStatus: 200
  14. }
  15. app.use(cors(corsOptions));
  16. app.use(express.static(path.join(__dirname, 'assets')));
  17.  
  18. const venom = require('venom-bot');
  19.  
  20. venom
  21.     .create(
  22.         //session
  23.         'sh', //Pass the name of the client you want to start the bot
  24.         //catchQR
  25.         (base64Qrimg, asciiQR, attempts, urlCode) => {
  26.             console.log('Number of attempts to read the qrcode: ', attempts);
  27.             console.log('Terminal qrcode: ', asciiQR);
  28.             console.log('base64 image string qrcode: ', base64Qrimg);
  29.             console.log('urlCode (data-ref): ', urlCode);
  30.         },
  31.         // statusFind
  32.         (statusSession, session) => {
  33.             console.log('Status Session: ', statusSession); //return isLogged || notLogged || browserClose || qrReadSuccess || qrReadFail || autocloseCalled || desconnectedMobile || deleteToken || chatsAvailable || deviceNotConnected || serverWssNotConnected || noOpenBrowser
  34.             //Create session wss return "serverClose" case server for close
  35.             console.log('Session name: ', session);
  36.         },
  37.         // options
  38.         {
  39.             multidevice: false, // for version not multidevice use false.(default: true)
  40.             folderNameToken: 'tokens', //folder name when saving tokens
  41.             mkdirFolderToken: '', //folder directory tokens, just inside the venom folder, example:  { mkdirFolderToken: '/node_modules', } //will save the tokens folder in the node_modules directory
  42.             headless: true, // Headless chrome
  43.             devtools: false, // Open devtools by default
  44.             useChrome: true, // If false will use Chromium instance
  45.             debug: false, // Opens a debug session
  46.             logQR: true, // Logs QR automatically in terminal
  47.             browserWS: '', // If u want to use browserWSEndpoint
  48.             browserArgs: [''], //Original parameters  ---Parameters to be added into the chrome browser instance
  49.             puppeteerOptions: {}, // Will be passed to puppeteer.launch
  50.             disableSpins: true, // Will disable Spinnies animation, useful for containers (docker) for a better log
  51.             disableWelcome: true, // Will disable the welcoming message which appears in the beginning
  52.             updatesLog: true, // Logs info updates automatically in terminal
  53.             autoClose: 60000, // Automatically closes the venom-bot only when scanning the QR code (default 60 seconds, if you want to turn it off, assign 0 or false)
  54.             createPathFileToken: false, // creates a folder when inserting an object in the client's browser, to work it is necessary to pass the parameters in the function create browserSessionToken
  55.             chromiumVersion: '818858', // Version of the browser that will be used. Revision strings can be obtained from omahaproxy.appspot.com.
  56.             addProxy: [''], // Add proxy server exemple : [e1.p.webshare.io:01, e1.p.webshare.io:01]
  57.             userProxy: '', // Proxy login username
  58.             userPass: '' // Proxy password
  59.         },
  60.         // BrowserSessionToken
  61.         // To receive the client's token use the function await clinet.getSessionTokenBrowser()
  62.         {
  63.             WABrowserId: '"UnXjH....."',
  64.             WASecretBundle: '{"key":"+i/nRgWJ....","encKey":"kGdMR5t....","macKey":"+i/nRgW...."}',
  65.             WAToken1: '"0i8...."',
  66.             WAToken2: '"1@lPpzwC...."'
  67.         },
  68.         // BrowserInstance
  69.         (browser, waPage) => {
  70.             console.log('Browser PID:', browser.process().pid);
  71.             waPage.screenshot({ path: 'screenshot.png' });
  72.         }
  73.     )
  74.     .then((client) => {
  75.         start(client);
  76.     })
  77.     .catch((erro) => {
  78.         console.log(erro);
  79.     });
  80.  
  81. const port = process.env.PORT || 3000;
  82. http.listen(port, () => {
  83.     console.log(`Socket.IO server running at http://localhost:${port}/`);
  84. });
  85.  
  86. db.connect(function(err) {
  87.     if (err) throw err;
  88.     console.log("Connected DB");
  89. });
  90.  
  91. async function start(client) {
  92.     const baterai = await client.getBatteryLevel();
  93.     const getHostDevice = await client.getHostDevice();
  94.     const contacts = await client.getAllContacts();
  95.  
  96.     io.on('connection', (socket) => {
  97.  
  98.         io.sockets.emit('device', {
  99.             baterai: baterai,
  100.             device_name: getHostDevice.phone.device_manufacturer
  101.         });
  102.  
  103.         if (socket.connected) {
  104.             io.sockets.emit('connected', {
  105.                 connected: socket.connected
  106.             });
  107.         } else if (socket.disconnect) {
  108.             io.sockets.emit('disconnect', {
  109.                 disconnect: socket.disconnect
  110.             });
  111.         }
  112.  
  113.         socket.on('retrive_kontak', data => {
  114.             if (data.kontak == "retrive_kontak") {
  115.  
  116.                 var values = [];
  117.                 contacts.forEach(function callbackFn(data, index) {
  118.                     values[index] = [
  119.                         contacts[index].id.user,
  120.                         contacts[index].name,
  121.                         contacts[index].type,
  122.                         contacts[index].isBusiness,
  123.                         contacts[index].isMe,
  124.                         contacts[index].isUser,
  125.                         contacts[index].isMyContact
  126.                     ];
  127.                 });
  128.  
  129.                 let sql = "INSERT INTO kontak (nomor, nama, type, isBusiness, isMe, isUser, isMyContact) VALUES?";
  130.                 db.query(sql, [values], function(err, result) {
  131.                     //if (err) throw err;
  132.                     // console.log("Number of records inserted: " + result.affectedRows);
  133.                 });
  134.  
  135.                 io.sockets.emit('retrive_kontak', {
  136.                     kontak: true
  137.                 });
  138.             }
  139.         });
  140.  
  141.         client.onMessage((message) => {
  142.  
  143.             var d = new Date();
  144.             const time = d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds();
  145.             const date = d.getFullYear() + ":" + d.getMonth() + ":" + d.getDay();
  146.             let sql = 'INSERT INTO webhook (`nama`, `to`, `from`, `chat`, `date`, `time`) VALUES ';
  147.             sql += `('${message.sender.verifiedName}','${message.to}', '${message.from}', '${message.body}', '${date}', '${time}');`;
  148.  
  149.             db.query(sql, function(err, result) {
  150.                 if (err) throw err;
  151.                 console.log("Number of records inserted: " + result.affectedRows);
  152.             });
  153.  
  154.             io.emit('webhook', {
  155.                 message: message.body,
  156.                 from: message.from,
  157.                 to: message.to,
  158.                 name: message.sender.verifiedName
  159.             });
  160.         });
  161.  
  162.  
  163.         socket.on('chat message', msg => {
  164.             io.emit('chat message', msg);
  165.             console.log(msg);
  166.  
  167.             client.sendText('6282285664114' + '@c.us', 'Welcome Venom 🕷')
  168.                 .then((result) => {
  169.                     //console.log('Result: ', result); //return object success
  170.                     console.log('sukses send wa');
  171.                 })
  172.                 .catch((erro) => {
  173.                     console.error('Error when sending: ', erro); //return object error
  174.                 });
  175.         });
  176.  
  177.         // client
  178.         //     .sendImage(
  179.         //         '6282285664114@c.us',
  180.         //         __dirname + '/assets/image/sebuahhobi.png',
  181.         //         'image-name',
  182.         //         'Caption text'
  183.         //     )
  184.         //     .then((result) => {
  185.         //         console.log('Result: ', result); //return object success
  186.         //     })
  187.         //     .catch((erro) => {
  188.         //         console.error('Error when sending: ', erro); //return object error
  189.         //     });
  190.  
  191.         console.log('connected');
  192.     });
  193. }
  194.  
  195.  
  196.  
  197.  
  198. // app.get('/', (req, res) => {
  199. //     //res.sendFile(__dirname + '/index.html');
  200. // });
Add Comment
Please, Sign In to add comment