whatsauto.js 1.0.8 → 1.1.1

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 CHANGED
@@ -113,10 +113,10 @@ ev.onMessageReceived(async (msg) => {
113
113
 
114
114
  if (msg.text == "sticker") {
115
115
  // convert this message to sticker buffer (if its has media)
116
- const sticker = await msg.toSticker();
116
+ const [sticker, hasMedia] = await msg.toSticker();
117
117
  // or
118
118
  // const sticker = await msg.toSticker({ pack: "whatsauto.js", author: "freack21" });
119
- if (sticker) {
119
+ if (hasMedia) {
120
120
  // reply this message with audio
121
121
  await msg.replyWithSticker(sticker);
122
122
  }
@@ -22,9 +22,22 @@ export interface IWAutoSendMedia extends IWAutoSendMessage {
22
22
  * Media you want to send
23
23
  */
24
24
  media: string | Buffer;
25
+ sticker?: Buffer;
25
26
  voiceNote?: boolean;
26
27
  failMsg?: string;
27
28
  }
29
+ export interface IWAutoSendSticker extends IWAutoSendMessage {
30
+ /**
31
+ * media you want to be sticker
32
+ */
33
+ media?: Buffer | string;
34
+ /**
35
+ * Sticker you want to send
36
+ */
37
+ sticker?: Buffer | null;
38
+ hasMedia?: boolean;
39
+ failMsg?: string;
40
+ }
28
41
  export interface IWAutoSendTyping extends IWAutoSendMessage {
29
42
  /**
30
43
  * Duration of your typing display
@@ -61,7 +74,7 @@ export interface Repliable {
61
74
  /**
62
75
  * reply this message with Sticker
63
76
  */
64
- replyWithSticker: (sticker: Buffer | null, data?: Partial<IWAutoSendMedia & IStickerOptions>) => Promise<proto.WebMessageInfo>;
77
+ replyWithSticker: (sticker: Buffer | null, data?: Partial<IWAutoSendSticker & IStickerOptions>) => Promise<proto.WebMessageInfo>;
65
78
  /**
66
79
  * reply this message with Typing
67
80
  */
@@ -123,8 +136,9 @@ export interface IWAutoMessage extends proto.IWebMessageInfo, Repliable {
123
136
  read: () => Promise<void>;
124
137
  /**
125
138
  * convert this message to sticker
139
+ * @returns [sticker: Buffer, hasMedia: boolean]
126
140
  */
127
- toSticker: (props?: Omit<IStickerOptions, "media">) => Promise<Buffer | null>;
141
+ toSticker: (props?: IStickerOptions) => Promise<[Buffer | null, boolean]>;
128
142
  /**
129
143
  * forward this message
130
144
  */
@@ -168,12 +182,9 @@ export interface IWAutoSessionConfig {
168
182
  phoneNumber?: string;
169
183
  }
170
184
  export interface IStickerOptions {
171
- media: string | Buffer;
185
+ media: string | Buffer | null;
172
186
  pack?: string;
173
187
  author?: string;
174
- transparent?: boolean;
175
- bgColor?: string;
176
- sticker?: Buffer;
177
188
  }
178
189
  export interface GroupMemberUpdate extends Repliable {
179
190
  sessionId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Types/index.ts"],"names":[],"mappings":"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"}
@@ -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,CAoEpF,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,MAA2D,CAAC"}
1
+ {"version":3,"file":"make-stiker.d.ts","sourceRoot":"","sources":["../../src/Utils/make-stiker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAS3C,eAAO,MAAM,cAAc,YAAmB,eAAe,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAwEpF,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,MAA2D,CAAC"}
@@ -13,18 +13,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.generateStickerID = exports.makeWebpBuffer = void 0;
16
- const ffmpeg = require("fluent-ffmpeg");
17
- const { Image } = require("node-webpmux");
18
16
  const fs_1 = __importDefault(require("fs"));
19
17
  const crypto_1 = require("crypto");
18
+ const file_type_1 = require("file-type");
19
+ const node_webpmux_1 = require("node-webpmux");
20
+ const os_1 = require("os");
21
+ const fs_extra_1 = require("fs-extra");
22
+ const path_1 = require("path");
23
+ const fluent_ffmpeg_1 = __importDefault(require("fluent-ffmpeg"));
20
24
  const makeWebpBuffer = (options) => __awaiter(void 0, void 0, void 0, function* () {
21
- const getRandomName = () => `./${Date.now()}${Math.random() * 1000}.webp`;
22
- const randomName = getRandomName();
25
+ const getRandomName = () => `${Math.random().toString(36).slice(2)}.webp`;
23
26
  let buffer = null;
24
- const { media, pack = "", author = "", transparent = true, bgColor = "white" } = options;
27
+ let { media, pack = "", author = "" } = options;
25
28
  if (!media)
26
29
  return buffer;
27
- const tempName = typeof media == "string" ? media : getRandomName();
30
+ const tempDir = (0, path_1.join)((0, os_1.tmpdir)(), `webp_${Math.random().toString(36).slice(2)}`);
31
+ yield (0, fs_extra_1.ensureDir)(tempDir);
32
+ const inputName = (0, path_1.join)(tempDir, typeof media == "string" ? media : getRandomName());
33
+ const webpName = (0, path_1.join)(tempDir, getRandomName());
28
34
  const data = JSON.stringify({
29
35
  "sticker-pack-id": (0, exports.generateStickerID)(),
30
36
  "sticker-pack-name": pack,
@@ -39,46 +45,47 @@ const makeWebpBuffer = (options) => __awaiter(void 0, void 0, void 0, function*
39
45
  Buffer.from(data, "utf-8"),
40
46
  ]);
41
47
  exif.writeUIntLE(new TextEncoder().encode(data).length, 14, 4);
42
- const backgroundColor = transparent ? "color=white@0.0" : `color=${bgColor}`;
48
+ const getStickerBuffer = (buffer) => __awaiter(void 0, void 0, void 0, function* () {
49
+ const img = new node_webpmux_1.Image();
50
+ yield img.load(buffer);
51
+ img.exif = exif;
52
+ return yield img.save(null);
53
+ });
43
54
  if (Buffer.isBuffer(media)) {
44
- fs_1.default.writeFileSync(tempName, media.toString("base64"), "base64");
55
+ fs_1.default.writeFileSync(inputName, media);
56
+ }
57
+ else if (typeof media == "string") {
58
+ media = fs_1.default.readFileSync(media);
59
+ }
60
+ else {
61
+ return buffer;
62
+ }
63
+ const { mime } = yield (0, file_type_1.fromBuffer)(media);
64
+ if (mime.includes("webp")) {
65
+ return yield getStickerBuffer(media);
45
66
  }
46
67
  return new Promise((resolve) => {
47
- ffmpeg(tempName)
48
- .input(tempName)
49
- .on("error", () => {
50
- fs_1.default.unlinkSync(tempName);
51
- if (fs_1.default.existsSync(randomName))
52
- fs_1.default.unlinkSync(randomName);
68
+ (0, fluent_ffmpeg_1.default)(inputName)
69
+ .input(inputName)
70
+ .on("error", () => __awaiter(void 0, void 0, void 0, function* () {
71
+ yield (0, fs_extra_1.remove)(tempDir);
53
72
  resolve(buffer);
54
- })
73
+ }))
55
74
  .on("end", () => __awaiter(void 0, void 0, void 0, function* () {
56
- let image = yield (() => __awaiter(void 0, void 0, void 0, function* () {
57
- try {
58
- const img = new Image();
59
- yield img.load(randomName);
60
- return img;
61
- }
62
- catch (error) {
63
- return resolve(buffer);
64
- }
65
- }))();
66
- image.exif = exif;
67
- buffer = yield image.save(null);
68
- fs_1.default.unlinkSync(tempName);
69
- fs_1.default.unlinkSync(randomName);
75
+ buffer = yield getStickerBuffer(fs_1.default.readFileSync(webpName));
76
+ yield (0, fs_extra_1.remove)(tempDir);
70
77
  resolve(buffer);
71
78
  }))
72
79
  .addOutputOptions([
73
80
  `-vcodec`,
74
81
  `libwebp`,
75
82
  `-lavfi`,
76
- `scale='min(320,iw)':min'(320,ih)':force_original_aspect_ratio=decrease,fps=15, pad=320:320:-1:-1:${backgroundColor}, split [a][b]; [a] palettegen=reserve_transparent=on:transparency_color=ffffff [p]; [b][p] paletteuse`,
83
+ `scale='min(512,iw)':'min(512,ih)':force_original_aspect_ratio=decrease,fps=15, pad=512:512:-1:-1:color=white@0.0, split [a][b]; [a] palettegen=reserve_transparent=on:transparency_color=ffffff [p]; [b][p] paletteuse`,
77
84
  ])
78
85
  .toFormat("webp")
79
- .save(randomName);
86
+ .save(webpName);
80
87
  });
81
88
  });
82
89
  exports.makeWebpBuffer = makeWebpBuffer;
83
- const generateStickerID = () => `WhatsAuto.js|${(0, crypto_1.randomBytes)(16).toString("hex")}`;
90
+ const generateStickerID = () => `whatsauto.js|${(0, crypto_1.randomBytes)(16).toString("hex")}`;
84
91
  exports.generateStickerID = generateStickerID;
@@ -1,5 +1,5 @@
1
1
  import { WASocket } from "@whiskeysockets/baileys";
2
- import { IWAutoSendMessage, IWAutoSendTyping, IWAutoSessionConfig, IWAutoMessage, IStickerOptions, WAutoGroupMemberActionOptions, IWAutoSendMedia, IWAutoPhoneToJid, IWAutoForwardMessage } from "../Types";
2
+ import { IWAutoSendMessage, IWAutoSendTyping, IWAutoSessionConfig, IWAutoMessage, WAutoGroupMemberActionOptions, IWAutoSendMedia, IWAutoPhoneToJid, IWAutoForwardMessage, IWAutoSendSticker, IStickerOptions } from "../Types";
3
3
  import AutoWAEvent from "./AutoWAEvent";
4
4
  export declare class AutoWA {
5
5
  private logger;
@@ -32,7 +32,7 @@ export declare class AutoWA {
32
32
  sendTyping({ to, duration, isGroup }: IWAutoSendTyping): Promise<void>;
33
33
  sendRecording({ to, duration, isGroup }: IWAutoSendTyping): Promise<void>;
34
34
  readMessage(msgs: IWAutoMessage[]): Promise<void>;
35
- sendSticker({ to, isGroup, media, sticker, failMsg, ...props }: IWAutoSendMedia & IStickerOptions): Promise<import("@whiskeysockets/baileys").proto.WebMessageInfo>;
35
+ sendSticker({ to, isGroup, sticker, media, failMsg, hasMedia, ...props }: IWAutoSendSticker & IStickerOptions): Promise<import("@whiskeysockets/baileys").proto.WebMessageInfo>;
36
36
  forwardMessage({ to, msg, isGroup, ...props }: IWAutoForwardMessage): Promise<import("@whiskeysockets/baileys").proto.WebMessageInfo>;
37
37
  getProfileInfo(target: string): Promise<{
38
38
  profilePictureUrl: string;
@@ -1 +1 @@
1
- {"version":3,"file":"AutoWA.d.ts","sourceRoot":"","sources":["../../src/WhatsApp/AutoWA.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutoWA.d.ts","sourceRoot":"","sources":["../../src/WhatsApp/AutoWA.ts"],"names":[],"mappings":"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"}
@@ -74,9 +74,9 @@ const P = require("pino")({
74
74
  class AutoWA {
75
75
  constructor(sessionId, options) {
76
76
  this.defaultStickerProps = {
77
- media: "",
78
- pack: "WhatsAuto.js",
77
+ pack: "whatsauto.js",
79
78
  author: "freack21",
79
+ media: null,
80
80
  };
81
81
  if ((0, helper_1.isSessionExist)(sessionId) && _1.sessions.get(sessionId))
82
82
  throw new Error_1.ValidationError(Defaults_1.Messages.sessionAlreadyExist(sessionId));
@@ -257,26 +257,26 @@ class AutoWA {
257
257
  ? mediaTypes.indexOf(mimeType.split("/")[0])
258
258
  : 3];
259
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); });
260
+ msg.toSticker = () => __awaiter(this, void 0, void 0, function* () { return Promise.resolve([null, false]); });
261
261
  if (msg.hasMedia) {
262
262
  msg.downloadMedia = (...args_1) => __awaiter(this, [...args_1], void 0, function* (opts = {}) { return this.downloadMedia(msg, opts, ext); });
263
263
  }
264
264
  if (msg.hasMedia || ((_a = msg.quotedMessage) === null || _a === void 0 ? void 0 : _a.hasMedia)) {
265
265
  msg.toSticker = (props) => __awaiter(this, void 0, void 0, function* () {
266
- let mediaPath;
266
+ let mediaBuf;
267
267
  if (msg.hasMedia && ["image", "video"].includes(msg.mediaType)) {
268
- mediaPath = yield msg.downloadMedia();
268
+ mediaBuf = yield msg.downloadMedia({ asBuffer: true });
269
269
  }
270
270
  else if (msg.quotedMessage &&
271
271
  msg.quotedMessage.hasMedia &&
272
272
  ["image", "video"].includes(msg.quotedMessage.mediaType)) {
273
- mediaPath = yield msg.quotedMessage.downloadMedia();
273
+ mediaBuf = yield msg.quotedMessage.downloadMedia({ asBuffer: true });
274
274
  }
275
- if (!mediaPath)
276
- return null;
277
- const stickerProps = Object.assign(Object.assign(Object.assign({}, this.defaultStickerProps), props), { media: mediaPath });
275
+ if (!mediaBuf)
276
+ return [null, false];
277
+ const stickerProps = Object.assign(Object.assign(Object.assign({}, this.defaultStickerProps), props), { media: mediaBuf });
278
278
  const buffer = yield (0, make_stiker_1.makeWebpBuffer)(stickerProps);
279
- return buffer;
279
+ return [buffer, true];
280
280
  });
281
281
  }
282
282
  };
@@ -484,7 +484,7 @@ class AutoWA {
484
484
  const buf = yield (0, baileys_1.downloadMediaMessage)(msg, "buffer", {});
485
485
  if (opts.asBuffer)
486
486
  return Promise.resolve(buf);
487
- fs_1.default.writeFileSync(filePath, buf.toString("base64"), "base64");
487
+ fs_1.default.writeFileSync(filePath, buf);
488
488
  return Promise.resolve(filePath);
489
489
  });
490
490
  }
@@ -697,26 +697,24 @@ class AutoWA {
697
697
  }
698
698
  sendSticker(_a) {
699
699
  return __awaiter(this, void 0, void 0, function* () {
700
- var { to, isGroup, media, sticker, failMsg } = _a, props = __rest(_a, ["to", "isGroup", "media", "sticker", "failMsg"]);
700
+ var { to, isGroup, sticker, media, failMsg, hasMedia } = _a, props = __rest(_a, ["to", "isGroup", "sticker", "media", "failMsg", "hasMedia"]);
701
701
  const { receiver, msg } = yield this.validateReceiver({
702
702
  from: to,
703
703
  isGroup,
704
704
  });
705
705
  if (msg)
706
706
  throw new Error_1.AutoWAError(msg);
707
- let buf;
707
+ if (!media && !sticker && !hasMedia)
708
+ throw new Error_1.AutoWAError("'media' or 'sticker' parameter must be filled");
708
709
  if (!sticker) {
709
- if (!media)
710
- throw new Error_1.AutoWAError("'media' or 'sticker' parameter must be filled");
711
- if (!(typeof media === "string" || Buffer.isBuffer(media))) {
712
- throw new Error_1.AutoWAError("'media' parameter must be String or Buffer");
710
+ if (!(typeof media === "string" || Buffer.isBuffer(media)) && !hasMedia) {
711
+ throw new Error_1.AutoWAError("'media' parameter must be string or buffer");
713
712
  }
714
713
  const stickerProps = Object.assign(Object.assign(Object.assign({}, this.defaultStickerProps), { media }), props);
715
- buf = yield (0, make_stiker_1.makeWebpBuffer)(stickerProps);
716
- if (buf === null) {
717
- return yield this.sendText(Object.assign({ to, text: failMsg || "There is error while creating the sticker🥹", isGroup }, props));
718
- }
719
- sticker = buf;
714
+ sticker = yield (0, make_stiker_1.makeWebpBuffer)(stickerProps);
715
+ }
716
+ if (!sticker || !Buffer.isBuffer(sticker)) {
717
+ return yield this.sendText(Object.assign({ to, text: failMsg || "There is error while creating the sticker🥹", isGroup }, props));
720
718
  }
721
719
  try {
722
720
  return yield this.sock.sendMessage(receiver, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "whatsauto.js",
3
- "version": "1.0.8",
3
+ "version": "1.1.1",
4
4
  "description": "Easy WhatsApp Automation with Session",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -25,14 +25,17 @@
25
25
  "dependencies": {
26
26
  "@adiwajshing/keyed-db": "^0.2.4",
27
27
  "@hapi/boom": "^10.0.1",
28
+ "@types/fluent-ffmpeg": "^2.1.27",
29
+ "@types/fs-extra": "^11.0.4",
28
30
  "@whiskeysockets/baileys": "^6.7.9",
29
31
  "colorette": "^2.0.20",
32
+ "file-type": "^16.5.3",
30
33
  "fluent-ffmpeg": "^2.1.3",
34
+ "fs-extra": "^11.3.0",
31
35
  "mime": "^3.0.0",
32
36
  "node-webpmux": "^3.2.0",
33
37
  "pino": "^9.5.0",
34
- "qrcode-terminal": "^0.12.0",
35
- "wa-sticker-formatter": "^4.4.4"
38
+ "qrcode-terminal": "^0.12.0"
36
39
  },
37
40
  "repository": {
38
41
  "type": "git",