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 processMessage from '../Utils/process-message'
|
||||||
import { BinaryNode, getBinaryNodeChild, getBinaryNodeChildren, jidNormalizedUser, reduceBinaryNodeToDictionary, S_WHATSAPP_NET } from '../WABinary'
|
import { BinaryNode, getBinaryNodeChild, getBinaryNodeChildren, jidNormalizedUser, reduceBinaryNodeToDictionary, S_WHATSAPP_NET } from '../WABinary'
|
||||||
import { makeSocket } from './socket'
|
import { makeSocket } from './socket'
|
||||||
|
import { Label, LabelActionBody } from '../Types/Label'
|
||||||
|
|
||||||
const MAX_SYNC_ATTEMPTS = 2
|
const MAX_SYNC_ATTEMPTS = 2
|
||||||
|
|
||||||
@@ -804,6 +805,17 @@ export const makeChatsSocket = (config: SocketConfig) => {
|
|||||||
}, jid)
|
}, jid)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds label
|
||||||
|
*/
|
||||||
|
const addLabel = (jid: string, labels: LabelActionBody) => {
|
||||||
|
return chatModify({
|
||||||
|
addLabel: {
|
||||||
|
...labels
|
||||||
|
}
|
||||||
|
}, jid)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds label for the chats
|
* Adds label for the chats
|
||||||
*/
|
*/
|
||||||
@@ -1024,6 +1036,7 @@ export const makeChatsSocket = (config: SocketConfig) => {
|
|||||||
resyncAppState,
|
resyncAppState,
|
||||||
chatModify,
|
chatModify,
|
||||||
cleanDirtyBits,
|
cleanDirtyBits,
|
||||||
|
addLabel,
|
||||||
addChatLabel,
|
addChatLabel,
|
||||||
removeChatLabel,
|
removeChatLabel,
|
||||||
addMessageLabel,
|
addMessageLabel,
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import type { proto } from '../../WAProto'
|
import type { proto } from '../../WAProto'
|
||||||
import type { AccountSettings } from './Auth'
|
import type { AccountSettings } from './Auth'
|
||||||
import type { BufferedEventData } from './Events'
|
import type { BufferedEventData } from './Events'
|
||||||
|
import type { LabelActionBody } from './Label'
|
||||||
import type { ChatLabelAssociationActionBody } from './LabelAssociation'
|
import type { ChatLabelAssociationActionBody } from './LabelAssociation'
|
||||||
import type { MessageLabelAssociationActionBody } from './LabelAssociation'
|
import type { MessageLabelAssociationActionBody } from './LabelAssociation'
|
||||||
import type { MinimalMessage } from './Message'
|
import type { MinimalMessage } from './Message'
|
||||||
@@ -90,6 +91,8 @@ export type ChatModification =
|
|||||||
lastMessages: LastMessageList
|
lastMessages: LastMessageList
|
||||||
}
|
}
|
||||||
| { delete: true, lastMessages: LastMessageList }
|
| { delete: true, lastMessages: LastMessageList }
|
||||||
|
// Label
|
||||||
|
| { addLabel: LabelActionBody }
|
||||||
// Label assosiation
|
// Label assosiation
|
||||||
| { addChatLabel: ChatLabelAssociationActionBody }
|
| { addChatLabel: ChatLabelAssociationActionBody }
|
||||||
| { removeChatLabel: ChatLabelAssociationActionBody }
|
| { removeChatLabel: ChatLabelAssociationActionBody }
|
||||||
|
|||||||
@@ -11,6 +11,18 @@ export interface Label {
|
|||||||
predefinedId?: string
|
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 */
|
/** WhatsApp has 20 predefined colors */
|
||||||
export enum LabelColor {
|
export enum LabelColor {
|
||||||
Color1 = 0,
|
Color1 = 0,
|
||||||
|
|||||||
@@ -620,6 +620,21 @@ export const chatModificationToAppPatch = (
|
|||||||
apiVersion: 1,
|
apiVersion: 1,
|
||||||
operation: OP.SET,
|
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) {
|
} else if('addChatLabel' in mod) {
|
||||||
patch = {
|
patch = {
|
||||||
syncAction: {
|
syncAction: {
|
||||||
|
|||||||
Reference in New Issue
Block a user