whatsauto.js 1.0.2 → 1.0.4
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 +97 -1
- package/dist/Types/index.d.ts +27 -7
- package/dist/Types/index.d.ts.map +1 -1
- package/dist/Utils/helper.d.ts +3 -6
- package/dist/Utils/helper.d.ts.map +1 -1
- package/dist/Utils/helper.js +17 -5
- package/dist/Utils/make-stiker.d.ts.map +1 -1
- package/dist/Utils/make-stiker.js +14 -9
- package/dist/WhatsApp/AutoWA.d.ts +8 -7
- package/dist/WhatsApp/AutoWA.d.ts.map +1 -1
- package/dist/WhatsApp/AutoWA.js +188 -121
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -34,7 +34,103 @@ Additionally, WhatsAuto.js uses the Object-Oriented Programming (OOP) paradigm,
|
|
|
34
34
|
|
|
35
35
|
## 🪧 Examples
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
### Make WA Session / Client
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
import AutoWA from "whatsauto.js";
|
|
41
|
+
|
|
42
|
+
// using QR (default)
|
|
43
|
+
const autoWA = new AutoWA("session_name", { printQR: true });
|
|
44
|
+
// or
|
|
45
|
+
const autoWA = new AutoWA("session_name");
|
|
46
|
+
// or, using pair code (experimental)
|
|
47
|
+
const autoWA = new AutoWA("session_name", { phoneNumber: "628xxxx" });
|
|
48
|
+
|
|
49
|
+
// listen to some event
|
|
50
|
+
const ev = autoWA.event;
|
|
51
|
+
|
|
52
|
+
ev.onConnected(() => {
|
|
53
|
+
console.log("Client Ready!");
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
ev.onMessage(async (msg) => {
|
|
57
|
+
console.log(msg.text);
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
// initialize session
|
|
61
|
+
await autoWA.initialize();
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Session Parameters
|
|
65
|
+
|
|
66
|
+
```ts
|
|
67
|
+
{
|
|
68
|
+
/**
|
|
69
|
+
* Print logs into Terminal
|
|
70
|
+
*/
|
|
71
|
+
logging?: boolean; // true, false
|
|
72
|
+
/**
|
|
73
|
+
* Print QR Code into Terminal
|
|
74
|
+
*/
|
|
75
|
+
printQR?: boolean; // true, false
|
|
76
|
+
/**
|
|
77
|
+
* Phone number for session with pairing code
|
|
78
|
+
*/
|
|
79
|
+
phoneNumber?: string; // 62822xxxxx (62 is your country code)
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### IWAutoMessage APIs
|
|
84
|
+
|
|
85
|
+
```ts
|
|
86
|
+
ev.onMessageReceived(async (msg) => {
|
|
87
|
+
// read this message
|
|
88
|
+
await msg.read();
|
|
89
|
+
|
|
90
|
+
if (msg.text == "react")
|
|
91
|
+
// react this message
|
|
92
|
+
await msg.react("🐾");
|
|
93
|
+
|
|
94
|
+
if (msg.text == "text")
|
|
95
|
+
// reply this message with text
|
|
96
|
+
await msg.replyWithText("Hello!");
|
|
97
|
+
|
|
98
|
+
if (msg.text == "image")
|
|
99
|
+
// reply this message with image
|
|
100
|
+
await msg.replyWithImage("https://picsum.photos/536/354");
|
|
101
|
+
|
|
102
|
+
if (msg.text == "video")
|
|
103
|
+
// reply this message with video
|
|
104
|
+
await msg.replyWithVideo(
|
|
105
|
+
"https://github.com/rafaelreis-hotmart/Audio-Sample-files/raw/master/sample.mp4"
|
|
106
|
+
);
|
|
107
|
+
|
|
108
|
+
if (msg.text == "audio")
|
|
109
|
+
// reply this message with audio
|
|
110
|
+
await msg.replyWithAudio(
|
|
111
|
+
"https://github.com/rafaelreis-hotmart/Audio-Sample-files/raw/master/sample.mp3"
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
if (msg.text == "sticker") {
|
|
115
|
+
// convert this message to sticker buffer (if its has media)
|
|
116
|
+
const sticker = await msg.toSticker();
|
|
117
|
+
// or
|
|
118
|
+
// const sticker = await msg.toSticker({ pack: "whatsauto.js", author: "freack21" });
|
|
119
|
+
if (sticker) {
|
|
120
|
+
// reply this message with audio
|
|
121
|
+
await msg.replyWithSticker(sticker);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
if (msg.text == "typing")
|
|
126
|
+
// reply this message with typing presence
|
|
127
|
+
await msg.replyWithTyping(1000); // 1000ms / 1s
|
|
128
|
+
|
|
129
|
+
if (msg.text == "recording")
|
|
130
|
+
// reply this message with recording presence
|
|
131
|
+
await msg.replyWithRecording(1000); // 1000ms / 1s
|
|
132
|
+
});
|
|
133
|
+
```
|
|
38
134
|
|
|
39
135
|
## 🧾 Disclaimer
|
|
40
136
|
|
package/dist/Types/index.d.ts
CHANGED
|
@@ -6,6 +6,11 @@ export interface IWAutoSendMessage {
|
|
|
6
6
|
answering?: proto.IWebMessageInfo;
|
|
7
7
|
mentions?: string[];
|
|
8
8
|
}
|
|
9
|
+
export interface IWAutoPhoneToJid {
|
|
10
|
+
from: string | number;
|
|
11
|
+
isGroup?: boolean;
|
|
12
|
+
reverse?: boolean;
|
|
13
|
+
}
|
|
9
14
|
export interface IWAutoSendMedia extends IWAutoSendMessage {
|
|
10
15
|
/**
|
|
11
16
|
* Media you want to send
|
|
@@ -20,6 +25,16 @@ export interface IWAutoSendTyping extends IWAutoSendMessage {
|
|
|
20
25
|
*/
|
|
21
26
|
duration: number;
|
|
22
27
|
}
|
|
28
|
+
export interface IWAutoDownloadMedia {
|
|
29
|
+
/**
|
|
30
|
+
* path of your downloaded media
|
|
31
|
+
*/
|
|
32
|
+
path?: string;
|
|
33
|
+
/**
|
|
34
|
+
* return this function as buffer
|
|
35
|
+
*/
|
|
36
|
+
asBuffer?: boolean;
|
|
37
|
+
}
|
|
23
38
|
export interface Repliable {
|
|
24
39
|
/**
|
|
25
40
|
* reply this message with text
|
|
@@ -28,19 +43,19 @@ export interface Repliable {
|
|
|
28
43
|
/**
|
|
29
44
|
* reply this message with Audio
|
|
30
45
|
*/
|
|
31
|
-
replyWithAudio: (
|
|
46
|
+
replyWithAudio: (media: string | Buffer, data?: IWAutoSendMedia) => Promise<proto.WebMessageInfo>;
|
|
32
47
|
/**
|
|
33
48
|
* reply this message with Video
|
|
34
49
|
*/
|
|
35
|
-
replyWithVideo: (
|
|
50
|
+
replyWithVideo: (media: string | Buffer, data?: IWAutoSendMedia) => Promise<proto.WebMessageInfo>;
|
|
36
51
|
/**
|
|
37
52
|
* reply this message with Image
|
|
38
53
|
*/
|
|
39
|
-
replyWithImage: (
|
|
54
|
+
replyWithImage: (media: string | Buffer, data?: IWAutoSendMedia) => Promise<proto.WebMessageInfo>;
|
|
40
55
|
/**
|
|
41
56
|
* reply this message with Sticker
|
|
42
57
|
*/
|
|
43
|
-
replyWithSticker: (
|
|
58
|
+
replyWithSticker: (sticker: Buffer | null, data?: Partial<IWAutoSendMedia & IStickerOptions>) => Promise<proto.WebMessageInfo>;
|
|
44
59
|
/**
|
|
45
60
|
* reply this message with Typing
|
|
46
61
|
*/
|
|
@@ -89,9 +104,9 @@ export interface IWAutoMessage extends proto.IWebMessageInfo, Repliable {
|
|
|
89
104
|
quotedMessage: IWAutoMessage;
|
|
90
105
|
/**
|
|
91
106
|
* @param path save media location path without extension
|
|
92
|
-
* @example "
|
|
107
|
+
* @example "my_media"
|
|
93
108
|
*/
|
|
94
|
-
downloadMedia: (
|
|
109
|
+
downloadMedia: (opts?: IWAutoDownloadMedia) => Promise<string | Buffer>;
|
|
95
110
|
/**
|
|
96
111
|
* react this message
|
|
97
112
|
*/
|
|
@@ -100,6 +115,10 @@ export interface IWAutoMessage extends proto.IWebMessageInfo, Repliable {
|
|
|
100
115
|
* read this message
|
|
101
116
|
*/
|
|
102
117
|
read: () => Promise<void>;
|
|
118
|
+
/**
|
|
119
|
+
* convert this message to sticker
|
|
120
|
+
*/
|
|
121
|
+
toSticker: (props?: Omit<IStickerOptions, "media">) => Promise<Buffer | null>;
|
|
103
122
|
}
|
|
104
123
|
export interface IWAutoMessageReceived extends IWAutoMessage {
|
|
105
124
|
/**
|
|
@@ -139,11 +158,12 @@ export interface IWAutoSessionConfig {
|
|
|
139
158
|
phoneNumber?: string;
|
|
140
159
|
}
|
|
141
160
|
export interface IStickerOptions {
|
|
142
|
-
|
|
161
|
+
media: string | Buffer;
|
|
143
162
|
pack?: string;
|
|
144
163
|
author?: string;
|
|
145
164
|
transparent?: boolean;
|
|
146
165
|
bgColor?: string;
|
|
166
|
+
sticker?: Buffer;
|
|
147
167
|
}
|
|
148
168
|
export interface GroupMemberUpdate extends Repliable {
|
|
149
169
|
sessionId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEpF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAElG;;OAEG;IACH,cAAc,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/Utils/helper.d.ts
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import { proto } from "@whiskeysockets/baileys";
|
|
2
|
-
import { IWAutoMessage, WAutoMessageUpdated } from "../Types";
|
|
2
|
+
import { IWAutoMessage, IWAutoPhoneToJid, WAutoMessageUpdated } from "../Types";
|
|
3
3
|
export declare const getMediaMimeType: (msg: IWAutoMessage) => string;
|
|
4
4
|
export declare const parseMessageStatusCodeToReadable: (code: proto.WebMessageInfo.Status) => WAutoMessageUpdated["messageStatus"];
|
|
5
|
-
export declare const phoneToJid: ({
|
|
6
|
-
to: string | number;
|
|
7
|
-
isGroup?: boolean;
|
|
8
|
-
reverse?: boolean;
|
|
9
|
-
}) => string;
|
|
5
|
+
export declare const phoneToJid: ({ from, isGroup, reverse, }: IWAutoPhoneToJid) => string;
|
|
10
6
|
export declare const createDelay: (duration?: number) => Promise<unknown>;
|
|
11
7
|
export declare const is: {
|
|
12
8
|
array: (array: any) => boolean;
|
|
@@ -21,4 +17,5 @@ export declare const to: {
|
|
|
21
17
|
};
|
|
22
18
|
export declare const isSessionExist: (sessionId: string) => boolean;
|
|
23
19
|
export declare const setCredentialsDir: (dirname: string) => void;
|
|
20
|
+
export declare const getBuffer: (url: string) => Promise<Buffer>;
|
|
24
21
|
//# sourceMappingURL=helper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../src/Utils/helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../src/Utils/helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAOhF,eAAO,MAAM,gBAAgB,QAAS,aAAa,KAAG,MAwBrD,CAAC;AAEF,eAAO,MAAM,gCAAgC,SACrC,KAAK,CAAC,cAAc,CAAC,MAAM,KAChC,mBAAmB,CAAC,eAAe,CAerC,CAAC;AAEF,eAAO,MAAM,UAAU,gCAIpB,gBAAgB,KAAG,MAgBrB,CAAC;AAEF,eAAO,MAAM,WAAW,cAAoB,MAAM,qBAMjD,CAAC;AAEF,eAAO,MAAM,EAAE;mBACE,GAAG,KAAG,OAAO;sBAGV,GAAG,KAAG,OAAO;iBAGlB,GAAG,KAAG,OAAO;qBAGT,GAAG,KAAG,OAAO;kBAGhB,GAAG,KAAG,OAAO;CAG5B,CAAC;AAEF,eAAO,MAAM,EAAE;kBACC,GAAG,KAAG,MAAM;qBAIT,GAAG,iBAAgB,GAAG,KAAe,MAAM,GAAG,MAAM,GAAG,SAAS;CAIlF,CAAC;AAEF,eAAO,MAAM,cAAc,cAAwB,MAAM,YASxD,CAAC;AAEF,eAAO,MAAM,iBAAiB,YAAa,MAAM,SAOhD,CAAC;AAEF,eAAO,MAAM,SAAS,QAAe,MAAM,KAAG,OAAO,CAAC,MAAM,CAS3D,CAAC"}
|
package/dist/Utils/helper.js
CHANGED
|
@@ -45,12 +45,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
45
45
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
46
46
|
};
|
|
47
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
-
exports.setCredentialsDir = exports.isSessionExist = exports.to = exports.is = exports.createDelay = exports.phoneToJid = exports.parseMessageStatusCodeToReadable = exports.getMediaMimeType = void 0;
|
|
48
|
+
exports.getBuffer = exports.setCredentialsDir = exports.isSessionExist = exports.to = exports.is = exports.createDelay = exports.phoneToJid = exports.parseMessageStatusCodeToReadable = exports.getMediaMimeType = void 0;
|
|
49
49
|
const baileys_1 = require("@whiskeysockets/baileys");
|
|
50
50
|
const Error_1 = require("../Error");
|
|
51
51
|
const fs = __importStar(require("fs"));
|
|
52
52
|
const path_1 = __importDefault(require("path"));
|
|
53
53
|
const Defaults_1 = require("../Defaults");
|
|
54
|
+
const axios_1 = __importDefault(require("axios"));
|
|
54
55
|
const getMediaMimeType = (msg) => {
|
|
55
56
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
56
57
|
if (!(msg === null || msg === void 0 ? void 0 : msg.message))
|
|
@@ -80,10 +81,10 @@ const parseMessageStatusCodeToReadable = (code) => {
|
|
|
80
81
|
}
|
|
81
82
|
};
|
|
82
83
|
exports.parseMessageStatusCodeToReadable = parseMessageStatusCodeToReadable;
|
|
83
|
-
const phoneToJid = ({
|
|
84
|
-
if (!
|
|
85
|
-
throw new Error_1.ValidationError('"
|
|
86
|
-
let number =
|
|
84
|
+
const phoneToJid = ({ from, isGroup = false, reverse = false, }) => {
|
|
85
|
+
if (!from)
|
|
86
|
+
throw new Error_1.ValidationError('"from" parameter is required!');
|
|
87
|
+
let number = from.toString();
|
|
87
88
|
if (number.includes("@broadcast"))
|
|
88
89
|
return number;
|
|
89
90
|
if (isGroup || number.includes("@g.us")) {
|
|
@@ -157,3 +158,14 @@ const setCredentialsDir = (dirname) => {
|
|
|
157
158
|
Defaults_1.CREDENTIALS.DIR_NAME = dirname;
|
|
158
159
|
};
|
|
159
160
|
exports.setCredentialsDir = setCredentialsDir;
|
|
161
|
+
const getBuffer = (url) => __awaiter(void 0, void 0, void 0, function* () {
|
|
162
|
+
try {
|
|
163
|
+
const response = yield axios_1.default.get(url, {
|
|
164
|
+
responseType: "arraybuffer",
|
|
165
|
+
});
|
|
166
|
+
return Buffer.from(response.data);
|
|
167
|
+
}
|
|
168
|
+
catch (error) { }
|
|
169
|
+
return null;
|
|
170
|
+
});
|
|
171
|
+
exports.getBuffer = getBuffer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-stiker.d.ts","sourceRoot":"","sources":["../../src/Utils/make-stiker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,eAAO,MAAM,cAAc,YAAmB,eAAe,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"make-stiker.d.ts","sourceRoot":"","sources":["../../src/Utils/make-stiker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,eAAO,MAAM,cAAc,YAAmB,eAAe,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAoEpF,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,MAA2D,CAAC"}
|
|
@@ -18,15 +18,17 @@ const { Image } = require("node-webpmux");
|
|
|
18
18
|
const fs_1 = __importDefault(require("fs"));
|
|
19
19
|
const crypto_1 = require("crypto");
|
|
20
20
|
const makeWebpBuffer = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
|
-
const
|
|
21
|
+
const getRandomName = () => `./${Date.now()}${Math.random() * 1000}.webp`;
|
|
22
|
+
const randomName = getRandomName();
|
|
22
23
|
let buffer = null;
|
|
23
|
-
const {
|
|
24
|
-
if (!
|
|
24
|
+
const { media, pack = "", author = "", transparent = true, bgColor = "white" } = options;
|
|
25
|
+
if (!media)
|
|
25
26
|
return buffer;
|
|
27
|
+
const tempName = typeof media == "string" ? media : getRandomName();
|
|
26
28
|
const data = JSON.stringify({
|
|
27
29
|
"sticker-pack-id": (0, exports.generateStickerID)(),
|
|
28
|
-
"sticker-pack-name":
|
|
29
|
-
"sticker-pack-publisher":
|
|
30
|
+
"sticker-pack-name": pack,
|
|
31
|
+
"sticker-pack-publisher": author,
|
|
30
32
|
emojis: ["🐾"],
|
|
31
33
|
});
|
|
32
34
|
const exif = Buffer.concat([
|
|
@@ -38,11 +40,14 @@ const makeWebpBuffer = (options) => __awaiter(void 0, void 0, void 0, function*
|
|
|
38
40
|
]);
|
|
39
41
|
exif.writeUIntLE(new TextEncoder().encode(data).length, 14, 4);
|
|
40
42
|
const backgroundColor = transparent ? "color=white@0.0" : `color=${bgColor}`;
|
|
43
|
+
if (Buffer.isBuffer(media)) {
|
|
44
|
+
fs_1.default.writeFileSync(tempName, media.toString("base64"), "base64");
|
|
45
|
+
}
|
|
41
46
|
return new Promise((resolve) => {
|
|
42
|
-
ffmpeg(
|
|
43
|
-
.input(
|
|
47
|
+
ffmpeg(tempName)
|
|
48
|
+
.input(tempName)
|
|
44
49
|
.on("error", () => {
|
|
45
|
-
fs_1.default.unlinkSync(
|
|
50
|
+
fs_1.default.unlinkSync(tempName);
|
|
46
51
|
if (fs_1.default.existsSync(randomName))
|
|
47
52
|
fs_1.default.unlinkSync(randomName);
|
|
48
53
|
resolve(buffer);
|
|
@@ -60,7 +65,7 @@ const makeWebpBuffer = (options) => __awaiter(void 0, void 0, void 0, function*
|
|
|
60
65
|
}))();
|
|
61
66
|
image.exif = exif;
|
|
62
67
|
buffer = yield image.save(null);
|
|
63
|
-
fs_1.default.unlinkSync(
|
|
68
|
+
fs_1.default.unlinkSync(tempName);
|
|
64
69
|
fs_1.default.unlinkSync(randomName);
|
|
65
70
|
resolve(buffer);
|
|
66
71
|
}))
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { WASocket, proto } from "@whiskeysockets/baileys";
|
|
2
|
-
import { IWAutoSendMessage, IWAutoSendTyping, IWAutoSessionConfig, IWAutoMessage, IStickerOptions, WAutoGroupMemberActionOptions, IWAutoSendMedia } from "../Types";
|
|
2
|
+
import { IWAutoSendMessage, IWAutoSendTyping, IWAutoSessionConfig, IWAutoMessage, IStickerOptions, WAutoGroupMemberActionOptions, IWAutoSendMedia, IWAutoPhoneToJid } from "../Types";
|
|
3
3
|
import AutoWAEvent from "./AutoWAEvent";
|
|
4
4
|
export declare class AutoWA {
|
|
5
5
|
private logger;
|
|
@@ -10,6 +10,7 @@ export declare class AutoWA {
|
|
|
10
10
|
options: IWAutoSessionConfig;
|
|
11
11
|
event: AutoWAEvent;
|
|
12
12
|
private pairingCode?;
|
|
13
|
+
defaultStickerProps: IStickerOptions;
|
|
13
14
|
constructor(sessionId: string, options?: IWAutoSessionConfig);
|
|
14
15
|
setLogging(logging: boolean): Promise<void>;
|
|
15
16
|
initialize(): Promise<void>;
|
|
@@ -17,21 +18,21 @@ export declare class AutoWA {
|
|
|
17
18
|
private startSocket;
|
|
18
19
|
private setupWASocket;
|
|
19
20
|
destroy(): Promise<void>;
|
|
20
|
-
isExist({
|
|
21
|
+
isExist({ from, isGroup }: IWAutoPhoneToJid): Promise<boolean>;
|
|
21
22
|
private downloadMedia;
|
|
22
23
|
private validateReceiver;
|
|
23
24
|
sendText({ to, text, isGroup, ...props }: IWAutoSendMessage): Promise<proto.WebMessageInfo | undefined>;
|
|
24
|
-
sendImage({ to, text, isGroup, media, ...props }: IWAutoSendMedia): Promise<proto.WebMessageInfo | undefined>;
|
|
25
|
-
sendVideo({ to, text, isGroup, media, ...props }: IWAutoSendMedia): Promise<proto.WebMessageInfo | undefined>;
|
|
26
|
-
sendDocument({ to, text, isGroup, media, filename, ...props }: IWAutoSendMedia & {
|
|
25
|
+
sendImage({ to, text, isGroup, media, failMsg, ...props }: IWAutoSendMedia): Promise<proto.WebMessageInfo | undefined>;
|
|
26
|
+
sendVideo({ to, text, isGroup, media, failMsg, ...props }: IWAutoSendMedia): Promise<proto.WebMessageInfo | undefined>;
|
|
27
|
+
sendDocument({ to, text, isGroup, media, filename, failMsg, ...props }: IWAutoSendMedia & {
|
|
27
28
|
filename: string;
|
|
28
29
|
}): Promise<proto.WebMessageInfo | undefined>;
|
|
29
|
-
sendAudio({ to, isGroup, media, voiceNote, ...props }: Omit<IWAutoSendMedia, "text">): Promise<proto.WebMessageInfo | undefined>;
|
|
30
|
+
sendAudio({ to, isGroup, media, voiceNote, failMsg, ...props }: Omit<IWAutoSendMedia, "text">): Promise<proto.WebMessageInfo | undefined>;
|
|
30
31
|
sendReaction({ to, text, isGroup, answering }: IWAutoSendMessage): Promise<proto.WebMessageInfo>;
|
|
31
32
|
sendTyping({ to, duration, isGroup }: IWAutoSendTyping): Promise<void>;
|
|
32
33
|
sendRecording({ to, duration, isGroup }: IWAutoSendTyping): Promise<void>;
|
|
33
34
|
readMessage(msgs: IWAutoMessage[]): Promise<void>;
|
|
34
|
-
sendSticker({ to, isGroup,
|
|
35
|
+
sendSticker({ to, isGroup, media, sticker, failMsg, ...props }: IWAutoSendMedia & IStickerOptions): Promise<proto.WebMessageInfo | undefined>;
|
|
35
36
|
getProfileInfo(target: string): Promise<{
|
|
36
37
|
profilePictureUrl: string;
|
|
37
38
|
status: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoWA.d.ts","sourceRoot":"","sources":["../../src/WhatsApp/AutoWA.ts"],"names":[],"mappings":"AAGA,OAAqB,EACnB,QAAQ,EAMR,KAAK,EAEN,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAGL,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EAGb,eAAe,EAEf,6BAA6B,EAC7B,eAAe,
|
|
1
|
+
{"version":3,"file":"AutoWA.d.ts","sourceRoot":"","sources":["../../src/WhatsApp/AutoWA.ts"],"names":[],"mappings":"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"}
|
package/dist/WhatsApp/AutoWA.js
CHANGED
|
@@ -73,6 +73,11 @@ const P = require("pino")({
|
|
|
73
73
|
});
|
|
74
74
|
class AutoWA {
|
|
75
75
|
constructor(sessionId, options) {
|
|
76
|
+
this.defaultStickerProps = {
|
|
77
|
+
media: "",
|
|
78
|
+
pack: "WhatsAuto.js",
|
|
79
|
+
author: "freack21",
|
|
80
|
+
};
|
|
76
81
|
if ((0, helper_1.isSessionExist)(sessionId) && _1.sessions.get(sessionId))
|
|
77
82
|
throw new Error_1.ValidationError(Defaults_1.Messages.sessionAlreadyExist(sessionId));
|
|
78
83
|
const defaultOptions = {
|
|
@@ -106,7 +111,7 @@ class AutoWA {
|
|
|
106
111
|
throw new Error_1.ValidationError(Defaults_1.Messages.paremetersNotValid("phoneNumber"));
|
|
107
112
|
options.printQR = false;
|
|
108
113
|
options.phoneNumber = (0, helper_1.phoneToJid)({
|
|
109
|
-
|
|
114
|
+
from: options.phoneNumber,
|
|
110
115
|
});
|
|
111
116
|
}
|
|
112
117
|
return this.startSocket(sessionId, options);
|
|
@@ -143,7 +148,7 @@ class AutoWA {
|
|
|
143
148
|
!this.pairingCode &&
|
|
144
149
|
!this.sock.authState.creds.registered) {
|
|
145
150
|
try {
|
|
146
|
-
this.pairingCode = yield this.sock.requestPairingCode(this.options.phoneNumber);
|
|
151
|
+
this.pairingCode = yield this.sock.requestPairingCode((0, helper_1.phoneToJid)({ from: this.options.phoneNumber, reverse: true }));
|
|
147
152
|
this.logger.info(`Pairing Code: ${this.pairingCode}`);
|
|
148
153
|
(_a = this.callback.get(Defaults_1.CALLBACK_KEY.ON_PAIRING_CODE)) === null || _a === void 0 ? void 0 : _a(this.pairingCode);
|
|
149
154
|
this.retryCount = 0;
|
|
@@ -195,7 +200,6 @@ class AutoWA {
|
|
|
195
200
|
}
|
|
196
201
|
}));
|
|
197
202
|
this.sock.ev.on("creds.update", () => __awaiter(this, void 0, void 0, function* () {
|
|
198
|
-
this.logger.info("Creds Updated!");
|
|
199
203
|
yield saveCreds();
|
|
200
204
|
}));
|
|
201
205
|
this.sock.ev.on("messages.update", (message) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -242,6 +246,7 @@ class AutoWA {
|
|
|
242
246
|
msg.text = text;
|
|
243
247
|
const mediaTypes = ["image", "audio", "video", "document"];
|
|
244
248
|
const setupMsgMedia = (msg) => {
|
|
249
|
+
var _a;
|
|
245
250
|
const mimeType = (0, helper_1.getMediaMimeType)(msg);
|
|
246
251
|
const ext = mime_1.default.getExtension(mimeType);
|
|
247
252
|
msg.hasMedia = mimeType !== "";
|
|
@@ -251,18 +256,38 @@ class AutoWA {
|
|
|
251
256
|
mediaTypes[mediaTypes.indexOf(mimeType.split("/")[0]) !== -1
|
|
252
257
|
? mediaTypes.indexOf(mimeType.split("/")[0])
|
|
253
258
|
: 3];
|
|
254
|
-
msg.downloadMedia = (
|
|
255
|
-
|
|
256
|
-
|
|
259
|
+
msg.downloadMedia = () => __awaiter(this, void 0, void 0, function* () { return Promise.resolve(""); });
|
|
260
|
+
msg.toSticker = () => __awaiter(this, void 0, void 0, function* () { return Promise.resolve(null); });
|
|
261
|
+
if (msg.hasMedia) {
|
|
262
|
+
msg.downloadMedia = (...args_1) => __awaiter(this, [...args_1], void 0, function* (opts = {}) { return this.downloadMedia(msg, opts, ext); });
|
|
263
|
+
}
|
|
264
|
+
if (msg.hasMedia || ((_a = msg.quotedMessage) === null || _a === void 0 ? void 0 : _a.hasMedia)) {
|
|
265
|
+
msg.toSticker = (props) => __awaiter(this, void 0, void 0, function* () {
|
|
266
|
+
let mediaPath;
|
|
267
|
+
if (msg.hasMedia && ["image", "video"].includes(msg.mediaType)) {
|
|
268
|
+
mediaPath = yield msg.downloadMedia();
|
|
269
|
+
}
|
|
270
|
+
else if (msg.quotedMessage &&
|
|
271
|
+
msg.quotedMessage.hasMedia &&
|
|
272
|
+
["image", "video"].includes(msg.quotedMessage.mediaType)) {
|
|
273
|
+
mediaPath = yield msg.quotedMessage.downloadMedia();
|
|
274
|
+
}
|
|
275
|
+
if (!mediaPath)
|
|
276
|
+
return null;
|
|
277
|
+
const stickerProps = Object.assign(Object.assign(Object.assign({}, this.defaultStickerProps), props), { media: mediaPath });
|
|
278
|
+
const buffer = yield (0, make_stiker_1.makeWebpBuffer)(stickerProps);
|
|
279
|
+
return buffer;
|
|
280
|
+
});
|
|
281
|
+
}
|
|
257
282
|
};
|
|
258
|
-
setupMsgMedia(msg);
|
|
259
283
|
msg.quotedMessage && setupMsgMedia(msg.quotedMessage);
|
|
284
|
+
setupMsgMedia(msg);
|
|
260
285
|
const from = ((_0 = msg.key) === null || _0 === void 0 ? void 0 : _0.remoteJid) || "";
|
|
261
286
|
const participant = ((_2 = msg.key) === null || _2 === void 0 ? void 0 : _2.participant) || "";
|
|
262
287
|
const isGroup = from.includes("@g.us");
|
|
263
288
|
const isStory = from.includes("status@broadcast");
|
|
264
289
|
const isReaction = ((_3 = msg.message) === null || _3 === void 0 ? void 0 : _3.reactionMessage) ? true : false;
|
|
265
|
-
const myJid = (0, helper_1.phoneToJid)({
|
|
290
|
+
const myJid = (0, helper_1.phoneToJid)({ from: this.sock.user.id.split(":")[0] });
|
|
266
291
|
msg.isGroup = isGroup;
|
|
267
292
|
msg.isStory = isStory;
|
|
268
293
|
msg.isReaction = isReaction;
|
|
@@ -274,17 +299,17 @@ class AutoWA {
|
|
|
274
299
|
msg.replyWithText = (text, opts) => __awaiter(this, void 0, void 0, function* () {
|
|
275
300
|
return yield this.sendText(Object.assign(Object.assign({}, opts), { text, to: from, answering: msg }));
|
|
276
301
|
});
|
|
277
|
-
msg.replyWithAudio = (opts) => __awaiter(this, void 0, void 0, function* () {
|
|
278
|
-
return yield this.sendAudio(Object.assign(Object.assign({}, opts), { to: from, answering: msg }));
|
|
302
|
+
msg.replyWithAudio = (media, opts) => __awaiter(this, void 0, void 0, function* () {
|
|
303
|
+
return yield this.sendAudio(Object.assign(Object.assign({ media }, opts), { to: from, answering: msg }));
|
|
279
304
|
});
|
|
280
|
-
msg.replyWithImage = (opts) => __awaiter(this, void 0, void 0, function* () {
|
|
281
|
-
return yield this.sendImage(Object.assign(Object.assign({}, opts), { to: from, answering: msg }));
|
|
305
|
+
msg.replyWithImage = (media, opts) => __awaiter(this, void 0, void 0, function* () {
|
|
306
|
+
return yield this.sendImage(Object.assign(Object.assign({ media }, opts), { to: from, answering: msg }));
|
|
282
307
|
});
|
|
283
|
-
msg.replyWithVideo = (opts) => __awaiter(this, void 0, void 0, function* () {
|
|
284
|
-
return yield this.sendVideo(Object.assign(Object.assign({}, opts), { to: from, answering: msg }));
|
|
308
|
+
msg.replyWithVideo = (media, opts) => __awaiter(this, void 0, void 0, function* () {
|
|
309
|
+
return yield this.sendVideo(Object.assign(Object.assign({ media }, opts), { to: from, answering: msg }));
|
|
285
310
|
});
|
|
286
|
-
msg.replyWithSticker = (opts) => __awaiter(this, void 0, void 0, function* () {
|
|
287
|
-
return yield this.sendSticker(Object.assign(Object.assign({}, opts), { to: from, answering: msg }));
|
|
311
|
+
msg.replyWithSticker = (sticker, opts) => __awaiter(this, void 0, void 0, function* () {
|
|
312
|
+
return yield this.sendSticker(Object.assign(Object.assign({ sticker }, opts), { to: from, answering: msg }));
|
|
288
313
|
});
|
|
289
314
|
msg.replyWithTyping = (duration) => __awaiter(this, void 0, void 0, function* () {
|
|
290
315
|
return yield this.sendTyping({ to: from, duration });
|
|
@@ -370,17 +395,17 @@ class AutoWA {
|
|
|
370
395
|
msg.replyWithText = (text, opts) => __awaiter(this, void 0, void 0, function* () {
|
|
371
396
|
return yield this.sendText(Object.assign(Object.assign({}, opts), { text, to: data.id }));
|
|
372
397
|
});
|
|
373
|
-
msg.replyWithAudio = (opts) => __awaiter(this, void 0, void 0, function* () {
|
|
374
|
-
return yield this.sendAudio(Object.assign(Object.assign({}, opts), { to: data.id }));
|
|
398
|
+
msg.replyWithAudio = (media, opts) => __awaiter(this, void 0, void 0, function* () {
|
|
399
|
+
return yield this.sendAudio(Object.assign(Object.assign({ media }, opts), { to: data.id }));
|
|
375
400
|
});
|
|
376
|
-
msg.replyWithImage = (opts) => __awaiter(this, void 0, void 0, function* () {
|
|
377
|
-
return yield this.sendImage(Object.assign(Object.assign({}, opts), { to: data.id }));
|
|
401
|
+
msg.replyWithImage = (media, opts) => __awaiter(this, void 0, void 0, function* () {
|
|
402
|
+
return yield this.sendImage(Object.assign(Object.assign({ media }, opts), { to: data.id }));
|
|
378
403
|
});
|
|
379
|
-
msg.replyWithVideo = (opts) => __awaiter(this, void 0, void 0, function* () {
|
|
380
|
-
return yield this.sendVideo(Object.assign(Object.assign({}, opts), { to: data.id }));
|
|
404
|
+
msg.replyWithVideo = (media, opts) => __awaiter(this, void 0, void 0, function* () {
|
|
405
|
+
return yield this.sendVideo(Object.assign(Object.assign({ media }, opts), { to: data.id }));
|
|
381
406
|
});
|
|
382
|
-
msg.replyWithSticker = (opts) => __awaiter(this, void 0, void 0, function* () {
|
|
383
|
-
return yield this.sendSticker(Object.assign(Object.assign({}, opts), { to: data.id }));
|
|
407
|
+
msg.replyWithSticker = (sticker, opts) => __awaiter(this, void 0, void 0, function* () {
|
|
408
|
+
return yield this.sendSticker(Object.assign(Object.assign({ sticker }, opts), { to: data.id }));
|
|
384
409
|
});
|
|
385
410
|
msg.replyWithTyping = (duration) => __awaiter(this, void 0, void 0, function* () {
|
|
386
411
|
return yield this.sendTyping({ to: data.id, duration });
|
|
@@ -402,28 +427,35 @@ class AutoWA {
|
|
|
402
427
|
destroy() {
|
|
403
428
|
return __awaiter(this, void 0, void 0, function* () {
|
|
404
429
|
this.logger.info("Destroying...");
|
|
430
|
+
let error = false;
|
|
431
|
+
let msg = "";
|
|
405
432
|
try {
|
|
406
433
|
yield this.sock.logout();
|
|
407
434
|
}
|
|
408
|
-
catch (
|
|
409
|
-
|
|
435
|
+
catch (err) {
|
|
436
|
+
msg = `Logout failed: ${err.message}`;
|
|
437
|
+
error = true;
|
|
438
|
+
}
|
|
439
|
+
finally {
|
|
440
|
+
this.sock.end(undefined);
|
|
441
|
+
const dir = path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME, this.sessionId + Defaults_1.CREDENTIALS.PREFIX);
|
|
442
|
+
if (fs_1.default.existsSync(dir)) {
|
|
443
|
+
fs_1.default.rmSync(dir, { force: true, recursive: true });
|
|
444
|
+
}
|
|
445
|
+
this.logger.info("Destroyed!");
|
|
446
|
+
}
|
|
447
|
+
if (error) {
|
|
410
448
|
this.logger.error(msg);
|
|
411
449
|
throw new Error_1.AutoWAError(msg);
|
|
412
450
|
}
|
|
413
|
-
this.sock.end(undefined);
|
|
414
|
-
const dir = path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME, this.sessionId + Defaults_1.CREDENTIALS.PREFIX);
|
|
415
|
-
if (fs_1.default.existsSync(dir)) {
|
|
416
|
-
fs_1.default.rmSync(dir, { force: true, recursive: true });
|
|
417
|
-
}
|
|
418
|
-
this.logger.info("Destroyed!");
|
|
419
451
|
});
|
|
420
452
|
}
|
|
421
453
|
isExist(_a) {
|
|
422
|
-
return __awaiter(this, arguments, void 0, function* ({
|
|
454
|
+
return __awaiter(this, arguments, void 0, function* ({ from, isGroup = false }) {
|
|
423
455
|
var _b, _c;
|
|
424
456
|
try {
|
|
425
457
|
const receiver = (0, helper_1.phoneToJid)({
|
|
426
|
-
|
|
458
|
+
from: from,
|
|
427
459
|
isGroup,
|
|
428
460
|
});
|
|
429
461
|
if (receiver.includes("@broadcast")) {
|
|
@@ -441,20 +473,22 @@ class AutoWA {
|
|
|
441
473
|
}
|
|
442
474
|
});
|
|
443
475
|
}
|
|
444
|
-
downloadMedia(msg,
|
|
476
|
+
downloadMedia(msg, opts, ext) {
|
|
445
477
|
return __awaiter(this, void 0, void 0, function* () {
|
|
446
|
-
const filePath = path_1.default.join(process.cwd(),
|
|
478
|
+
const filePath = path_1.default.join(process.cwd(), (opts.path || "my_media") + "." + ext);
|
|
447
479
|
const buf = yield (0, baileys_1.downloadMediaMessage)(msg, "buffer", {});
|
|
480
|
+
if (opts.asBuffer)
|
|
481
|
+
return Promise.resolve(buf);
|
|
448
482
|
fs_1.default.writeFileSync(filePath, buf.toString("base64"), "base64");
|
|
449
483
|
return Promise.resolve(filePath);
|
|
450
484
|
});
|
|
451
485
|
}
|
|
452
486
|
validateReceiver(_a) {
|
|
453
|
-
return __awaiter(this, arguments, void 0, function* ({
|
|
454
|
-
const oldPhone =
|
|
455
|
-
|
|
487
|
+
return __awaiter(this, arguments, void 0, function* ({ from, isGroup = false }) {
|
|
488
|
+
const oldPhone = from;
|
|
489
|
+
from = (0, helper_1.phoneToJid)({ from, isGroup });
|
|
456
490
|
const isRegistered = yield this.isExist({
|
|
457
|
-
|
|
491
|
+
from,
|
|
458
492
|
isGroup,
|
|
459
493
|
});
|
|
460
494
|
if (!isRegistered) {
|
|
@@ -463,7 +497,7 @@ class AutoWA {
|
|
|
463
497
|
};
|
|
464
498
|
}
|
|
465
499
|
return {
|
|
466
|
-
receiver:
|
|
500
|
+
receiver: from,
|
|
467
501
|
};
|
|
468
502
|
});
|
|
469
503
|
}
|
|
@@ -471,7 +505,7 @@ class AutoWA {
|
|
|
471
505
|
return __awaiter(this, void 0, void 0, function* () {
|
|
472
506
|
var { to, text = "", isGroup = false } = _a, props = __rest(_a, ["to", "text", "isGroup"]);
|
|
473
507
|
const { receiver, msg } = yield this.validateReceiver({
|
|
474
|
-
to,
|
|
508
|
+
from: to,
|
|
475
509
|
isGroup,
|
|
476
510
|
});
|
|
477
511
|
if (msg)
|
|
@@ -486,109 +520,129 @@ class AutoWA {
|
|
|
486
520
|
}
|
|
487
521
|
sendImage(_a) {
|
|
488
522
|
return __awaiter(this, void 0, void 0, function* () {
|
|
489
|
-
var { to, text = "", isGroup = false, media } = _a, props = __rest(_a, ["to", "text", "isGroup", "media"]);
|
|
523
|
+
var { to, text = "", isGroup = false, media, failMsg } = _a, props = __rest(_a, ["to", "text", "isGroup", "media", "failMsg"]);
|
|
490
524
|
if (!media)
|
|
491
525
|
throw new Error_1.AutoWAError("'media' parameter must be Buffer or String URL");
|
|
492
526
|
const { receiver, msg } = yield this.validateReceiver({
|
|
493
|
-
to,
|
|
527
|
+
from: to,
|
|
494
528
|
isGroup,
|
|
495
529
|
});
|
|
496
530
|
if (msg)
|
|
497
531
|
throw new Error_1.AutoWAError(msg);
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
532
|
+
try {
|
|
533
|
+
return yield this.sock.sendMessage(receiver, {
|
|
534
|
+
image: typeof media == "string"
|
|
535
|
+
? {
|
|
536
|
+
url: media,
|
|
537
|
+
}
|
|
538
|
+
: media,
|
|
539
|
+
caption: text,
|
|
540
|
+
mentions: props.mentions,
|
|
541
|
+
}, {
|
|
542
|
+
quoted: props.answering,
|
|
543
|
+
});
|
|
544
|
+
}
|
|
545
|
+
catch (error) {
|
|
546
|
+
return yield this.sendText(Object.assign({ to: receiver, text: failMsg || "There is error while trying to send the image🥹" }, props));
|
|
547
|
+
}
|
|
509
548
|
});
|
|
510
549
|
}
|
|
511
550
|
sendVideo(_a) {
|
|
512
551
|
return __awaiter(this, void 0, void 0, function* () {
|
|
513
|
-
var { to, text = "", isGroup = false, media } = _a, props = __rest(_a, ["to", "text", "isGroup", "media"]);
|
|
552
|
+
var { to, text = "", isGroup = false, media, failMsg } = _a, props = __rest(_a, ["to", "text", "isGroup", "media", "failMsg"]);
|
|
514
553
|
if (!media)
|
|
515
554
|
throw new Error_1.AutoWAError("'media' parameter must be Buffer or String URL");
|
|
516
555
|
const { receiver, msg } = yield this.validateReceiver({
|
|
517
|
-
to,
|
|
556
|
+
from: to,
|
|
518
557
|
isGroup,
|
|
519
558
|
});
|
|
520
559
|
if (msg)
|
|
521
560
|
throw new Error_1.AutoWAError(msg);
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
561
|
+
try {
|
|
562
|
+
return yield this.sock.sendMessage(receiver, {
|
|
563
|
+
video: typeof media == "string"
|
|
564
|
+
? {
|
|
565
|
+
url: media,
|
|
566
|
+
}
|
|
567
|
+
: media,
|
|
568
|
+
caption: text,
|
|
569
|
+
mentions: props.mentions,
|
|
570
|
+
}, {
|
|
571
|
+
quoted: props.answering,
|
|
572
|
+
});
|
|
573
|
+
}
|
|
574
|
+
catch (error) {
|
|
575
|
+
return yield this.sendText(Object.assign({ to: receiver, text: failMsg || "There is error while trying to send the video🥹" }, props));
|
|
576
|
+
}
|
|
533
577
|
});
|
|
534
578
|
}
|
|
535
579
|
sendDocument(_a) {
|
|
536
580
|
return __awaiter(this, void 0, void 0, function* () {
|
|
537
|
-
var { to, text = "", isGroup = false, media, filename } = _a, props = __rest(_a, ["to", "text", "isGroup", "media", "filename"]);
|
|
581
|
+
var { to, text = "", isGroup = false, media, filename, failMsg } = _a, props = __rest(_a, ["to", "text", "isGroup", "media", "filename", "failMsg"]);
|
|
538
582
|
if (!media)
|
|
539
583
|
throw new Error_1.AutoWAError("'media' parameter must be Buffer or String URL");
|
|
540
584
|
const mimetype = mime_1.default.getType(filename);
|
|
541
585
|
if (!mimetype)
|
|
542
586
|
throw new Error_1.AutoWAError(`Filename must include valid extension`);
|
|
543
587
|
const { receiver, msg } = yield this.validateReceiver({
|
|
544
|
-
to,
|
|
588
|
+
from: to,
|
|
545
589
|
isGroup,
|
|
546
590
|
});
|
|
547
591
|
if (msg)
|
|
548
592
|
throw new Error_1.AutoWAError(msg);
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
593
|
+
try {
|
|
594
|
+
return yield this.sock.sendMessage(receiver, {
|
|
595
|
+
fileName: filename,
|
|
596
|
+
document: typeof media == "string"
|
|
597
|
+
? {
|
|
598
|
+
url: media,
|
|
599
|
+
}
|
|
600
|
+
: media,
|
|
601
|
+
mimetype: mimetype,
|
|
602
|
+
caption: text,
|
|
603
|
+
mentions: props.mentions,
|
|
604
|
+
}, {
|
|
605
|
+
quoted: props.answering,
|
|
606
|
+
});
|
|
607
|
+
}
|
|
608
|
+
catch (error) {
|
|
609
|
+
return yield this.sendText(Object.assign({ to: receiver, text: failMsg || "There is error while trying to send the document" }, props));
|
|
610
|
+
}
|
|
562
611
|
});
|
|
563
612
|
}
|
|
564
613
|
sendAudio(_a) {
|
|
565
614
|
return __awaiter(this, void 0, void 0, function* () {
|
|
566
|
-
var { to, isGroup = false, media, voiceNote = false } = _a, props = __rest(_a, ["to", "isGroup", "media", "voiceNote"]);
|
|
615
|
+
var { to, isGroup = false, media, voiceNote = false, failMsg } = _a, props = __rest(_a, ["to", "isGroup", "media", "voiceNote", "failMsg"]);
|
|
567
616
|
if (!media)
|
|
568
617
|
throw new Error_1.AutoWAError("'media' parameter must be Buffer or String URL");
|
|
569
618
|
const { receiver, msg } = yield this.validateReceiver({
|
|
570
|
-
to,
|
|
619
|
+
from: to,
|
|
571
620
|
isGroup,
|
|
572
621
|
});
|
|
573
622
|
if (msg)
|
|
574
623
|
throw new Error_1.AutoWAError(msg);
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
624
|
+
try {
|
|
625
|
+
return yield this.sock.sendMessage(receiver, {
|
|
626
|
+
audio: typeof media == "string"
|
|
627
|
+
? {
|
|
628
|
+
url: media,
|
|
629
|
+
}
|
|
630
|
+
: media,
|
|
631
|
+
ptt: voiceNote,
|
|
632
|
+
mentions: props.mentions,
|
|
633
|
+
}, {
|
|
634
|
+
quoted: props.answering,
|
|
635
|
+
});
|
|
636
|
+
}
|
|
637
|
+
catch (error) {
|
|
638
|
+
return yield this.sendText(Object.assign({ to: receiver, text: failMsg || "There is error while trying to send the audio🥹" }, props));
|
|
639
|
+
}
|
|
586
640
|
});
|
|
587
641
|
}
|
|
588
642
|
sendReaction(_a) {
|
|
589
643
|
return __awaiter(this, arguments, void 0, function* ({ to, text, isGroup = false, answering }) {
|
|
590
644
|
const { receiver, msg } = yield this.validateReceiver({
|
|
591
|
-
to,
|
|
645
|
+
from: to,
|
|
592
646
|
isGroup,
|
|
593
647
|
});
|
|
594
648
|
if (msg)
|
|
@@ -604,7 +658,7 @@ class AutoWA {
|
|
|
604
658
|
sendTyping(_a) {
|
|
605
659
|
return __awaiter(this, arguments, void 0, function* ({ to, duration = 1000, isGroup = false }) {
|
|
606
660
|
const { receiver, msg } = yield this.validateReceiver({
|
|
607
|
-
to,
|
|
661
|
+
from: to,
|
|
608
662
|
isGroup,
|
|
609
663
|
});
|
|
610
664
|
if (msg)
|
|
@@ -617,7 +671,7 @@ class AutoWA {
|
|
|
617
671
|
sendRecording(_a) {
|
|
618
672
|
return __awaiter(this, arguments, void 0, function* ({ to, duration = 1000, isGroup = false }) {
|
|
619
673
|
const { receiver, msg } = yield this.validateReceiver({
|
|
620
|
-
to,
|
|
674
|
+
from: to,
|
|
621
675
|
isGroup,
|
|
622
676
|
});
|
|
623
677
|
if (msg)
|
|
@@ -634,31 +688,44 @@ class AutoWA {
|
|
|
634
688
|
}
|
|
635
689
|
sendSticker(_a) {
|
|
636
690
|
return __awaiter(this, void 0, void 0, function* () {
|
|
637
|
-
var { to, isGroup,
|
|
638
|
-
if (!filePath)
|
|
639
|
-
throw new Error_1.AutoWAError("'filePath' parameter must be String to file path");
|
|
691
|
+
var { to, isGroup, media, sticker, failMsg } = _a, props = __rest(_a, ["to", "isGroup", "media", "sticker", "failMsg"]);
|
|
640
692
|
const { receiver, msg } = yield this.validateReceiver({
|
|
641
|
-
to,
|
|
693
|
+
from: to,
|
|
642
694
|
isGroup,
|
|
643
695
|
});
|
|
644
696
|
if (msg)
|
|
645
697
|
throw new Error_1.AutoWAError(msg);
|
|
646
|
-
|
|
647
|
-
if (
|
|
648
|
-
|
|
698
|
+
let buf;
|
|
699
|
+
if (!sticker) {
|
|
700
|
+
if (!media)
|
|
701
|
+
throw new Error_1.AutoWAError("'media' or 'sticker' parameter must be filled");
|
|
702
|
+
if (!(typeof media === "string" || Buffer.isBuffer(media))) {
|
|
703
|
+
throw new Error_1.AutoWAError("'media' parameter must be String or Buffer");
|
|
704
|
+
}
|
|
705
|
+
const stickerProps = Object.assign(Object.assign(Object.assign({}, this.defaultStickerProps), { media }), props);
|
|
706
|
+
buf = yield (0, make_stiker_1.makeWebpBuffer)(stickerProps);
|
|
707
|
+
if (buf === null) {
|
|
708
|
+
return yield this.sendText(Object.assign({ to, text: failMsg || "There is error while creating the sticker🥹", isGroup }, props));
|
|
709
|
+
}
|
|
710
|
+
sticker = buf;
|
|
711
|
+
}
|
|
712
|
+
try {
|
|
713
|
+
return yield this.sock.sendMessage(receiver, {
|
|
714
|
+
sticker,
|
|
715
|
+
mentions: props.mentions,
|
|
716
|
+
}, {
|
|
717
|
+
quoted: props.answering,
|
|
718
|
+
});
|
|
719
|
+
}
|
|
720
|
+
catch (error) {
|
|
721
|
+
return yield this.sendText(Object.assign({ to: receiver, text: failMsg || "There is error while trying to send the sticker🥹" }, props));
|
|
649
722
|
}
|
|
650
|
-
return yield this.sock.sendMessage(receiver, {
|
|
651
|
-
sticker: buffer,
|
|
652
|
-
mentions: props.mentions,
|
|
653
|
-
}, {
|
|
654
|
-
quoted: props.answering,
|
|
655
|
-
});
|
|
656
723
|
});
|
|
657
724
|
}
|
|
658
725
|
getProfileInfo(target) {
|
|
659
726
|
return __awaiter(this, void 0, void 0, function* () {
|
|
660
727
|
const { receiver, msg } = yield this.validateReceiver({
|
|
661
|
-
|
|
728
|
+
from: target,
|
|
662
729
|
});
|
|
663
730
|
if (msg)
|
|
664
731
|
throw new Error_1.AutoWAError(msg);
|
|
@@ -675,48 +742,48 @@ class AutoWA {
|
|
|
675
742
|
addMemberToGroup(_a) {
|
|
676
743
|
return __awaiter(this, arguments, void 0, function* ({ participants, to }) {
|
|
677
744
|
const { receiver: group, msg } = yield this.validateReceiver({
|
|
678
|
-
to,
|
|
745
|
+
from: to,
|
|
679
746
|
isGroup: true,
|
|
680
747
|
});
|
|
681
748
|
if (msg)
|
|
682
749
|
throw new Error_1.AutoWAError(msg);
|
|
683
|
-
participants = participants.map((d) => (0, helper_1.phoneToJid)({
|
|
750
|
+
participants = participants.map((d) => (0, helper_1.phoneToJid)({ from: d }));
|
|
684
751
|
return yield this.sock.groupParticipantsUpdate(group, participants, "add");
|
|
685
752
|
});
|
|
686
753
|
}
|
|
687
754
|
removeMemberFromGroup(_a) {
|
|
688
755
|
return __awaiter(this, arguments, void 0, function* ({ participants, to }) {
|
|
689
756
|
const { receiver: group, msg } = yield this.validateReceiver({
|
|
690
|
-
to,
|
|
757
|
+
from: to,
|
|
691
758
|
isGroup: true,
|
|
692
759
|
});
|
|
693
760
|
if (msg)
|
|
694
761
|
throw new Error_1.AutoWAError(msg);
|
|
695
|
-
participants = participants.map((d) => (0, helper_1.phoneToJid)({
|
|
762
|
+
participants = participants.map((d) => (0, helper_1.phoneToJid)({ from: d }));
|
|
696
763
|
return yield this.sock.groupParticipantsUpdate(group, participants, "remove");
|
|
697
764
|
});
|
|
698
765
|
}
|
|
699
766
|
promoteMemberGroup(_a) {
|
|
700
767
|
return __awaiter(this, arguments, void 0, function* ({ participants, to }) {
|
|
701
768
|
const { receiver: group, msg } = yield this.validateReceiver({
|
|
702
|
-
to,
|
|
769
|
+
from: to,
|
|
703
770
|
isGroup: true,
|
|
704
771
|
});
|
|
705
772
|
if (msg)
|
|
706
773
|
throw new Error_1.AutoWAError(msg);
|
|
707
|
-
participants = participants.map((d) => (0, helper_1.phoneToJid)({
|
|
774
|
+
participants = participants.map((d) => (0, helper_1.phoneToJid)({ from: d }));
|
|
708
775
|
return yield this.sock.groupParticipantsUpdate(group, participants, "promote");
|
|
709
776
|
});
|
|
710
777
|
}
|
|
711
778
|
demoteMemberGroup(_a) {
|
|
712
779
|
return __awaiter(this, arguments, void 0, function* ({ participants, to }) {
|
|
713
780
|
const { receiver: group, msg } = yield this.validateReceiver({
|
|
714
|
-
to,
|
|
781
|
+
from: to,
|
|
715
782
|
isGroup: true,
|
|
716
783
|
});
|
|
717
784
|
if (msg)
|
|
718
785
|
throw new Error_1.AutoWAError(msg);
|
|
719
|
-
participants = participants.map((d) => (0, helper_1.phoneToJid)({
|
|
786
|
+
participants = participants.map((d) => (0, helper_1.phoneToJid)({ from: d }));
|
|
720
787
|
return yield this.sock.groupParticipantsUpdate(group, participants, "demote");
|
|
721
788
|
});
|
|
722
789
|
}
|