-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
70 lines (61 loc) · 1.84 KB
/
Copy pathindex.js
File metadata and controls
70 lines (61 loc) · 1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import { create, decryptMedia } from "@open-wa/wa-automate";
import PQueue from "p-queue";
import { nanoid } from "nanoid";
import randomWords from "random-words";
import sharp from "sharp";
var clientX;
const proc = async (message) => {
try {
clientX.sendSeen(message.from);
const messageId = nanoid();
const messageDate = new Date(message.t * 1000);
const senderId = message.sender.id; // "905511274827@c.us"
const senderName =
message.sender.pushname != undefined ? message.sender.pushname : "x"; // "Tarık"
const toSticker =
message.mimetype != undefined && message.mimetype.includes("jpeg")
? 1
: 0;
const logMessage = `[${messageId}]: ${messageDate.toUTCString()} | ${senderId} | ${senderName} | ${
message.isMedia ? message.mimetype : message.body
}`;
console.log(logMessage);
if (toSticker === 1) {
const stickerMetadata = {
author: randomWords(),
pack: randomWords(),
};
const mediaData = await decryptMedia(message);
sharp(mediaData)
.resize({
height: 400,
width: 400,
fit: "contain",
background: { r: 0, g: 0, b: 0, alpha: 0 },
})
.toFormat("png")
.toBuffer()
.then(async (data) => {
clientX.sendImageAsSticker(message.from, data, stickerMetadata);
});
}
clientX.sendSeen(message.from);
} catch (error) {
console.error(error);
}
};
const queue = new PQueue({
concurrency: 1,
autoStart: false,
});
const processMessage = (message) => queue.add(() => proc(message));
async function start(client) {
const unreadMessages = await client.getAllUnreadMessages();
unreadMessages.forEach(processMessage);
await client.onMessage(processMessage);
queue.start();
}
create().then((client) => {
clientX = client;
start(client);
});