mirror of
https://github.com/FranP-code/Baileys.git
synced 2025-10-13 00:32:22 +00:00
feat: add label feature (#955)
Co-authored-by: 刘建辉 <liujianhui@gongchang.com>
This commit is contained in:
@@ -8,6 +8,7 @@ import { makeMutex } from '../Utils/make-mutex'
|
||||
import processMessage from '../Utils/process-message'
|
||||
import { BinaryNode, getBinaryNodeChild, getBinaryNodeChildren, jidNormalizedUser, reduceBinaryNodeToDictionary, S_WHATSAPP_NET } from '../WABinary'
|
||||
import { makeSocket } from './socket'
|
||||
import { Label, LabelActionBody } from '../Types/Label'
|
||||
|
||||
const MAX_SYNC_ATTEMPTS = 2
|
||||
|
||||
@@ -804,6 +805,17 @@ export const makeChatsSocket = (config: SocketConfig) => {
|
||||
}, jid)
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds label
|
||||
*/
|
||||
const addLabel = (jid: string, labels: LabelActionBody) => {
|
||||
return chatModify({
|
||||
addLabel: {
|
||||
...labels
|
||||
}
|
||||
}, jid)
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds label for the chats
|
||||
*/
|
||||
@@ -1024,6 +1036,7 @@ export const makeChatsSocket = (config: SocketConfig) => {
|
||||
resyncAppState,
|
||||
chatModify,
|
||||
cleanDirtyBits,
|
||||
addLabel,
|
||||
addChatLabel,
|
||||
removeChatLabel,
|
||||
addMessageLabel,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import type { proto } from '../../WAProto'
|
||||
import type { AccountSettings } from './Auth'
|
||||
import type { BufferedEventData } from './Events'
|
||||
import type { LabelActionBody } from './Label'
|
||||
import type { ChatLabelAssociationActionBody } from './LabelAssociation'
|
||||
import type { MessageLabelAssociationActionBody } from './LabelAssociation'
|
||||
import type { MinimalMessage } from './Message'
|
||||
@@ -90,6 +91,8 @@ export type ChatModification =
|
||||
lastMessages: LastMessageList
|
||||
}
|
||||
| { delete: true, lastMessages: LastMessageList }
|
||||
// Label
|
||||
| { addLabel: LabelActionBody }
|
||||
// Label assosiation
|
||||
| { addChatLabel: ChatLabelAssociationActionBody }
|
||||
| { removeChatLabel: ChatLabelAssociationActionBody }
|
||||
|
||||
@@ -11,6 +11,18 @@ export interface Label {
|
||||
predefinedId?: string
|
||||
}
|
||||
|
||||
export interface LabelActionBody {
|
||||
id: string
|
||||
/** Label name */
|
||||
name?: string
|
||||
/** Label color ID */
|
||||
color?: number
|
||||
/** Is label has been deleted */
|
||||
deleted?: boolean
|
||||
/** WhatsApp has 5 predefined labels (New customer, New order & etc) */
|
||||
predefinedId?: number
|
||||
}
|
||||
|
||||
/** WhatsApp has 20 predefined colors */
|
||||
export enum LabelColor {
|
||||
Color1 = 0,
|
||||
|
||||
@@ -620,6 +620,21 @@ export const chatModificationToAppPatch = (
|
||||
apiVersion: 1,
|
||||
operation: OP.SET,
|
||||
}
|
||||
} else if('addLabel' in mod) {
|
||||
patch = {
|
||||
syncAction: {
|
||||
labelEditAction: {
|
||||
name: mod.addLabel.name,
|
||||
color: mod.addLabel.color,
|
||||
predefinedId : mod.addLabel.predefinedId,
|
||||
deleted: mod.addLabel.deleted
|
||||
}
|
||||
},
|
||||
index: ['label_edit', mod.addLabel.id],
|
||||
type: 'regular',
|
||||
apiVersion: 3,
|
||||
operation: OP.SET,
|
||||
}
|
||||
} else if('addChatLabel' in mod) {
|
||||
patch = {
|
||||
syncAction: {
|
||||
|
||||
Reference in New Issue
Block a user