From ece99eab23a01d5efcaa14a19b4da9028b914135 Mon Sep 17 00:00:00 2001 From: azudin Date: Sat, 2 Dec 2023 07:26:09 +0800 Subject: [PATCH 01/15] Fixed star message --- src/Utils/chat-utils.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/Utils/chat-utils.ts b/src/Utils/chat-utils.ts index b6668b8..dad0558 100644 --- a/src/Utils/chat-utils.ts +++ b/src/Utils/chat-utils.ts @@ -583,6 +583,19 @@ export const chatModificationToAppPatch = ( apiVersion: 5, operation: OP.SET } + } else if('star' in mod) { + const key = mod.star.messages[0] + patch = { + syncAction: { + starAction: { + starred: !!mod.star + } + }, + index: ['star', jid, key.id, key.fromMe ? '1' : '0', '0'], + type: 'regular_low', + apiVersion: 2, + operation: OP.SET + } } else if('delete' in mod) { patch = { syncAction: { From 4b3841d202ce98413395a65c97b4a5dd43a9a25d Mon Sep 17 00:00:00 2001 From: azudin Date: Sat, 2 Dec 2023 07:37:35 +0800 Subject: [PATCH 02/15] Update messages-recv.ts --- src/Socket/messages-recv.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/Socket/messages-recv.ts b/src/Socket/messages-recv.ts index 5ed6a7a..c545fd3 100644 --- a/src/Socket/messages-recv.ts +++ b/src/Socket/messages-recv.ts @@ -392,14 +392,13 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { }, } }) - } else if (child.tag === 'blocklist') { + } else if(child.tag === 'blocklist') { const blocklists = getBinaryNodeChildren(child, 'item') for(const { attrs } of blocklists) { - const blocklist = [attrs.jid] - const type = (attrs.action === 'block') ? 'add' : 'remove' - - ev.emit('blocklist.update', { blocklist, type }) + const blocklist = [attrs.jid] + const type = (attrs.action === 'block') ? 'add' : 'remove' + ev.emit('blocklist.update', { blocklist, type }) } } From 3d0632b563a056c3c5341c1af8800fe7f43f0a79 Mon Sep 17 00:00:00 2001 From: azudin Date: Sat, 2 Dec 2023 07:40:19 +0800 Subject: [PATCH 03/15] Update groups.ts --- src/Socket/groups.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Socket/groups.ts b/src/Socket/groups.ts index cfc11a9..7bfaff3 100644 --- a/src/Socket/groups.ts +++ b/src/Socket/groups.ts @@ -318,7 +318,7 @@ export const extractGroupMetadata = (result: BinaryNode) => { const groupId = group.attrs.id.includes('@') ? group.attrs.id : jidEncode(group.attrs.id, 'g.us') const eph = getBinaryNodeChild(group, 'ephemeral')?.attrs.expiration - const memberAddMode = getBinaryNodeChildString(group, 'member_add_mode') == "all_member_add" + const memberAddMode = getBinaryNodeChildString(group, 'member_add_mode') == 'all_member_add' const metadata: GroupMetadata = { id: groupId, subject: group.attrs.subject, From 29ec56cd88706a2f9c43fad1a7be15257ea6f4d7 Mon Sep 17 00:00:00 2001 From: azudin Date: Sat, 2 Dec 2023 07:41:28 +0800 Subject: [PATCH 04/15] Update groups.ts --- src/Socket/groups.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Socket/groups.ts b/src/Socket/groups.ts index 7bfaff3..f1613c1 100644 --- a/src/Socket/groups.ts +++ b/src/Socket/groups.ts @@ -318,7 +318,7 @@ export const extractGroupMetadata = (result: BinaryNode) => { const groupId = group.attrs.id.includes('@') ? group.attrs.id : jidEncode(group.attrs.id, 'g.us') const eph = getBinaryNodeChild(group, 'ephemeral')?.attrs.expiration - const memberAddMode = getBinaryNodeChildString(group, 'member_add_mode') == 'all_member_add' + const memberAddMode = getBinaryNodeChildString(group, 'member_add_mode') === 'all_member_add' const metadata: GroupMetadata = { id: groupId, subject: group.attrs.subject, From ed6b8a22e4e381ae299997e1a51c1147c93028b8 Mon Sep 17 00:00:00 2001 From: azudin Date: Sat, 2 Dec 2023 07:42:21 +0800 Subject: [PATCH 05/15] Update messages-recv.ts --- src/Socket/messages-recv.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Socket/messages-recv.ts b/src/Socket/messages-recv.ts index c545fd3..4565b2d 100644 --- a/src/Socket/messages-recv.ts +++ b/src/Socket/messages-recv.ts @@ -400,7 +400,7 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { const type = (attrs.action === 'block') ? 'add' : 'remove' ev.emit('blocklist.update', { blocklist, type }) } - } + } break case 'link_code_companion_reg': From 0898c7cd7697176b25b3d3a17374a7ea128a48e1 Mon Sep 17 00:00:00 2001 From: azudin Date: Thu, 7 Dec 2023 23:10:04 +0800 Subject: [PATCH 06/15] Update chats.ts --- src/Socket/chats.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/Socket/chats.ts b/src/Socket/chats.ts index f38425f..b5803da 100644 --- a/src/Socket/chats.ts +++ b/src/Socket/chats.ts @@ -777,6 +777,18 @@ export const makeChatsSocket = (config: SocketConfig) => { return appPatch(patch) } + /** + * Star or Unstar a message + */ + const star = (jid, message, star) => { + return chatModify({ + star: { + message, + star + } + }, jid); + }; + /** * Adds label for the chats */ From d3cf789f821dbf604a81320acb166b2bb3f31b9c Mon Sep 17 00:00:00 2001 From: azudin Date: Thu, 7 Dec 2023 23:11:07 +0800 Subject: [PATCH 07/15] Update chat-utils.ts --- src/Utils/chat-utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Utils/chat-utils.ts b/src/Utils/chat-utils.ts index dad0558..22e4243 100644 --- a/src/Utils/chat-utils.ts +++ b/src/Utils/chat-utils.ts @@ -588,7 +588,7 @@ export const chatModificationToAppPatch = ( patch = { syncAction: { starAction: { - starred: !!mod.star + starred: !!mod.star.star } }, index: ['star', jid, key.id, key.fromMe ? '1' : '0', '0'], From d1b57cf990679807a89db322c5057974e256f1ca Mon Sep 17 00:00:00 2001 From: azudin Date: Thu, 7 Dec 2023 23:37:06 +0800 Subject: [PATCH 08/15] Update chats.ts --- src/Socket/chats.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Socket/chats.ts b/src/Socket/chats.ts index b5803da..103625e 100644 --- a/src/Socket/chats.ts +++ b/src/Socket/chats.ts @@ -780,7 +780,7 @@ export const makeChatsSocket = (config: SocketConfig) => { /** * Star or Unstar a message */ - const star = (jid, message, star) => { + const star = (jid: string, messages: [], star: boolean) => { return chatModify({ star: { message, From 13fcf827f4d846391d5751450d812b0c40eb0589 Mon Sep 17 00:00:00 2001 From: azudin Date: Thu, 7 Dec 2023 23:41:46 +0800 Subject: [PATCH 09/15] Update chats.ts --- src/Socket/chats.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Socket/chats.ts b/src/Socket/chats.ts index 103625e..ee1887f 100644 --- a/src/Socket/chats.ts +++ b/src/Socket/chats.ts @@ -780,7 +780,7 @@ export const makeChatsSocket = (config: SocketConfig) => { /** * Star or Unstar a message */ - const star = (jid: string, messages: [], star: boolean) => { + const star = (jid: string, messages: any, star: boolean) => { return chatModify({ star: { message, From 92dec36781fa1c5a94dbff5cd4af60bb7ca987b6 Mon Sep 17 00:00:00 2001 From: azudin Date: Thu, 7 Dec 2023 23:44:51 +0800 Subject: [PATCH 10/15] Update chats.ts --- src/Socket/chats.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Socket/chats.ts b/src/Socket/chats.ts index ee1887f..ccb3c6d 100644 --- a/src/Socket/chats.ts +++ b/src/Socket/chats.ts @@ -780,7 +780,7 @@ export const makeChatsSocket = (config: SocketConfig) => { /** * Star or Unstar a message */ - const star = (jid: string, messages: any, star: boolean) => { + const star = (jid: string, messages: { id: string; fromMe?: boolean }[], star: boolean) => { return chatModify({ star: { message, From 6f81ce95277da7979fbf82de9d871f852adbe555 Mon Sep 17 00:00:00 2001 From: azudin Date: Thu, 7 Dec 2023 23:51:22 +0800 Subject: [PATCH 11/15] Update chats.ts --- src/Socket/chats.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Socket/chats.ts b/src/Socket/chats.ts index ccb3c6d..8ec09e4 100644 --- a/src/Socket/chats.ts +++ b/src/Socket/chats.ts @@ -783,7 +783,7 @@ export const makeChatsSocket = (config: SocketConfig) => { const star = (jid: string, messages: { id: string; fromMe?: boolean }[], star: boolean) => { return chatModify({ star: { - message, + messages, star } }, jid); From 41321dc34e817819d47b49c268f5bbdaa3a83320 Mon Sep 17 00:00:00 2001 From: azudin Date: Thu, 7 Dec 2023 23:55:09 +0800 Subject: [PATCH 12/15] Update chats.ts --- src/Socket/chats.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Socket/chats.ts b/src/Socket/chats.ts index 8ec09e4..1b03fa0 100644 --- a/src/Socket/chats.ts +++ b/src/Socket/chats.ts @@ -781,13 +781,13 @@ export const makeChatsSocket = (config: SocketConfig) => { * Star or Unstar a message */ const star = (jid: string, messages: { id: string; fromMe?: boolean }[], star: boolean) => { - return chatModify({ - star: { - messages, - star - } - }, jid); - }; + return chatModify({ + star: { + messages, + star + } + }, jid) + } /** * Adds label for the chats From 9ce6e7b4e644e0ad8c50c2b037650d871fba61b0 Mon Sep 17 00:00:00 2001 From: azudin Date: Fri, 8 Dec 2023 00:01:10 +0800 Subject: [PATCH 13/15] Update chats.ts --- src/Socket/chats.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Socket/chats.ts b/src/Socket/chats.ts index 1b03fa0..e672bdf 100644 --- a/src/Socket/chats.ts +++ b/src/Socket/chats.ts @@ -780,7 +780,7 @@ export const makeChatsSocket = (config: SocketConfig) => { /** * Star or Unstar a message */ - const star = (jid: string, messages: { id: string; fromMe?: boolean }[], star: boolean) => { + const star = (jid: string, messages: { id: string, fromMe?: boolean }[], star: boolean) => { return chatModify({ star: { messages, @@ -788,7 +788,7 @@ export const makeChatsSocket = (config: SocketConfig) => { } }, jid) } - + /** * Adds label for the chats */ From b93d1f5bd783c5075319f0a8b37bb1a6bfd0309c Mon Sep 17 00:00:00 2001 From: azudin Date: Fri, 8 Dec 2023 00:13:17 +0800 Subject: [PATCH 14/15] Update chats.ts --- src/Socket/chats.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Socket/chats.ts b/src/Socket/chats.ts index e672bdf..286506d 100644 --- a/src/Socket/chats.ts +++ b/src/Socket/chats.ts @@ -1011,6 +1011,7 @@ export const makeChatsSocket = (config: SocketConfig) => { addChatLabel, removeChatLabel, addMessageLabel, - removeMessageLabel + removeMessageLabel, + star } } From 64ba1a7e1257e7e27b25543c195fd77b14be6eb8 Mon Sep 17 00:00:00 2001 From: azudin Date: Fri, 8 Dec 2023 00:19:25 +0800 Subject: [PATCH 15/15] Update README.md --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index c24c654..b95ea04 100644 --- a/README.md +++ b/README.md @@ -698,6 +698,15 @@ WA uses an encrypted form of communication to send chat/app updates. This has be }, '123456@s.whatsapp.net') ``` + +- Star/unstar a message + ``` ts + await sock.chatModify({ + star: { + messages: [{ id: 'messageID', fromMe: true // or `false` }], + star: true // - true: Star Message; false: Unstar Message + }},'123456@s.whatsapp.net'); + ``` **Note:** if you mess up one of your updates, WA can log you out of all your devices and you'll have to log in again.