Skip to content

Commit 41675fd

Browse files
committed
feat: update group join and leave messages
1 parent 231ebda commit 41675fd

3 files changed

Lines changed: 55 additions & 14 deletions

File tree

src/components/events/groups/join.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { GroupNotification } from "whatsapp-web.js";
22
import log from "../../utils/log";
33
import sleep from "../../utils/sleep";
44
import { client } from "../../client";
5+
import { getMessage } from "../../../data/group";
56

67
const PROJECT_CANIS_ALIAS = process.env.PROJECT_CANIS_ALIAS || "Canis";
78

@@ -17,8 +18,6 @@ export default async function (notif: GroupNotification) {
1718
const name = contact.pushname || contact.name || contact.id.user;
1819
const isSelf = contact.id._serialized === client.info.wid._serialized;
1920

20-
await sleep(2000);
21-
2221
log.info("Group Join", `${name} joined the group ${group.name}`);
2322

2423
if (isSelf) {
@@ -38,7 +37,7 @@ export default async function (notif: GroupNotification) {
3837
}
3938

4039
if (newMembers.length > 0) {
41-
await notif.reply(`👋 Welcome *${newMembers.join(", ")}* 🎉`);
40+
await notif.reply(getMessage("welcome", `*${newMembers.join(", ")}*`));
4241
}
4342
} catch (err) {
4443
log.error("Group Join", "Failed to process group join event:", err);

src/components/events/groups/leave.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { GroupNotification } from "whatsapp-web.js";
22
import log from "../../utils/log";
33
import sleep from "../../utils/sleep";
4+
import { client } from "../../client";
5+
import { getMessage } from "../../../data/group";
46

57
export default async function (notif: GroupNotification) {
68
try {
@@ -12,19 +14,17 @@ export default async function (notif: GroupNotification) {
1214

1315
for (const contact of recipients) {
1416
const name = contact.pushname || contact.name || contact.id.user;
15-
log.info("Group Leave", `${name} left the group ${group.name}`);
16-
17-
await sleep(1500); // prevent flooding
18-
leavers.push(name);
17+
const isSelf = contact.id._serialized === client.info.wid._serialized;
18+
if (!isSelf) {
19+
log.info("Group Leave", `${name} left the group ${group.name}`);
20+
leavers.push(name);
21+
} else {
22+
log.info("Group Leave", `the bot left the group ${group.name}`);
23+
}
1924
}
2025

21-
if (leavers.length > 0) {
22-
await notif.reply(
23-
leavers.length === 1
24-
? `👋 *${leavers[0]}* has left. I’ll miss you!`
25-
: `👋 *${leavers.join(", ")}* have left. We’ll miss you all!`,
26-
);
27-
}
26+
if (leavers.length > 0)
27+
await notif.reply(getMessage("leaving", `*${leavers.join(", ")}*`));
2828
} catch (err) {
2929
log.error("Group Leave", "Failed to process group leave event:", err);
3030
}

src/data/group.ts

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
type MessageFn = (user: string) => string;
2+
3+
interface MessageSets {
4+
welcome: MessageFn[];
5+
leaving: MessageFn[];
6+
}
7+
8+
const messages: MessageSets = {
9+
welcome: [
10+
(user) => `Welcome ${user}! 🎉`,
11+
(user) => `Hello ${user}, glad you joined us 👋`,
12+
(user) => `Hey ${user}, welcome aboard 🚀`,
13+
(user) => `Nice to see you, ${user}! 🌟`,
14+
(user) => `A warm welcome to you, ${user}! 🫶`,
15+
(user) => `${user} just arrived! Everyone say hi 👋`,
16+
(user) => `Happy to have you here, ${user}! 🌈`,
17+
(user) => `${user}, you’ve entered the chat. Let’s go! 🔥`,
18+
(user) => `Cheers to ${user} for joining us 🥂`,
19+
(user) => `Big welcome to ${user}! 💫`,
20+
(user) => `${user} has landed 🛬`,
21+
(user) => `Good to see you, ${user}. Make yourself at home 🏡`,
22+
],
23+
leaving: [
24+
(user) => `Goodbye ${user}, we’ll miss you 😢`,
25+
(user) => `See you later ${user}, take care 👋`,
26+
(user) => `Sad to see you go, ${user} 💔`,
27+
(user) => `Farewell ${user}, until next time 🌈`,
28+
(user) => `Bye ${user}, wishing you all the best 🍀`,
29+
(user) => `${user} has left the building 🏃‍♂️💨`,
30+
(user) => `Take care ${user}, hope to see you again 🙏`,
31+
(user) => `Adios ${user}! Safe travels 🌍`,
32+
(user) => `${user} has signed off. Catch you later 💻`,
33+
(user) => `We’ll keep your seat warm, ${user} 🔥`,
34+
(user) => `Goodbye ${user}, it won’t be the same without you 🥺`,
35+
(user) => `${user} just disappeared like a ninja 🥷✨`,
36+
]
37+
};
38+
39+
export function getMessage(type: keyof MessageSets, user: string): string {
40+
const arr = messages[type];
41+
return arr[Math.floor(Math.random() * arr.length)](user);
42+
}

0 commit comments

Comments
 (0)