@deathnaitsa/wa-api 1.0.45 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +348 -0
- package/build.js +73 -0
- package/dist/WhatsAppClient.js +1 -0
- package/dist/index.js +1 -21
- package/package.json +9 -32
- package/socket.js +424 -0
- package/LICENSE +0 -2
- package/dist/Defaults/index.d.ts +0 -18
- package/dist/Defaults/index.d.ts.map +0 -1
- package/dist/Defaults/index.js +0 -28
- package/dist/Error/index.d.ts +0 -5
- package/dist/Error/index.d.ts.map +0 -1
- package/dist/Error/index.js +0 -14
- package/dist/Messaging/index.d.ts +0 -44
- package/dist/Messaging/index.d.ts.map +0 -1
- package/dist/Messaging/index.js +0 -121
- package/dist/Socket/Socket.d.ts +0 -21
- package/dist/Socket/Socket.d.ts.map +0 -1
- package/dist/Socket/Socket.interface.d.ts +0 -4
- package/dist/Socket/Socket.interface.d.ts.map +0 -1
- package/dist/Socket/Socket.interface.js +0 -2
- package/dist/Socket/Socket.js +0 -31
- package/dist/Socket/index.d.ts +0 -22
- package/dist/Socket/index.d.ts.map +0 -1
- package/dist/Socket/index.js +0 -375
- package/dist/Types/WhatsappOptions.d.ts +0 -3
- package/dist/Types/WhatsappOptions.d.ts.map +0 -1
- package/dist/Types/WhatsappOptions.js +0 -2
- package/dist/Types/index.d.ts +0 -51
- package/dist/Types/index.d.ts.map +0 -1
- package/dist/Types/index.js +0 -2
- package/dist/Utils/create-delay.d.ts +0 -2
- package/dist/Utils/create-delay.d.ts.map +0 -1
- package/dist/Utils/create-delay.js +0 -18
- package/dist/Utils/error.d.ts +0 -4
- package/dist/Utils/error.d.ts.map +0 -1
- package/dist/Utils/error.js +0 -8
- package/dist/Utils/index.d.ts +0 -5
- package/dist/Utils/index.d.ts.map +0 -1
- package/dist/Utils/index.js +0 -21
- package/dist/Utils/is-exist.d.ts +0 -3
- package/dist/Utils/is-exist.d.ts.map +0 -1
- package/dist/Utils/is-exist.js +0 -38
- package/dist/Utils/message-status.d.ts +0 -4
- package/dist/Utils/message-status.d.ts.map +0 -1
- package/dist/Utils/message-status.js +0 -18
- package/dist/Utils/phone-to-jid.d.ts +0 -5
- package/dist/Utils/phone-to-jid.d.ts.map +0 -1
- package/dist/Utils/phone-to-jid.js +0 -30
- package/dist/Utils/save-media.d.ts +0 -5
- package/dist/Utils/save-media.d.ts.map +0 -1
- package/dist/Utils/save-media.js +0 -47
- package/dist/Utils/set-credentials-dir.d.ts +0 -2
- package/dist/Utils/set-credentials-dir.d.ts.map +0 -1
- package/dist/Utils/set-credentials-dir.js +0 -8
- package/dist/Utils/set-credentials.d.ts +0 -2
- package/dist/Utils/set-credentials.d.ts.map +0 -1
- package/dist/Utils/set-credentials.js +0 -8
- package/dist/index.d.ts +0 -6
- package/dist/index.d.ts.map +0 -1
- package/dist/whatsapp/index.d.ts +0 -15
- package/dist/whatsapp/index.d.ts.map +0 -1
- package/dist/whatsapp/index.js +0 -206
- package/readme.md +0 -223
package/dist/index.js
CHANGED
|
@@ -1,21 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./Socket"), exports);
|
|
18
|
-
__exportStar(require("./Messaging"), exports);
|
|
19
|
-
__exportStar(require("./Utils"), exports);
|
|
20
|
-
__exportStar(require("./Types"), exports);
|
|
21
|
-
__exportStar(require("./Error"), exports);
|
|
1
|
+
(function(_0x22c0c4,_0x116843){const _0x2e7d83={_0x37217f:0x2d0,_0x543c49:0x2b7,_0x16a3d2:0x2ec,_0x5efd9a:0x181,_0x456f9d:0x18f,_0x315bc5:0x199,_0x34ce31:0x2bf,_0x165ba4:0x2b3,_0x576189:0x2e0,_0x3451aa:0x175,_0x35d927:0x18b,_0x5ca88f:0x2f3,_0x56f9b3:0x2d7,_0x391268:0x2cd,_0xa028eb:0x1a6},_0x235b10={_0x562b1a:0xff};function _0xedec20(_0x4268b6,_0x3209e6,_0x8560d6,_0x3dff45){return _0x46d8(_0x4268b6- -0x366,_0x3209e6);}function _0xceea0f(_0x488c1a,_0x18a397,_0x16b9e9,_0x52e616){return _0x46d8(_0x16b9e9-_0x235b10._0x562b1a,_0x488c1a);}const _0x5dbf53=_0x22c0c4();while(!![]){try{const _0x40311d=-parseInt(_0xedec20(-_0x2e7d83._0x37217f,-0x2ee,-_0x2e7d83._0x543c49,-_0x2e7d83._0x16a3d2))/(-0x23*-0x35+0x962*-0x1+0x224)*(parseInt(_0xceea0f(_0x2e7d83._0x5efd9a,0x19b,_0x2e7d83._0x456f9d,_0x2e7d83._0x315bc5))/(-0xf39+-0x28d*0x6+0x1e89))+parseInt(_0xedec20(-0x2c3,-0x2b4,-0x2b7,-0x2d4))/(0x4ce+0x499*-0x7+-0x1*-0x1b64)+parseInt(_0xedec20(-_0x2e7d83._0x34ce31,-0x2d0,-0x2c8,-0x2c9))/(-0xbe2+0x366+0x880)*(parseInt(_0xedec20(-0x2c2,-_0x2e7d83._0x165ba4,-_0x2e7d83._0x576189,-0x2d3))/(-0x9*-0x4+-0x15b*-0x13+0x2*-0xcf0))+-parseInt(_0xceea0f(_0x2e7d83._0x3451aa,0x198,_0x2e7d83._0x35d927,0x18e))/(-0x183d+-0x1*0x1315+-0x4c*-0x92)+parseInt(_0xedec20(-0x2e2,-_0x2e7d83._0x5ca88f,-0x2e1,-0x2f3))/(0x1*0xffa+0x61d*0x5+0x1a*-0x1ca)+-parseInt(_0xedec20(-_0x2e7d83._0x56f9b3,-0x2e5,-0x2e1,-_0x2e7d83._0x391268))/(-0x160c+-0x1acb+0x30df*0x1)*(parseInt(_0xedec20(-0x2d1,-_0x2e7d83._0x391268,-0x2d7,-0x2de))/(0x5c3*0x1+0xc*0xc5+-0xef6))+-parseInt(_0xceea0f(0x186,_0x2e7d83._0xa028eb,0x192,0x17b))/(-0x1c5d+0x2*0x98b+-0xf*-0x9f);if(_0x40311d===_0x116843)break;else _0x5dbf53['push'](_0x5dbf53['shift']());}catch(_0x1ca98e){_0x5dbf53['push'](_0x5dbf53['shift']());}}}(_0x3ba7,0x1*0x13823+-0xf*0x47e1+-0xd42*-0x71));const _0x16a060=(function(){const _0x43f616={_0x11d809:0xc7,_0xccefed:0x113,_0x40d5c3:0xb7,_0x511d66:0xa7,_0x1c5be1:0x9f},_0x3aeba4={_0x15fb96:0xdb,_0x5e3b9c:0xf6,_0x1567fb:0xce},_0x25fb09={_0x2f4b20:0x193,_0x9b53f7:0x4e},_0x508974={_0x27aa68:0x20},_0x1539f7={'eeQcA':'(((.+)+)+)'+'+$','dtjkM':function(_0x20a08e){return _0x20a08e();},'SoXgr':function(_0x3b0ec7,_0x244cf5){return _0x3b0ec7!==_0x244cf5;},'uQgTI':_0x2b47a9(0xc9,0xc2,0xaf,_0x43f616._0x11d809),'jQeia':function(_0x2dcdd7,_0x4601d8){return _0x2dcdd7===_0x4601d8;},'vtNlK':_0x2f2a12(0xfb,_0x43f616._0xccefed,0x117,0xec),'BDIGm':_0x2b47a9(0xa9,_0x43f616._0x40d5c3,_0x43f616._0x511d66,_0x43f616._0x1c5be1)};function _0x2b47a9(_0x1596a5,_0x19c592,_0x166c8b,_0x55e03a){return _0x46d8(_0x19c592-_0x508974._0x27aa68,_0x1596a5);}let _0x1a1717=!![];function _0x2f2a12(_0xff8f6,_0x307b64,_0x54233d,_0x55fddc){return _0x46d8(_0xff8f6-0x83,_0x307b64);}return function(_0x4f7926,_0x58341f){const _0x37a2fd={_0x3584c3:0x1d3,_0x363b96:0x1ca,_0x40c069:0x1ef,_0xb2b1f2:0x1b8,_0x3f678b:0x1c7,_0x59b574:0x1be,_0x28d6a3:0x1d0,_0x341a93:0x1ea,_0x4b0bd4:0x1e7,_0x147d26:0x1b6,_0x4fdfb4:0x1c9,_0x19f687:0x1c5,_0x29b02e:0x1c0,_0x2a6d80:0x1a9,_0x29be1c:0x182,_0x1a6198:0x19c,_0x3d273a:0x1c6,_0x123ac0:0x1d0,_0xf0963d:0x1b5,_0x509d8f:0x1f8,_0x25f503:0x21b},_0x2d3ae7={_0x5268e0:0x8e,_0x46cb3d:0xa4,_0x2ac086:0x9c,_0x4faa37:0xa2};function _0x1428e5(_0x56bd5e,_0x2d43db,_0x220eb7,_0x5f4fc0){return _0x2b47a9(_0x2d43db,_0x56bd5e- -_0x25fb09._0x2f4b20,_0x220eb7-_0x25fb09._0x9b53f7,_0x5f4fc0-0x1a1);}if(_0x1539f7['BDIGm']!=='SUZjO'){if(_0x52616e){const _0xa7ab94=_0x5ca371[_0x1428e5(-_0x3aeba4._0x15fb96,-_0x3aeba4._0x5e3b9c,-_0x3aeba4._0x1567fb,-0xd1)](_0x2d6337,arguments);return _0x4669ca=null,_0xa7ab94;}}else{const _0x258b0b=_0x1a1717?function(){const _0x598f1d={_0x41fa07:0x15f,_0x1f6c41:0x1b},_0x149ba2={_0x24e839:0x108,_0x52eef6:0x107},_0x524585={_0x4320ae:0xd5};function _0x4b660e(_0x3c635c,_0x33cbb2,_0x4231a4,_0x30cbde){return _0x1428e5(_0x30cbde- -_0x524585._0x4320ae,_0x4231a4,_0x4231a4-0xf1,_0x30cbde-0xe5);}function _0x3b63c6(_0xda9557,_0x5c6309,_0x234151,_0x488237){return _0x1428e5(_0xda9557- -_0x149ba2._0x24e839,_0x5c6309,_0x234151-0x1b9,_0x488237-_0x149ba2._0x52eef6);}const _0x5bfabc={'KRbFO':_0x1539f7[_0x4b660e(-0x1b0,-_0x37a2fd._0x3584c3,-0x1e3,-_0x37a2fd._0x363b96)],'jgQbA':function(_0x5ec384){function _0x33626c(_0x183c86,_0x599da4,_0x217bbd,_0x4901d0){return _0x4b660e(_0x183c86-_0x598f1d._0x41fa07,_0x599da4-_0x598f1d._0x1f6c41,_0x4901d0,_0x183c86-0x133);}return _0x1539f7[_0x33626c(-_0x2d3ae7._0x5268e0,-_0x2d3ae7._0x46cb3d,-_0x2d3ae7._0x2ac086,-_0x2d3ae7._0x4faa37)](_0x5ec384);}};if(_0x1539f7['SoXgr'](_0x3b63c6(-0x1f5,-_0x37a2fd._0x40c069,-_0x37a2fd._0x40c069,-0x1e3),_0x1539f7[_0x4b660e(-_0x37a2fd._0xb2b1f2,-_0x37a2fd._0x3f678b,-0x1b9,-0x1ad)])){if(_0x58341f){if(_0x1539f7[_0x4b660e(-_0x37a2fd._0x59b574,-0x19c,-0x1a9,-0x1af)](_0x3b63c6(-_0x37a2fd._0x28d6a3,-_0x37a2fd._0x341a93,-0x1b3,-_0x37a2fd._0x4b0bd4),_0x1539f7[_0x4b660e(-_0x37a2fd._0x147d26,-_0x37a2fd._0x4fdfb4,-0x1cd,-0x1cb)]))return _0x34868c[_0x4b660e(-_0x37a2fd._0x19f687,-0x19d,-_0x37a2fd._0x29b02e,-_0x37a2fd._0x2a6d80)]()[_0x3b63c6(-0x207,-0x200,-0x1ee,-0x212)](_0x5bfabc[_0x3b63c6(-0x1f3,-0x1fc,-0x1ee,-0x209)])['toString']()[_0x4b660e(-0x18e,-_0x37a2fd._0x29be1c,-0x19d,-_0x37a2fd._0x1a6198)+'r'](_0x501c85)[_0x4b660e(-_0x37a2fd._0x3d273a,-0x1da,-_0x37a2fd._0x123ac0,-0x1d4)](_0x5bfabc[_0x4b660e(-0x1b7,-0x1c5,-_0x37a2fd._0xf0963d,-_0x37a2fd._0x29b02e)]);else{const _0x3be2a0=_0x58341f['apply'](_0x4f7926,arguments);return _0x58341f=null,_0x3be2a0;}}}else return _0x5bfabc['jgQbA'](_0x1e84a0)['countRecei'+_0x3b63c6(-0x200,-_0x37a2fd._0x509d8f,-_0x37a2fd._0x25f503,-0x1ef)](_0x50198d);}:function(){};return _0x1a1717=![],_0x258b0b;}};}()),_0x2cc326=_0x16a060(this,function(){const _0x2fb9ac={_0x22154e:0x1ac,_0x59aee1:0x19f,_0x547e51:0x2ee,_0x4b3779:0x2d2,_0x43406b:0x2eb,_0x34f8f5:0x2da,_0x46da9a:0x308,_0x51ccf3:0x2f7,_0x241b55:0x18f,_0x1f6257:0x179,_0x33e77c:0x1b5,_0x128719:0x1bf,_0x59120b:0x1ce,_0x93d5b7:0x1ca,_0x3d760a:0x306,_0x57395a:0x302,_0xcbb256:0x2db},_0x4136d8={_0x170203:0x25a};function _0x395847(_0x3ff22d,_0x33a939,_0x57ee73,_0x2d4bc1){return _0x46d8(_0x3ff22d-0x121,_0x57ee73);}function _0x22ba42(_0x27ee70,_0x1aac89,_0xda55fe,_0x2c3c50){return _0x46d8(_0x27ee70-_0x4136d8._0x170203,_0xda55fe);}const _0xd3ed81={};_0xd3ed81[_0x395847(_0x2fb9ac._0x22154e,_0x2fb9ac._0x59aee1,0x198,0x1ab)]=_0x22ba42(_0x2fb9ac._0x547e51,_0x2fb9ac._0x4b3779,_0x2fb9ac._0x43406b,_0x2fb9ac._0x34f8f5)+'+$';const _0x5e7c30=_0xd3ed81;return _0x2cc326[_0x22ba42(0x2f9,_0x2fb9ac._0x46da9a,_0x2fb9ac._0x51ccf3,0x2f1)]()[_0x395847(0x195,_0x2fb9ac._0x241b55,0x194,_0x2fb9ac._0x1f6257)](_0x395847(_0x2fb9ac._0x33e77c,0x19e,_0x2fb9ac._0x128719,_0x2fb9ac._0x59120b)+'+$')[_0x395847(0x1c0,0x1de,0x1b7,_0x2fb9ac._0x93d5b7)]()[_0x22ba42(_0x2fb9ac._0x3d760a,0x2f3,0x2fe,0x30d)+'r'](_0x2cc326)['search'](_0x5e7c30[_0x22ba42(0x2e5,_0x2fb9ac._0x57395a,_0x2fb9ac._0xcbb256,0x302)]);});_0x2cc326();import _0x524944 from'./WhatsAppClient.js';function _0x3ba7(){const _0x24f21d=['kcGOlISPkYKRkq','mJy3mdu5n2zeEeXJCq','mtK1mJuZvgXXC09r','u1vAAK8','yxbWBhK','ALfLAwe','rgjhyK8','DvfNveK','ChjPBNrruG','lI9ZzxnZAw9UCW','z2v0u2vZC2LVBG','Dg9tDhjPBMC','zgvMyxvSDa','A0Pgvwu','Du1uD2K','odi0nZKWD01ty29n','ntGYnJvWsLbVAwK','Aw9UCW','zgDqA28','mti4suPoEhLl','Dgf0CW','tgf5tfO','tNzWBeK','teDUteS','y29UC3rYDwn0BW','y29UBMvJDgvK','zgLZy29UBMvJDa','C2vHCMnO','EM5VD0K','yxv0B1jLy29UBG','uuLPrLK','s2LUquy','z2v0qwXSu2vZCW','BhLRBKq','DMvKtwvZC2fNzq','Ae5btxq','DNroBeS','zwvry0e','z2v0r2XVyMfSuW','y291BNrszwnLAq','zwn0','rvjQBvO','C2vUzfrLEhq','mJi1mtqWm1Ljz2DkAa','C3rHCNrtzxnZAq','y1niuei','zhrQA00','s1jIrK8','y3jLzgvUDgLHBa','Aw9UC0LUzM8','vuPVseu','otu0nJC4CMnVwKXw','vhj6tgu','C3rVCfnLC3nPBW','oe5PyNnVBG','mMDkqKrQyW','C0rPCG','twPMvMO','mtmWotqYme1fEK5QrW'];_0x3ba7=function(){return _0x24f21d;};return _0x3ba7();}export let client=null;function _0x3180ee(_0x264ed7,_0x44536f,_0x5a8e5d,_0x303345){return _0x46d8(_0x44536f-0x250,_0x303345);}function getClient(){const _0x2037be={_0x3c2940:0x34f,_0x2d5468:0x369,_0x61249b:0x34e,_0x58f998:0x346,_0x3704c8:0x37d,_0x180680:0x36c,_0x5bc697:0x369,_0x2d7b62:0xd,_0x351bce:0x3,_0x144d2f:0x1c,_0xa4fd15:0x22,_0x12354c:0x3f,_0x5a3dc1:0x8,_0x103432:0x28,_0xbe7c55:0x34c,_0x4fa006:0x375,_0x4d1382:0x18,_0xc55e06:0x11,_0x2f5058:0x364,_0x4e9550:0x351,_0x385f1b:0x352,_0x3fa099:0xe,_0x3d68dd:0x18,_0x6cf589:0x1a,_0x4ec143:0xb};function _0x46c32c(_0x4318d9,_0x15ffa3,_0x1aad11,_0x32663c){return _0x46d8(_0x1aad11-0x2cf,_0x15ffa3);}const _0x43157b={};_0x43157b[_0x46c32c(0x342,0x32e,0x346,_0x2037be._0x3c2940)]=function(_0x3323a7,_0x1bb671){return _0x3323a7===_0x1bb671;},_0x43157b['RrFrK']=_0x46c32c(0x360,0x386,_0x2037be._0x2d5468,_0x2037be._0x61249b),_0x43157b[_0x109f4d(0x22,0x27,0x3d,0x1d)]=_0x46c32c(0x33d,_0x2037be._0x58f998,0x344,0x33e),_0x43157b['ERjmZ']=_0x46c32c(_0x2037be._0x3704c8,0x364,_0x2037be._0x180680,_0x2037be._0x5bc697);const _0x4e1cba=_0x43157b;if(!client){if(_0x4e1cba[_0x109f4d(-_0x2037be._0x2d7b62,_0x2037be._0x351bce,-0x14,-_0x2037be._0x144d2f)](_0x4e1cba['RrFrK'],_0x4e1cba[_0x109f4d(_0x2037be._0xa4fd15,_0x2037be._0x12354c,0x27,_0x2037be._0x5a3dc1)]))return _0x411aa4()[_0x109f4d(-0xb,-_0x2037be._0x103432,-0xf,-0x8)+_0x46c32c(_0x2037be._0xbe7c55,_0x2037be._0x4fa006,0x359,0x359)]();else{const _0x1ce9ac={};_0x1ce9ac[_0x109f4d(_0x2037be._0x4d1382,0x10,0x31,_0x2037be._0xc55e06)]=!![],_0x1ce9ac[_0x46c32c(0x370,0x365,0x358,0x33b)+_0x109f4d(_0x2037be._0x2d7b62,-0x3,-0xf,-0x8)]=_0x4e1cba[_0x46c32c(0x366,_0x2037be._0x2f5058,_0x2037be._0x4e9550,_0x2037be._0x385f1b)],_0x1ce9ac[_0x109f4d(-_0x2037be._0x3fa099,-0x1d,-_0x2037be._0x3d68dd,-0xd)+_0x109f4d(-0x3,-0x4,_0x2037be._0x6cf589,_0x2037be._0x4ec143)]=![],client=new _0x524944(_0x1ce9ac);}}function _0x109f4d(_0x1f2a95,_0x4359b2,_0x36369f,_0x44394e){return _0x46d8(_0x1f2a95- -0x84,_0x44394e);}return client;}export async function startSession(_0x5c64da=_0x3180ee(0x2e2,0x2f0,0x2d8,0x2d5),_0x47a9e1={}){const _0x3568c6={_0x207893:0x398,_0x276a05:0x36e,_0x5d4ecb:0x391,_0x23b9e3:0x389,_0x3e490f:0x350,_0x3503e5:0x368,_0x5b0bf9:0x36d},_0x3111c7={_0x5e11d2:0x14b,_0x5449a3:0x5ec,_0x27f495:0x1a8},_0x11cf30={_0x56a29b:0xed};function _0x5dd8bc(_0x414a2f,_0x1d779f,_0x42d8a4,_0x1b1b64){return _0x3180ee(_0x414a2f-0x77,_0x1b1b64-0x98,_0x42d8a4-_0x11cf30._0x56a29b,_0x1d779f);}const _0x17f119={'kJFUe':function(_0x2677e5){return _0x2677e5();}};function _0x2b65bc(_0x317dee,_0x3890e3,_0x529bdc,_0x4ca839){return _0x3180ee(_0x317dee-_0x3111c7._0x5e11d2,_0x4ca839- -_0x3111c7._0x5449a3,_0x529bdc-_0x3111c7._0x27f495,_0x529bdc);}return await _0x17f119[_0x5dd8bc(_0x3568c6._0x207893,_0x3568c6._0x276a05,_0x3568c6._0x5d4ecb,_0x3568c6._0x23b9e3)](getClient)[_0x5dd8bc(0x376,_0x3568c6._0x3e490f,_0x3568c6._0x3503e5,_0x3568c6._0x5b0bf9)+'on'](_0x5c64da,_0x47a9e1);}export async function sendText(_0x681603,_0x18350b,_0x4db818){const _0x572e36={_0x4b8a0e:0x17a,_0x1ff268:0x173,_0x301982:0x3b8},_0x4797e1={_0x3e5b5e:0x3b},_0x51ed4d={_0x2b5269:0x1a,_0x1699fe:0xe7,_0x4ea5bc:0x191};function _0x5216d4(_0x322359,_0x437c3f,_0x37ec8f,_0x4b7efe){return _0x3180ee(_0x322359-_0x51ed4d._0x2b5269,_0x322359-_0x51ed4d._0x1699fe,_0x37ec8f-_0x51ed4d._0x4ea5bc,_0x37ec8f);}function _0x2dfe21(_0x20e17d,_0x2b287e,_0x419437,_0x3795ce){return _0x3180ee(_0x20e17d-_0x4797e1._0x3e5b5e,_0x3795ce- -0x47e,_0x419437-0x11,_0x20e17d);}const _0x2f8c4d={'LayLZ':function(_0xc0525){return _0xc0525();}};return await _0x2f8c4d[_0x2dfe21(-0x176,-_0x572e36._0x4b8a0e,-_0x572e36._0x1ff268,-0x185)](getClient)[_0x5216d4(0x3ba,0x3ca,0x3a2,_0x572e36._0x301982)](_0x681603,_0x18350b,_0x4db818);}export function onMessage(_0x13e042){const _0x191804={_0x50cbbc:0x28f,_0x304a0b:0x291,_0x556468:0x287},_0x1729d7={_0x3553c5:0x4d,_0x41018a:0x2a},_0x3c346d={};function _0x124504(_0x44fe04,_0x1c9c77,_0x20d559,_0x1877a5){return _0x3180ee(_0x44fe04-_0x1729d7._0x3553c5,_0x1c9c77- -0x6b,_0x20d559-_0x1729d7._0x41018a,_0x44fe04);}_0x3c346d['NvplI']='message';const _0x2a15cd=_0x3c346d;getClient()['on'](_0x2a15cd[_0x124504(0x297,_0x191804._0x50cbbc,_0x191804._0x304a0b,_0x191804._0x556468)],_0x13e042);}export function onConnected(_0x2aa192){const _0x3a210b={_0x36c492:0x165,_0x292924:0x171,_0x14cbef:0x156,_0x599a83:0x280,_0x517e12:0x27f,_0x2e0e4d:0x26c,_0x4657b0:0x267},_0x467d15={_0x33a47d:0x88},_0x16d201={_0x48df41:0xd9},_0x1d2b46={};_0x1d2b46[_0x4daac3(0x167,_0x3a210b._0x36c492,_0x3a210b._0x292924,_0x3a210b._0x14cbef)]=_0x26b93f(_0x3a210b._0x599a83,0x28b,0x26b,_0x3a210b._0x517e12);function _0x4daac3(_0x4c558c,_0x211b76,_0x3b6ada,_0x363631){return _0x3180ee(_0x4c558c-0x1bb,_0x4c558c- -0x17b,_0x3b6ada-_0x16d201._0x48df41,_0x3b6ada);}const _0x19857d=_0x1d2b46;function _0x26b93f(_0x2efc30,_0xe5bcda,_0x1603b6,_0x3c605d){return _0x3180ee(_0x2efc30-_0x467d15._0x33a47d,_0x2efc30- -0x7d,_0x1603b6-0x30,_0xe5bcda);}getClient()['on'](_0x19857d[_0x26b93f(0x265,0x256,_0x3a210b._0x2e0e4d,_0x3a210b._0x4657b0)],_0x2aa192);}export function onDisconnected(_0x26c360){const _0x291b11={_0x3a4a63:0x18,_0x384ac9:0x1c,_0x30936d:0x31c,_0x3d2d40:0x333,_0x1847f5:0x350},_0x5c8e40={_0x518445:0xfb,_0x31427f:0xe6},_0x5cc3a0={'HbJuh':function(_0x41cbfb){return _0x41cbfb();},'lyknD':_0xa6bc6e(-0x2e,-0x30,-_0x291b11._0x3a4a63,-_0x291b11._0x384ac9)+'ed'};function _0x34b53f(_0x372ecf,_0x2ed127,_0x40cea6,_0x3e2e29){return _0x3180ee(_0x372ecf-_0x5c8e40._0x518445,_0x40cea6-0x69,_0x40cea6-_0x5c8e40._0x31427f,_0x3e2e29);}function _0xa6bc6e(_0xf632ba,_0x466237,_0x105319,_0x242664){return _0x3180ee(_0xf632ba-0x18c,_0xf632ba- -0x2f1,_0x105319-0xf2,_0x242664);}_0x5cc3a0['HbJuh'](getClient)['on'](_0x5cc3a0[_0x34b53f(0x32b,_0x291b11._0x30936d,_0x291b11._0x3d2d40,_0x291b11._0x1847f5)],_0x26c360);}export function getAllSessions(){const _0x5096d9={_0x9ab50a:0x23c,_0x7f858d:0x255,_0x1b704f:0x25b,_0x329d07:0x227,_0x344fc8:0x24a,_0x3114df:0x26c,_0x365171:0x262},_0x5a9b04={_0x4a24d7:0x1c7,_0x3a0733:0x97},_0x31ff16={_0x82668b:0x1a5,_0xb4c111:0x176};function _0x331c0b(_0x22aa88,_0x17ccc0,_0x1e0b9d,_0x41d06e){return _0x3180ee(_0x22aa88-_0x31ff16._0x82668b,_0x41d06e- -0x554,_0x1e0b9d-_0x31ff16._0xb4c111,_0x1e0b9d);}function _0x52c684(_0x2a5628,_0x55d75f,_0x4b10d9,_0xa0b674){return _0x3180ee(_0x2a5628-_0x5a9b04._0x4a24d7,_0x2a5628- -_0x5a9b04._0x3a0733,_0x4b10d9-0x1ce,_0xa0b674);}const _0x36f717={'TrzLe':function(_0x26405b){return _0x26405b();}};return _0x36f717[_0x52c684(0x246,_0x5096d9._0x9ab50a,_0x5096d9._0x7f858d,_0x5096d9._0x1b704f)](getClient)[_0x52c684(0x232,0x23a,_0x5096d9._0x329d07,_0x5096d9._0x344fc8)+_0x331c0b(-0x26b,-_0x5096d9._0x3114df,-_0x5096d9._0x365171,-0x25f)]();}export async function stopSession(_0x576636){const _0x74951d={_0x35d45c:0x11,_0x5ae1b4:0x1d,_0x4cae72:0x261,_0x138ecb:0x274},_0x355994={_0x2c4c99:0x137};function _0xa9cb85(_0x5be09a,_0x4b0d85,_0x241151,_0xbfc81){return _0x3180ee(_0x5be09a-0x17a,_0xbfc81- -0x2e9,_0x241151-0x143,_0x4b0d85);}function _0x374c9b(_0x3d12d6,_0x160da5,_0x5d0ff4,_0x7109f6){return _0x3180ee(_0x3d12d6-0x114,_0x5d0ff4- -0x6a,_0x5d0ff4-_0x355994._0x2c4c99,_0x160da5);}const _0x2968f1={'hNAMt':function(_0x2cd033){return _0x2cd033();}};return await _0x2968f1[_0xa9cb85(-0x5,-_0x74951d._0x35d45c,-0x17,-_0x74951d._0x5ae1b4)](getClient)[_0x374c9b(0x287,_0x74951d._0x4cae72,_0x74951d._0x138ecb,0x262)+'n'](_0x576636);}export function getSessionInfo(_0x235be0){const _0x37a220={_0x2cc753:0x220},_0x360748={_0x5347a5:0x5d,_0x5c199b:0xbc};function _0xcaf896(_0xdb5e5a,_0x3ca59f,_0x2e9c0d,_0x291b5a){return _0x3180ee(_0xdb5e5a-_0x360748._0x5347a5,_0x291b5a- -0xd6,_0x2e9c0d-_0x360748._0x5c199b,_0xdb5e5a);}return getClient()[_0xcaf896(0x232,0x202,_0x37a220._0x2cc753,0x218)+'Info'](_0x235be0);}export function getAllSessionsInfo(){const _0x2b6a1e={_0x5ee0b0:0x54};function _0x5a5d8f(_0x3058ca,_0x2713d8,_0x326cbf,_0x5e5e6d){return _0x3180ee(_0x3058ca-0x1cb,_0x5e5e6d- -0x27f,_0x326cbf-0x17b,_0x2713d8);}const _0x46144d={'uRoVH':function(_0x585657){return _0x585657();}};return _0x46144d['uRoVH'](getClient)[_0x5a5d8f(0x61,_0x2b6a1e._0x5ee0b0,0x33,0x4a)+'ionsInfo']();}export function getGlobalStats(){const _0x567c39={_0x332cf0:0x27,_0x262874:0x42,_0x5d7c54:0x22,_0x1f1fe6:0x1b,_0x3b08be:0x1ef,_0x3a9de5:0x1f9},_0x3817e1={_0x44892b:0xc7,_0x272397:0x4ed,_0x546f30:0x1cf},_0xbad078={_0x1fd25e:0x155,_0x558793:0x2f6};function _0x35c7e0(_0x11622b,_0x4a9f68,_0x12dcc0,_0x4d2edf){return _0x3180ee(_0x11622b-_0xbad078._0x1fd25e,_0x11622b- -_0xbad078._0x558793,_0x12dcc0-0xb8,_0x4d2edf);}function _0x2a35c9(_0x216902,_0x3a39df,_0x4fae4e,_0x430261){return _0x3180ee(_0x216902-_0x3817e1._0x44892b,_0x3a39df- -_0x3817e1._0x272397,_0x4fae4e-_0x3817e1._0x546f30,_0x430261);}return getClient()[_0x35c7e0(-_0x567c39._0x332cf0,-_0x567c39._0x262874,-_0x567c39._0x5d7c54,-_0x567c39._0x1f1fe6)+_0x2a35c9(-_0x567c39._0x3b08be,-0x1f5,-_0x567c39._0x3a9de5,-0x209)]();}export function countReceivedMessage(_0x2c8908){const _0x39b31e={_0x555077:0x28a,_0x21bfb1:0x28b,_0x55cf31:0x29a,_0x585e3c:0x2aa,_0xb1d1a:0x290},_0x75cf21={_0xfd5541:0x55b,_0x1356a2:0x3c},_0x2e2977={_0x1935e8:0x129};function _0x5879f4(_0xb67b1c,_0x3320ea,_0x12b0a0,_0x3c3c5c){return _0x3180ee(_0xb67b1c-0x56,_0x12b0a0- -0x68,_0x12b0a0-_0x2e2977._0x1935e8,_0xb67b1c);}function _0x73c64a(_0x460c9c,_0x3ab3d8,_0x41804c,_0x5a4e55){return _0x3180ee(_0x460c9c-0x7b,_0x41804c- -_0x75cf21._0xfd5541,_0x41804c-_0x75cf21._0x1356a2,_0x5a4e55);}const _0x5e5b0e={'dTkjU':function(_0x9e1eb8){return _0x9e1eb8();}};return _0x5e5b0e['dTkjU'](getClient)[_0x73c64a(-0x26f,-_0x39b31e._0x555077,-_0x39b31e._0x21bfb1,-_0x39b31e._0x55cf31)+_0x73c64a(-0x2a8,-_0x39b31e._0x585e3c,-_0x39b31e._0xb1d1a,-0x2a8)](_0x2c8908);}export{_0x524944 as WhatsAppClient};function _0x46d8(_0x5d081e,_0x19ac2d){const _0x245c98=_0x3ba7();return _0x46d8=function(_0xf1f15,_0x94313){_0xf1f15=_0xf1f15-(-0x1*-0x1b19+-0x219c+0x21*0x36);let _0x38047d=_0x245c98[_0xf1f15];if(_0x46d8['MJlXrs']===undefined){var _0xe6dc98=function(_0x372112){const _0x25f79c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x521f5a='',_0x505be6='',_0x126008=_0x521f5a+_0xe6dc98;for(let _0x2288e8=-0x1e3b*0x1+0x3*-0x94d+-0x7*-0x84e,_0x1c2a9d,_0x90968c,_0x57ad22=0xffb+-0x3*-0x373+-0x1a54;_0x90968c=_0x372112['charAt'](_0x57ad22++);~_0x90968c&&(_0x1c2a9d=_0x2288e8%(-0x2618+-0xa9+0x19*0x18d)?_0x1c2a9d*(-0x1281*-0x1+0xa5b+0x4*-0x727)+_0x90968c:_0x90968c,_0x2288e8++%(0x1*0x113d+0x38b*-0xb+0x15c0))?_0x521f5a+=_0x126008['charCodeAt'](_0x57ad22+(-0xdf2+0x24d4*0x1+-0x16d8))-(0x1*-0xe12+0xb3*0x1e+0x6*-0x125)!==0x3f7+0x1a91*0x1+-0x7a2*0x4?String['fromCharCode'](0xa96*0x1+-0xcbe+-0x1*-0x327&_0x1c2a9d>>(-(0x6*0x5da+-0x1081*0x1+-0x9*0x211)*_0x2288e8&-0xdc9*0x2+-0xa*0x25+0x7*0x426)):_0x2288e8:0x746+-0x15cf*-0x1+0x1d15*-0x1){_0x90968c=_0x25f79c['indexOf'](_0x90968c);}for(let _0x3169cd=-0x5*0x27+-0x20*0x48+0x9c3,_0x321211=_0x521f5a['length'];_0x3169cd<_0x321211;_0x3169cd++){_0x505be6+='%'+('00'+_0x521f5a['charCodeAt'](_0x3169cd)['toString'](0x25*0x67+-0x12d6+0xd*0x4f))['slice'](-(0x1044+0x2*-0xd1c+0x9f6));}return decodeURIComponent(_0x505be6);};_0x46d8['yBhYmh']=_0xe6dc98,_0x5d081e=arguments,_0x46d8['MJlXrs']=!![];}const _0x29ddd4=_0x245c98[0x2460+-0xa73+0x1*-0x19ed],_0x5db851=_0xf1f15+_0x29ddd4,_0x43398d=_0x5d081e[_0x5db851];if(!_0x43398d){const _0x1afda1=function(_0x2f9bf7){this['BLmnil']=_0x2f9bf7,this['WpYPsn']=[0x1756+0x34*0xb+-0x1991,-0x1a19+-0x893+0x22ac,0xff3*0x1+0x1bfb+-0x2bee*0x1],this['jyrrpw']=function(){return'newState';},this['HXbqBe']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['ybImqY']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x1afda1['prototype']['zauGme']=function(){const _0x4fecb2=new RegExp(this['HXbqBe']+this['ybImqY']),_0x9f559=_0x4fecb2['test'](this['jyrrpw']['toString']())?--this['WpYPsn'][0x17f*-0x11+-0x1896+-0x3206*-0x1]:--this['WpYPsn'][-0x1*-0x98b+-0x24c0+0x1b35];return this['wgnMiO'](_0x9f559);},_0x1afda1['prototype']['wgnMiO']=function(_0x182965){if(!Boolean(~_0x182965))return _0x182965;return this['uDwTmy'](this['BLmnil']);},_0x1afda1['prototype']['uDwTmy']=function(_0x4d56d7){for(let _0xfcc4dd=-0x5ea+-0x2*-0x685+-0x720,_0x1b3633=this['WpYPsn']['length'];_0xfcc4dd<_0x1b3633;_0xfcc4dd++){this['WpYPsn']['push'](Math['round'](Math['random']())),_0x1b3633=this['WpYPsn']['length'];}return _0x4d56d7(this['WpYPsn'][0x1*0x254f+0x9ab+-0x2efa]);},new _0x1afda1(_0x46d8)['zauGme'](),_0x38047d=_0x46d8['yBhYmh'](_0x38047d),_0x5d081e[_0x5db851]=_0x38047d;}else _0x38047d=_0x43398d;return _0x38047d;},_0x46d8(_0x5d081e,_0x19ac2d);}export default _0x524944;
|
package/package.json
CHANGED
|
@@ -1,41 +1,18 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
2
|
"name": "@deathnaitsa/wa-api",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"licenses": "LiCINSE",
|
|
8
|
-
"repository": {
|
|
9
|
-
"type": "git",
|
|
10
|
-
"url": "git+https://github.com/DeathNaitsa/wa-api.git"
|
|
11
|
-
},
|
|
12
|
-
"homepage": "https://github.com/DeathNaitsa/wa-api#readme",
|
|
13
|
-
"bugs": {
|
|
14
|
-
"url": "https://github.com/DeathNaitsa/wa-api/issues"
|
|
15
|
-
},
|
|
16
|
-
"files": [
|
|
17
|
-
"dist/**/*"
|
|
18
|
-
],
|
|
19
6
|
"scripts": {
|
|
20
|
-
"build": "
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
"start": "tsc && node ./dist/index.js",
|
|
24
|
-
"test": "jest",
|
|
25
|
-
"run-script": "node ./dist/index.js"
|
|
7
|
+
"build": "node build.js",
|
|
8
|
+
"prepublishOnly": "npm run build"
|
|
26
9
|
},
|
|
27
|
-
"author": "DeathNaitsa",
|
|
28
|
-
"license": "ISC",
|
|
29
10
|
"dependencies": {
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"@deathnaitsa/baileys": "^1.0.19",
|
|
34
|
-
"mime": "^3.0.0",
|
|
35
|
-
"pino": "^8.11.0",
|
|
36
|
-
"qrcode-terminal": "^0.12.0"
|
|
11
|
+
"baileys": "latest",
|
|
12
|
+
"pino": "latest",
|
|
13
|
+
"qrcode-terminal": "latest"
|
|
37
14
|
},
|
|
38
15
|
"devDependencies": {
|
|
39
|
-
"
|
|
16
|
+
"javascript-obfuscator": "^4.1.0"
|
|
40
17
|
}
|
|
41
18
|
}
|
package/socket.js
ADDED
|
@@ -0,0 +1,424 @@
|
|
|
1
|
+
import { startSession, onMessage, sendText, client, getAllSessionsInfo, getGlobalStats, countReceivedMessage } from './nishi-wa-api-new/src/index.js';
|
|
2
|
+
|
|
3
|
+
// Start sessions
|
|
4
|
+
await startSession('bot');
|
|
5
|
+
await startSession('bot2');
|
|
6
|
+
|
|
7
|
+
// Command lock to prevent duplicate execution
|
|
8
|
+
const commandLocks = new Map();
|
|
9
|
+
|
|
10
|
+
async function acquireLock(key, timeoutMs = 5000) {
|
|
11
|
+
const now = Date.now();
|
|
12
|
+
const existing = commandLocks.get(key);
|
|
13
|
+
|
|
14
|
+
// Check if already locked
|
|
15
|
+
if (existing && now - existing < timeoutMs) {
|
|
16
|
+
return false; // Lock already held
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Acquire lock
|
|
20
|
+
commandLocks.set(key, now);
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function releaseLock(key) {
|
|
25
|
+
commandLocks.delete(key);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// Chat assignment system (only in this bot implementation)
|
|
29
|
+
const chatAssignments = new Map(); // chatId -> sessionId
|
|
30
|
+
|
|
31
|
+
function assignChat(chatId, sessionId) {
|
|
32
|
+
const sessions = client.getAllSessions();
|
|
33
|
+
if (!sessions.includes(sessionId)) {
|
|
34
|
+
throw new Error(`Session '${sessionId}' not found`);
|
|
35
|
+
}
|
|
36
|
+
chatAssignments.set(chatId, sessionId);
|
|
37
|
+
console.log(`📞 Chat ${chatId} assigned to ${sessionId}`);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function getChatAssignment(chatId) {
|
|
41
|
+
return chatAssignments.get(chatId);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function autoAssignChat(chatId, preferredSessionId) {
|
|
45
|
+
const assignedSession = chatAssignments.get(chatId);
|
|
46
|
+
const sessions = client.getAllSessions();
|
|
47
|
+
|
|
48
|
+
// Auto-assign if not assigned or assigned session is offline
|
|
49
|
+
if (!assignedSession || !sessions.includes(assignedSession)) {
|
|
50
|
+
// Prefer the session that received the message
|
|
51
|
+
const newSession = sessions.includes(preferredSessionId) ? preferredSessionId : sessions[0];
|
|
52
|
+
if (newSession) {
|
|
53
|
+
chatAssignments.set(chatId, newSession);
|
|
54
|
+
console.log(`📞 Chat ${chatId} auto-assigned to ${newSession}`);
|
|
55
|
+
return newSession;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return assignedSession;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function isAssignedToSession(chatId, sessionId) {
|
|
63
|
+
const assignedSession = autoAssignChat(chatId, sessionId);
|
|
64
|
+
return assignedSession === sessionId;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
console.log('\n📱 WhatsApp Bot läuft!');
|
|
68
|
+
console.log('WhatsApp Befehle:');
|
|
69
|
+
console.log(' !ping - Bot testen (nur diese Session)');
|
|
70
|
+
console.log(' !ping all - Alle Sessions testen');
|
|
71
|
+
console.log(' !info - Nachrichteninfo anzeigen');
|
|
72
|
+
console.log(' !liste - Alle Sessions auflisten');
|
|
73
|
+
console.log(' !stats - Detaillierte Session-Statistiken');
|
|
74
|
+
console.log(' !gesamtstats - Gesamtstatistik aller Sessions');
|
|
75
|
+
console.log(' !neustart <id> - Session neu starten');
|
|
76
|
+
console.log(' !pause <id> - Session pausieren');
|
|
77
|
+
console.log(' !fortsetzen <id> - Session fortsetzen');
|
|
78
|
+
console.log(' !stopp <id> - Session stoppen');
|
|
79
|
+
console.log(' !löschen <id> - Session-Daten löschen');
|
|
80
|
+
console.log(' !start <id> - Neue Session starten');
|
|
81
|
+
console.log(' !zuweisen <id> - Diesen Chat einer Session zuweisen');
|
|
82
|
+
console.log(' !zuweisungen - Alle Chat-Zuweisungen anzeigen\n');
|
|
83
|
+
|
|
84
|
+
// WhatsApp message handler
|
|
85
|
+
onMessage(async (msg) => {
|
|
86
|
+
// Ignore own messages
|
|
87
|
+
if (msg.fromMe) return;
|
|
88
|
+
|
|
89
|
+
// Check if this message is assigned to this session
|
|
90
|
+
if (!isAssignedToSession(msg.from, msg.sessionId)) {
|
|
91
|
+
const assignedTo = getChatAssignment(msg.from);
|
|
92
|
+
console.log(`⏭️ Skipping message for ${msg.from} (assigned to ${assignedTo})`);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Count this message (only for assigned session to avoid duplicates)
|
|
97
|
+
countReceivedMessage(msg.sessionId);
|
|
98
|
+
|
|
99
|
+
// Mark when we received and started processing this message
|
|
100
|
+
const messageProcessingStart = Date.now();
|
|
101
|
+
|
|
102
|
+
const [cmd, ...args] = msg.message.trim().split(' ');
|
|
103
|
+
const targetSession = args[0];
|
|
104
|
+
|
|
105
|
+
// Helper to safely send messages
|
|
106
|
+
const safeSend = async (text) => {
|
|
107
|
+
try {
|
|
108
|
+
const sessions = client.getAllSessions();
|
|
109
|
+
if (sessions.includes(msg.sessionId)) {
|
|
110
|
+
await sendText(msg.sessionId, msg.from, text);
|
|
111
|
+
}
|
|
112
|
+
} catch (e) {
|
|
113
|
+
console.error('Could not send message:', e.message);
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
try {
|
|
118
|
+
switch (cmd) {
|
|
119
|
+
case '!ping':
|
|
120
|
+
if (targetSession === 'all') {
|
|
121
|
+
// Test all sessions
|
|
122
|
+
const allSessions = client.getAllSessions();
|
|
123
|
+
let pingMessage = '🏓 *Ping Test - Alle Sessions*\n\n';
|
|
124
|
+
|
|
125
|
+
for (const sid of allSessions) {
|
|
126
|
+
const sessionSendStart = Date.now();
|
|
127
|
+
try {
|
|
128
|
+
// Send test message and measure time
|
|
129
|
+
await sendText(sid, msg.from, '🏓 Ping...');
|
|
130
|
+
const sendTime = Date.now() - sessionSendStart;
|
|
131
|
+
pingMessage += `🟢 *${sid}*: ${sendTime}ms\n`;
|
|
132
|
+
} catch (e) {
|
|
133
|
+
pingMessage += `🔴 *${sid}*: Fehler\n`;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// Final summary message
|
|
138
|
+
const totalLatency = Date.now() - messageProcessingStart;
|
|
139
|
+
pingMessage += `\n⏱️ Gesamt: ${totalLatency}ms`;
|
|
140
|
+
await sendText(msg.sessionId, msg.from, pingMessage);
|
|
141
|
+
} else {
|
|
142
|
+
// Only test current session - measure send time
|
|
143
|
+
const sendStart = Date.now();
|
|
144
|
+
await sendText(msg.sessionId, msg.from, `🏓 Pong!`);
|
|
145
|
+
const sendTime = Date.now() - sendStart;
|
|
146
|
+
const totalLatency = Date.now() - messageProcessingStart;
|
|
147
|
+
|
|
148
|
+
// Send detailed timing
|
|
149
|
+
const timingInfo = `⏱️ Verarbeitung: ${totalLatency}ms\n📤 Sendezeit: ${sendTime}ms`;
|
|
150
|
+
await sendText(msg.sessionId, msg.from, timingInfo);
|
|
151
|
+
}
|
|
152
|
+
break;
|
|
153
|
+
|
|
154
|
+
case '!info':
|
|
155
|
+
const info = `📱 *Session Info*\n\nSession: ${msg.sessionId}\nVon: ${msg.from}\nName: ${msg.name}\nGruppe: ${msg.isGroup ? 'Ja' : 'Nein'}\nTyp: ${msg.type}\nZeitstempel: ${new Date(msg.timestamp * 1000).toLocaleString('de-DE')}`;
|
|
156
|
+
await sendText(msg.sessionId, msg.from, info);
|
|
157
|
+
break;
|
|
158
|
+
|
|
159
|
+
case '!liste':
|
|
160
|
+
const sessions = client.getAllSessions();
|
|
161
|
+
const response = sessions.length
|
|
162
|
+
? `📋 *Aktive Sessions:*\n\n${sessions.map(s => `• ${s}`).join('\n')}`
|
|
163
|
+
: '❌ Keine aktiven Sessions';
|
|
164
|
+
await sendText(msg.sessionId, msg.from, response);
|
|
165
|
+
break;
|
|
166
|
+
|
|
167
|
+
case '!stats':
|
|
168
|
+
const allStats = getAllSessionsInfo();
|
|
169
|
+
|
|
170
|
+
if (allStats.length === 0) {
|
|
171
|
+
await safeSend('❌ Keine Sessions vorhanden');
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
let statsMessage = '📊 *Session Statistiken*\n\n';
|
|
176
|
+
|
|
177
|
+
for (const stat of allStats) {
|
|
178
|
+
const statusEmoji = stat.isActive ? '🟢' :
|
|
179
|
+
stat.status === 'stopped' ? '🔴' :
|
|
180
|
+
stat.status === 'paused' ? '⏸️' : '⚪';
|
|
181
|
+
|
|
182
|
+
const statusText = stat.isActive ? 'Aktiv' :
|
|
183
|
+
stat.status === 'stopped' ? 'Gestoppt' :
|
|
184
|
+
stat.status === 'paused' ? 'Pausiert' :
|
|
185
|
+
stat.status === 'connecting' ? 'Verbindet...' :
|
|
186
|
+
stat.status === 'disconnected' ? 'Getrennt' :
|
|
187
|
+
stat.status;
|
|
188
|
+
|
|
189
|
+
const totalMsgs = (stat.messagesReceived || 0) + (stat.messagesSent || 0);
|
|
190
|
+
|
|
191
|
+
statsMessage += `${statusEmoji} *${stat.sessionId}*\n`;
|
|
192
|
+
statsMessage += `├─ Status: ${statusText}\n`;
|
|
193
|
+
statsMessage += `├─ Uptime: ${stat.uptimeFormatted}\n`;
|
|
194
|
+
statsMessage += `├─ Neustarts: ${stat.restartCount}\n`;
|
|
195
|
+
statsMessage += `└─ Nachrichten: ${totalMsgs} (↓${stat.messagesReceived || 0} / ↑${stat.messagesSent || 0})\n\n`;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
statsMessage += `_Gesamt: ${allStats.length} Session(s)_`;
|
|
199
|
+
await safeSend(statsMessage);
|
|
200
|
+
break;
|
|
201
|
+
|
|
202
|
+
case '!gesamtstats':
|
|
203
|
+
const globalStats = getGlobalStats();
|
|
204
|
+
|
|
205
|
+
const formatDate = (timestamp) => {
|
|
206
|
+
const date = new Date(timestamp);
|
|
207
|
+
return date.toLocaleString('de-DE', {
|
|
208
|
+
day: '2-digit',
|
|
209
|
+
month: '2-digit',
|
|
210
|
+
year: 'numeric',
|
|
211
|
+
hour: '2-digit',
|
|
212
|
+
minute: '2-digit'
|
|
213
|
+
});
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
const formatUptime = (ms) => {
|
|
217
|
+
const seconds = Math.floor(ms / 1000);
|
|
218
|
+
const minutes = Math.floor(seconds / 60);
|
|
219
|
+
const hours = Math.floor(minutes / 60);
|
|
220
|
+
const days = Math.floor(hours / 24);
|
|
221
|
+
|
|
222
|
+
if (days > 0) return `${days}d ${hours % 24}h ${minutes % 60}m`;
|
|
223
|
+
if (hours > 0) return `${hours}h ${minutes % 60}m`;
|
|
224
|
+
if (minutes > 0) return `${minutes}m`;
|
|
225
|
+
return `${seconds}s`;
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
const totalMessages = (globalStats.totalMessagesReceived || 0) + (globalStats.totalMessagesSent || 0);
|
|
229
|
+
const received = (globalStats.totalMessagesReceived || 0).toLocaleString('de-DE');
|
|
230
|
+
const sent = (globalStats.totalMessagesSent || 0).toLocaleString('de-DE');
|
|
231
|
+
|
|
232
|
+
let globalMessage = '📊 *Gesamtstatistik*\n\n';
|
|
233
|
+
globalMessage += `📨 Nachrichten: ${totalMessages.toLocaleString('de-DE')} (↓${received} / ↑${sent})\n`;
|
|
234
|
+
globalMessage += `🔢 Sessions: ${globalStats.totalSessions}\n`;
|
|
235
|
+
globalMessage += `🔄 Neustarts: ${globalStats.totalRestarts}\n`;
|
|
236
|
+
globalMessage += `⏱️ Gesamtlaufzeit: ${formatUptime(globalStats.totalUptime)}\n`;
|
|
237
|
+
globalMessage += `🗓️ Seit: ${formatDate(globalStats.firstStarted)}\n`;
|
|
238
|
+
globalMessage += `🕐 Aktualisiert: ${formatDate(globalStats.lastUpdated)}`;
|
|
239
|
+
|
|
240
|
+
await safeSend(globalMessage);
|
|
241
|
+
break;
|
|
242
|
+
|
|
243
|
+
case '!neustart':
|
|
244
|
+
if (!targetSession) {
|
|
245
|
+
await safeSend('❌ Verwendung: !neustart <sessionId>');
|
|
246
|
+
break;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
// Check lock to prevent duplicate restart
|
|
250
|
+
const restartKey = `restart:${targetSession}`;
|
|
251
|
+
if (!await acquireLock(restartKey)) {
|
|
252
|
+
await safeSend(`⏳ Session *${targetSession}* wird bereits neu gestartet...`);
|
|
253
|
+
break;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
try {
|
|
257
|
+
// Send response first if restarting own session
|
|
258
|
+
if (targetSession === msg.sessionId) {
|
|
259
|
+
await safeSend(`🔄 Starte Session *${targetSession}* neu...`);
|
|
260
|
+
await new Promise(resolve => setTimeout(resolve, 1500));
|
|
261
|
+
await client.restartSession(targetSession);
|
|
262
|
+
} else {
|
|
263
|
+
await client.restartSession(targetSession);
|
|
264
|
+
await safeSend(`✅ Session *${targetSession}* wurde neu gestartet`);
|
|
265
|
+
}
|
|
266
|
+
} finally {
|
|
267
|
+
releaseLock(restartKey);
|
|
268
|
+
}
|
|
269
|
+
break;
|
|
270
|
+
|
|
271
|
+
case '!pause':
|
|
272
|
+
if (!targetSession) {
|
|
273
|
+
await safeSend('❌ Verwendung: !pause <sessionId>');
|
|
274
|
+
break;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
// Check lock to prevent duplicate pause
|
|
278
|
+
const pauseKey = `pause:${targetSession}`;
|
|
279
|
+
if (!await acquireLock(pauseKey)) {
|
|
280
|
+
await safeSend(`⏳ Session *${targetSession}* wird bereits pausiert...`);
|
|
281
|
+
break;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
try {
|
|
285
|
+
// Send response first if pausing own session
|
|
286
|
+
if (targetSession === msg.sessionId) {
|
|
287
|
+
await safeSend(`⏸️ Pausiere Session *${targetSession}*...`);
|
|
288
|
+
await new Promise(resolve => setTimeout(resolve, 1500));
|
|
289
|
+
await client.pauseSession(targetSession);
|
|
290
|
+
} else {
|
|
291
|
+
await client.pauseSession(targetSession);
|
|
292
|
+
await safeSend(`⏸️ Session *${targetSession}* wurde pausiert`);
|
|
293
|
+
}
|
|
294
|
+
} finally {
|
|
295
|
+
releaseLock(pauseKey);
|
|
296
|
+
}
|
|
297
|
+
break;
|
|
298
|
+
|
|
299
|
+
case '!fortsetzen':
|
|
300
|
+
if (!targetSession) {
|
|
301
|
+
await safeSend('❌ Verwendung: !fortsetzen <sessionId>');
|
|
302
|
+
break;
|
|
303
|
+
}
|
|
304
|
+
await client.resumeSession(targetSession);
|
|
305
|
+
await safeSend(`▶️ Session *${targetSession}* wurde fortgesetzt`);
|
|
306
|
+
break;
|
|
307
|
+
|
|
308
|
+
case '!stopp':
|
|
309
|
+
if (!targetSession) {
|
|
310
|
+
await safeSend('❌ Verwendung: !stopp <sessionId>');
|
|
311
|
+
break;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
// Check lock to prevent duplicate stop
|
|
315
|
+
const stopKey = `stop:${targetSession}`;
|
|
316
|
+
if (!await acquireLock(stopKey)) {
|
|
317
|
+
await safeSend(`⏳ Session *${targetSession}* wird bereits gestoppt...`);
|
|
318
|
+
break;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
try {
|
|
322
|
+
// Send response first, then stop
|
|
323
|
+
if (targetSession === msg.sessionId) {
|
|
324
|
+
// Stopping own session - send message first
|
|
325
|
+
await safeSend(`⏹️ Stoppe Session *${targetSession}*...`);
|
|
326
|
+
await new Promise(resolve => setTimeout(resolve, 1500));
|
|
327
|
+
await client.stopSession(targetSession);
|
|
328
|
+
} else {
|
|
329
|
+
// Stopping different session
|
|
330
|
+
await client.stopSession(targetSession);
|
|
331
|
+
await safeSend(`⏹️ Session *${targetSession}* wurde gestoppt`);
|
|
332
|
+
}
|
|
333
|
+
} finally {
|
|
334
|
+
releaseLock(stopKey);
|
|
335
|
+
}
|
|
336
|
+
break;
|
|
337
|
+
|
|
338
|
+
case '!löschen':
|
|
339
|
+
if (!targetSession) {
|
|
340
|
+
await safeSend('❌ Verwendung: !löschen <sessionId>');
|
|
341
|
+
break;
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
// Check lock to prevent duplicate delete
|
|
345
|
+
const deleteKey = `delete:${targetSession}`;
|
|
346
|
+
if (!await acquireLock(deleteKey)) {
|
|
347
|
+
await safeSend(`⏳ Session *${targetSession}* wird bereits gelöscht...`);
|
|
348
|
+
break;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
try {
|
|
352
|
+
// Send response first if deleting own session
|
|
353
|
+
if (targetSession === msg.sessionId) {
|
|
354
|
+
await safeSend(`🗑️ Lösche Session *${targetSession}*...`);
|
|
355
|
+
await new Promise(resolve => setTimeout(resolve, 1500));
|
|
356
|
+
await client.deleteSessionData(targetSession);
|
|
357
|
+
} else {
|
|
358
|
+
await client.deleteSessionData(targetSession);
|
|
359
|
+
await safeSend(`🗑️ Session *${targetSession}* wurde gelöscht`);
|
|
360
|
+
}
|
|
361
|
+
} finally {
|
|
362
|
+
releaseLock(deleteKey);
|
|
363
|
+
}
|
|
364
|
+
break;
|
|
365
|
+
|
|
366
|
+
case '!start':
|
|
367
|
+
if (!targetSession) {
|
|
368
|
+
await safeSend('❌ Verwendung: !start <sessionId>');
|
|
369
|
+
break;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
// Check lock to prevent duplicate start
|
|
373
|
+
const startKey = `start:${targetSession}`;
|
|
374
|
+
if (!await acquireLock(startKey)) {
|
|
375
|
+
await safeSend(`⏳ Session *${targetSession}* wird bereits gestartet...`);
|
|
376
|
+
break;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
try {
|
|
380
|
+
await startSession(targetSession);
|
|
381
|
+
await safeSend(`✅ Session *${targetSession}* wurde gestartet`);
|
|
382
|
+
} finally {
|
|
383
|
+
releaseLock(startKey);
|
|
384
|
+
}
|
|
385
|
+
break;
|
|
386
|
+
|
|
387
|
+
case '!zuweisen':
|
|
388
|
+
if (!targetSession) {
|
|
389
|
+
await safeSend('❌ Verwendung: !zuweisen <sessionId>');
|
|
390
|
+
break;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
try {
|
|
394
|
+
assignChat(msg.from, targetSession);
|
|
395
|
+
await safeSend(`📞 Dieser Chat ist jetzt *${targetSession}* zugewiesen`);
|
|
396
|
+
} catch (e) {
|
|
397
|
+
await safeSend(`❌ ${e.message}`);
|
|
398
|
+
}
|
|
399
|
+
break;
|
|
400
|
+
|
|
401
|
+
case '!zuweisungen':
|
|
402
|
+
const assignmentList = Array.from(chatAssignments.entries())
|
|
403
|
+
.map(([chat, session]) => `• ${chat.split('@')[0]}: *${session}*`)
|
|
404
|
+
.join('\n');
|
|
405
|
+
|
|
406
|
+
await safeSend(assignmentList
|
|
407
|
+
? `📋 *Chat-Zuweisungen:*\n\n${assignmentList}`
|
|
408
|
+
: '📋 Noch keine Chat-Zuweisungen');
|
|
409
|
+
break;
|
|
410
|
+
}
|
|
411
|
+
} catch (error) {
|
|
412
|
+
console.error('❌ Error:', error.message);
|
|
413
|
+
// Only send error if session still exists
|
|
414
|
+
try {
|
|
415
|
+
const sessions = client.getAllSessions();
|
|
416
|
+
if (sessions.includes(msg.sessionId)) {
|
|
417
|
+
await sendText(msg.sessionId, msg.from, `❌ Error: ${error.message}`);
|
|
418
|
+
}
|
|
419
|
+
} catch (e) {
|
|
420
|
+
// Ignore if can't send error message
|
|
421
|
+
console.error('Could not send error message:', e.message);
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
});
|
package/LICENSE
DELETED
package/dist/Defaults/index.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export declare abstract class CREDENTIALS {
|
|
2
|
-
static DIR_NAME: string;
|
|
3
|
-
static SUFFIX: string;
|
|
4
|
-
}
|
|
5
|
-
export declare enum CALLBACK_KEY {
|
|
6
|
-
ON_MESSAGE_RECEIVED = "on-message-received",
|
|
7
|
-
ON_QR = "on-qr",
|
|
8
|
-
ON_CONNECTED = "on-connected",
|
|
9
|
-
ON_DISCONNECTED = "on-disconnected",
|
|
10
|
-
ON_CONNECTING = "on-connecting",
|
|
11
|
-
ON_MESSAGE_UPDATED = "on-message-updated"
|
|
12
|
-
}
|
|
13
|
-
export declare abstract class Messages {
|
|
14
|
-
static sessionAlreadyExist: (sessionId: string) => string;
|
|
15
|
-
static sessionNotFound: (sessionId: string) => string;
|
|
16
|
-
static paremetersRequired: (props: string[] | string) => string;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Defaults/index.ts"],"names":[],"mappings":"AAAA,8BAAsB,WAAW;IAC/B,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAoB;IAC3C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAkB;CACxC;AAED,oBAAY,YAAY;IACtB,mBAAmB,wBAAwB;IAC3C,KAAK,UAAU;IACf,YAAY,iBAAiB;IAC7B,eAAe,oBAAoB;IACnC,aAAa,kBAAkB;IAC/B,kBAAkB,uBAAuB;CAC1C;AAED,8BAAsB,QAAQ;IAC5B,MAAM,CAAC,mBAAmB,cAAe,MAAM,KAAG,MAAM,CACe;IAEvE,MAAM,CAAC,eAAe,cAAe,MAAM,KAAG,MAAM,CACP;IAE7C,MAAM,CAAC,kBAAkB,UAAW,MAAM,EAAE,GAAG,MAAM,YAOpC;CAClB"}
|
package/dist/Defaults/index.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Messages = exports.CALLBACK_KEY = exports.CREDENTIALS = void 0;
|
|
4
|
-
class CREDENTIALS {
|
|
5
|
-
}
|
|
6
|
-
exports.CREDENTIALS = CREDENTIALS;
|
|
7
|
-
CREDENTIALS.DIR_NAME = "wa_credentials";
|
|
8
|
-
CREDENTIALS.SUFFIX = "_credentials";
|
|
9
|
-
var CALLBACK_KEY;
|
|
10
|
-
(function (CALLBACK_KEY) {
|
|
11
|
-
CALLBACK_KEY["ON_MESSAGE_RECEIVED"] = "on-message-received";
|
|
12
|
-
CALLBACK_KEY["ON_QR"] = "on-qr";
|
|
13
|
-
CALLBACK_KEY["ON_CONNECTED"] = "on-connected";
|
|
14
|
-
CALLBACK_KEY["ON_DISCONNECTED"] = "on-disconnected";
|
|
15
|
-
CALLBACK_KEY["ON_CONNECTING"] = "on-connecting";
|
|
16
|
-
CALLBACK_KEY["ON_MESSAGE_UPDATED"] = "on-message-updated";
|
|
17
|
-
CALLBACK_KEY["ON_PAIRING_CODE"] = "on-pairing-code";
|
|
18
|
-
})(CALLBACK_KEY || (exports.CALLBACK_KEY = CALLBACK_KEY = {}));
|
|
19
|
-
class Messages {
|
|
20
|
-
}
|
|
21
|
-
exports.Messages = Messages;
|
|
22
|
-
Messages.sessionAlreadyExist = (sessionId) => `Session ID :${sessionId} is already exist, Try another Session ID.`;
|
|
23
|
-
Messages.sessionNotFound = (sessionId) => `Session with ID: ${sessionId} Not Exist!`;
|
|
24
|
-
Messages.paremetersRequired = (props) => `Parameter ${typeof props == "string"
|
|
25
|
-
? props
|
|
26
|
-
: props instanceof Array
|
|
27
|
-
? props.join(", ")
|
|
28
|
-
: ""} is required`;
|
package/dist/Error/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Error/index.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;IAM3B,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,aAAa;CAG3D"}
|
package/dist/Error/index.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WhatsappError = void 0;
|
|
4
|
-
class WhatsappError extends Error {
|
|
5
|
-
constructor(message) {
|
|
6
|
-
super(message);
|
|
7
|
-
this.name = "WhatsappError";
|
|
8
|
-
Object.setPrototypeOf(this, WhatsappError.prototype);
|
|
9
|
-
}
|
|
10
|
-
static isWhatsappError(error) {
|
|
11
|
-
return error instanceof WhatsappError || error instanceof Error;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
exports.WhatsappError = WhatsappError;
|