n8n-nodes-zalo-stable 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.md +93 -0
  3. package/dist/credentials/N8nZaloApi.credentials.d.ts +8 -0
  4. package/dist/credentials/N8nZaloApi.credentials.js +31 -0
  5. package/dist/credentials/N8nZaloApi.credentials.js.map +1 -0
  6. package/dist/credentials/N8nZaloApi.credentials.ts +32 -0
  7. package/dist/credentials/ZaloApi.credentials.d.ts +8 -0
  8. package/dist/credentials/ZaloApi.credentials.js +64 -0
  9. package/dist/credentials/ZaloApi.credentials.js.map +1 -0
  10. package/dist/credentials/ZaloApi.credentials.ts +66 -0
  11. package/dist/credentials/shared/n8n.png +0 -0
  12. package/dist/credentials/shared/zalo.svg +10 -0
  13. package/dist/nodes/ZaloFriendTrigger/ZaloFriendTrigger.node.d.ts +12 -0
  14. package/dist/nodes/ZaloFriendTrigger/ZaloFriendTrigger.node.js +129 -0
  15. package/dist/nodes/ZaloFriendTrigger/ZaloFriendTrigger.node.js.map +1 -0
  16. package/dist/nodes/ZaloGroup/ZaloGroup.node.d.ts +5 -0
  17. package/dist/nodes/ZaloGroup/ZaloGroup.node.js +228 -0
  18. package/dist/nodes/ZaloGroup/ZaloGroup.node.js.map +1 -0
  19. package/dist/nodes/ZaloGroup/ZaloGroupDescription.d.ts +3 -0
  20. package/dist/nodes/ZaloGroup/ZaloGroupDescription.js +348 -0
  21. package/dist/nodes/ZaloGroup/ZaloGroupDescription.js.map +1 -0
  22. package/dist/nodes/ZaloLoginByQr/ZaloLoginByQr.node.d.ts +5 -0
  23. package/dist/nodes/ZaloLoginByQr/ZaloLoginByQr.node.js +422 -0
  24. package/dist/nodes/ZaloLoginByQr/ZaloLoginByQr.node.js.map +1 -0
  25. package/dist/nodes/ZaloMessageTrigger/ZaloMessageTrigger.node.d.ts +12 -0
  26. package/dist/nodes/ZaloMessageTrigger/ZaloMessageTrigger.node.js +147 -0
  27. package/dist/nodes/ZaloMessageTrigger/ZaloMessageTrigger.node.js.map +1 -0
  28. package/dist/nodes/ZaloPoll/ZaloPoll.node.d.ts +5 -0
  29. package/dist/nodes/ZaloPoll/ZaloPoll.node.js +187 -0
  30. package/dist/nodes/ZaloPoll/ZaloPoll.node.js.map +1 -0
  31. package/dist/nodes/ZaloPoll/ZaloPollDescription.d.ts +3 -0
  32. package/dist/nodes/ZaloPoll/ZaloPollDescription.js +260 -0
  33. package/dist/nodes/ZaloPoll/ZaloPollDescription.js.map +1 -0
  34. package/dist/nodes/ZaloSendMessage/ZaloSendMessage.node.d.ts +5 -0
  35. package/dist/nodes/ZaloSendMessage/ZaloSendMessage.node.js +305 -0
  36. package/dist/nodes/ZaloSendMessage/ZaloSendMessage.node.js.map +1 -0
  37. package/dist/nodes/ZaloTag/ZaloTag.node.d.ts +5 -0
  38. package/dist/nodes/ZaloTag/ZaloTag.node.js +81 -0
  39. package/dist/nodes/ZaloTag/ZaloTag.node.js.map +1 -0
  40. package/dist/nodes/ZaloUser/ZaloUser.node.d.ts +5 -0
  41. package/dist/nodes/ZaloUser/ZaloUser.node.js +235 -0
  42. package/dist/nodes/ZaloUser/ZaloUser.node.js.map +1 -0
  43. package/dist/nodes/ZaloUser/ZaloUserDescription.d.ts +3 -0
  44. package/dist/nodes/ZaloUser/ZaloUserDescription.js +361 -0
  45. package/dist/nodes/ZaloUser/ZaloUserDescription.js.map +1 -0
  46. package/dist/nodes/shared/zalo.svg +10 -0
  47. package/dist/nodes/utils/helper.d.ts +2 -0
  48. package/dist/nodes/utils/helper.js +42 -0
  49. package/dist/nodes/utils/helper.js.map +1 -0
  50. package/dist/package.json +81 -0
  51. package/dist/tsconfig.tsbuildinfo +1 -0
  52. package/index.js +0 -0
  53. package/package.json +81 -0
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZaloPoll = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const ZaloPollDescription_1 = require("./ZaloPollDescription");
6
+ const zca_js_1 = require("zca-js");
7
+ let api;
8
+ class ZaloPoll {
9
+ constructor() {
10
+ this.description = {
11
+ displayName: 'Zalo Poll',
12
+ name: 'zaloPoll',
13
+ icon: 'file:../shared/zalo.svg',
14
+ group: ['Zalo'],
15
+ version: 1,
16
+ subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
17
+ description: 'Quản bình chọn Zalo',
18
+ defaults: {
19
+ name: 'Zalo Poll',
20
+ },
21
+ inputs: ['main'],
22
+ outputs: ['main'],
23
+ credentials: [
24
+ {
25
+ name: 'zaloApi',
26
+ required: true,
27
+ displayName: 'Zalo Credential to connect with',
28
+ },
29
+ ],
30
+ properties: [
31
+ {
32
+ displayName: 'Resource',
33
+ name: 'resource',
34
+ type: 'options',
35
+ noDataExpression: true,
36
+ options: [
37
+ {
38
+ name: 'Poll',
39
+ value: 'zaloPoll',
40
+ },
41
+ ],
42
+ default: 'zaloPoll',
43
+ },
44
+ ...ZaloPollDescription_1.zaloPollOperations,
45
+ ...ZaloPollDescription_1.zaloPollFields,
46
+ ],
47
+ };
48
+ }
49
+ async execute() {
50
+ var _a, _b, _c;
51
+ const items = this.getInputData();
52
+ const returnData = [];
53
+ const resource = this.getNodeParameter('resource', 0);
54
+ const operation = this.getNodeParameter('operation', 0);
55
+ const zaloCred = await this.getCredentials('zaloApi');
56
+ const cookieFromCred = JSON.parse(zaloCred.cookie);
57
+ const imeiFromCred = zaloCred.imei;
58
+ const userAgentFromCred = zaloCred.userAgent;
59
+ const cookie = cookieFromCred !== null && cookieFromCred !== void 0 ? cookieFromCred : (_a = items.find((x) => x.json.cookie)) === null || _a === void 0 ? void 0 : _a.json.cookie;
60
+ const imei = imeiFromCred !== null && imeiFromCred !== void 0 ? imeiFromCred : (_b = items.find((x) => x.json.imei)) === null || _b === void 0 ? void 0 : _b.json.imei;
61
+ const userAgent = userAgentFromCred !== null && userAgentFromCred !== void 0 ? userAgentFromCred : (_c = items.find((x) => x.json.userAgent)) === null || _c === void 0 ? void 0 : _c.json.userAgent;
62
+ const zalo = new zca_js_1.Zalo();
63
+ const _api = await zalo.login({ cookie, imei, userAgent });
64
+ api = _api;
65
+ if (!api) {
66
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No API instance found. Please make sure to provide valid credentials.');
67
+ }
68
+ for (let i = 0; i < items.length; i++) {
69
+ try {
70
+ if (resource === 'zaloPoll') {
71
+ if (operation === 'createPoll') {
72
+ const groupId = this.getNodeParameter('groupId', i);
73
+ const question = this.getNodeParameter('question', i);
74
+ const optionInputType = this.getNodeParameter('optionInputType', i, 'list');
75
+ let options = [];
76
+ if (optionInputType === 'list') {
77
+ try {
78
+ const pollOptionsCollection = this.getNodeParameter('pollOptionsCollection', i, { options: [] });
79
+ if ((pollOptionsCollection === null || pollOptionsCollection === void 0 ? void 0 : pollOptionsCollection.options) && Array.isArray(pollOptionsCollection.options)) {
80
+ options = pollOptionsCollection.options
81
+ .map(item => ((item === null || item === void 0 ? void 0 : item.option) || '').trim())
82
+ .filter(option => option !== '');
83
+ }
84
+ }
85
+ catch (error) {
86
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Lỗi xử lý các lựa chọn: ' + (error.message || 'Lỗi không xác định'));
87
+ }
88
+ }
89
+ else if (optionInputType === 'text') {
90
+ const optionsString = this.getNodeParameter('optionsString', i, '');
91
+ if (optionsString && optionsString.trim() !== '') {
92
+ options = optionsString.split(',')
93
+ .map(option => option.trim())
94
+ .filter(option => option !== '');
95
+ }
96
+ }
97
+ if (!options || options.length === 0) {
98
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Vui lòng nhập ít nhất một lựa chọn cho bình chọn', { itemIndex: i });
99
+ }
100
+ const expiredTime = this.getNodeParameter('expiredTime', i, null) !== null ? new Date(this.getNodeParameter('expiredTime', i)).getTime() || 0 : 0;
101
+ const pinAct = this.getNodeParameter('pinAct', i, false);
102
+ const allowMultiChoices = this.getNodeParameter('allowMultiChoices', i, true);
103
+ const allowAddNewOption = this.getNodeParameter('allowAddNewOption', i, true);
104
+ const hideVotePreview = this.getNodeParameter('hideVotePreview', i, false);
105
+ const isAnonymous = this.getNodeParameter('isAnonymous', i, false);
106
+ const createPollData = {
107
+ question: question,
108
+ options: options,
109
+ expiredTime: expiredTime,
110
+ pinAct: pinAct,
111
+ allowMultiChoices: allowMultiChoices,
112
+ allowAddNewOption: allowAddNewOption,
113
+ hideVotePreview: hideVotePreview,
114
+ isAnonymous: isAnonymous
115
+ };
116
+ this.logger.info(`Create poll with parameters: ${JSON.stringify(createPollData)}`);
117
+ if (!api) {
118
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Zalo API not initialized', { itemIndex: i });
119
+ }
120
+ const response = await api.createPoll(createPollData, groupId);
121
+ this.logger.info('Create poll successfully', { groupId, question });
122
+ returnData.push({
123
+ json: {
124
+ success: true,
125
+ response,
126
+ groupId,
127
+ createPollData,
128
+ },
129
+ });
130
+ }
131
+ else if (operation === 'getPoll') {
132
+ const poll_id = this.getNodeParameter('poll_id', i);
133
+ this.logger.info(`Get poll with parameters: ${JSON.stringify(poll_id)}`);
134
+ if (!api) {
135
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Zalo API not initialized', { itemIndex: i });
136
+ }
137
+ const response = await api.getPollDetail(Number(poll_id));
138
+ this.logger.info('Get poll successfully', { response });
139
+ returnData.push({
140
+ json: {
141
+ success: true,
142
+ response,
143
+ poll_id,
144
+ },
145
+ });
146
+ }
147
+ else if (operation === 'lockPoll') {
148
+ const poll_id = this.getNodeParameter('poll_id', i);
149
+ this.logger.info(`Lock poll with parameters: ${JSON.stringify(poll_id)}`);
150
+ if (!api) {
151
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Zalo API not initialized', { itemIndex: i });
152
+ }
153
+ const response = await api.lockPoll(poll_id);
154
+ this.logger.info('Lock poll successfully', { response });
155
+ returnData.push({
156
+ json: {
157
+ success: true,
158
+ response,
159
+ poll_id,
160
+ },
161
+ });
162
+ }
163
+ }
164
+ }
165
+ catch (error) {
166
+ this.logger.info(`Error create poll: ${JSON.stringify(error)}`);
167
+ if (this.continueOnFail()) {
168
+ returnData.push({
169
+ json: {
170
+ error: error.message,
171
+ },
172
+ pairedItem: {
173
+ item: i,
174
+ },
175
+ });
176
+ continue;
177
+ }
178
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, {
179
+ itemIndex: i,
180
+ });
181
+ }
182
+ }
183
+ return [returnData];
184
+ }
185
+ }
186
+ exports.ZaloPoll = ZaloPoll;
187
+ //# sourceMappingURL=ZaloPoll.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZaloPoll.node.js","sourceRoot":"","sources":["../../../nodes/ZaloPoll/ZaloPoll.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { INodeProperties } from 'n8n-workflow';
2
+ export declare const zaloPollOperations: INodeProperties[];
3
+ export declare const zaloPollFields: INodeProperties[];
@@ -0,0 +1,260 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.zaloPollFields = exports.zaloPollOperations = void 0;
4
+ exports.zaloPollOperations = [
5
+ {
6
+ displayName: 'Operation',
7
+ name: 'operation',
8
+ type: 'options',
9
+ noDataExpression: true,
10
+ displayOptions: {
11
+ show: {
12
+ resource: ['zaloPoll'],
13
+ },
14
+ },
15
+ options: [
16
+ {
17
+ name: 'Tạo bình chọn',
18
+ value: 'createPoll',
19
+ description: 'Tạo một bình chọn mới',
20
+ action: 'Tạo bình chọn',
21
+ },
22
+ {
23
+ name: 'Lấy thông tin bình chọn',
24
+ value: 'getPoll',
25
+ description: 'Lấy thông tin bình chọn',
26
+ action: 'Lấy thông tin bình chọn',
27
+ },
28
+ {
29
+ name: 'Khóa bình chọn',
30
+ value: 'lockPoll',
31
+ description: 'Khóa bình chọn',
32
+ action: 'Khóa bình chọn',
33
+ },
34
+ ],
35
+ default: 'createPoll',
36
+ },
37
+ ];
38
+ exports.zaloPollFields = [
39
+ {
40
+ displayName: 'ID Nhóm',
41
+ name: 'groupId',
42
+ type: 'string',
43
+ default: '',
44
+ required: true,
45
+ displayOptions: {
46
+ show: {
47
+ resource: ['zaloPoll'],
48
+ operation: ['createPoll'],
49
+ },
50
+ },
51
+ description: 'ID của nhóm để tạo poll (chỉ hoạt động với nhóm)',
52
+ },
53
+ {
54
+ displayName: 'Chủ đề bình chọn',
55
+ name: 'question',
56
+ type: 'string',
57
+ required: true,
58
+ default: '',
59
+ displayOptions: {
60
+ show: {
61
+ resource: ['zaloPoll'],
62
+ operation: ['createPoll'],
63
+ },
64
+ },
65
+ description: 'Đặt câu hỏi bình chọn',
66
+ },
67
+ {
68
+ displayName: 'Kiểu nhập lựa chọn',
69
+ name: 'optionInputType',
70
+ type: 'options',
71
+ options: [
72
+ {
73
+ name: 'Danh sách',
74
+ value: 'list',
75
+ description: 'Nhập từng lựa chọn riêng biệt',
76
+ },
77
+ {
78
+ name: 'Văn bản',
79
+ value: 'text',
80
+ description: 'Nhập tất cả lựa chọn trong một ô, phân tách bằng dấu phẩy',
81
+ },
82
+ ],
83
+ default: 'list',
84
+ displayOptions: {
85
+ show: {
86
+ resource: ['zaloPoll'],
87
+ operation: ['createPoll'],
88
+ },
89
+ },
90
+ },
91
+ {
92
+ displayName: 'Các lựa chọn',
93
+ name: 'pollOptionsCollection',
94
+ type: 'fixedCollection',
95
+ placeholder: 'Thêm lựa chọn',
96
+ typeOptions: {
97
+ multipleValues: true,
98
+ sortable: true
99
+ },
100
+ default: {
101
+ options: [
102
+ { option: '' },
103
+ { option: '' },
104
+ ],
105
+ },
106
+ displayOptions: {
107
+ show: {
108
+ resource: ['zaloPoll'],
109
+ operation: ['createPoll'],
110
+ optionInputType: ['list'],
111
+ },
112
+ },
113
+ options: [
114
+ {
115
+ name: 'options',
116
+ displayName: 'Lựa chọn',
117
+ values: [
118
+ {
119
+ displayName: 'Lựa chọn',
120
+ name: 'option',
121
+ type: 'string',
122
+ default: '',
123
+ placeholder: 'Nhập lựa chọn...',
124
+ description: 'Nội dung của lựa chọn',
125
+ required: true,
126
+ },
127
+ ],
128
+ },
129
+ ],
130
+ description: 'Thêm các lựa chọn cho bình chọn',
131
+ },
132
+ {
133
+ displayName: 'Các lựa chọn',
134
+ name: 'optionsString',
135
+ type: 'string',
136
+ default: 'Lựa chọn 1, Lựa chọn 2, Lựa chọn 3',
137
+ placeholder: 'Nhập các lựa chọn, phân tách bằng dấu phẩy...',
138
+ displayOptions: {
139
+ show: {
140
+ resource: ['zaloPoll'],
141
+ operation: ['createPoll'],
142
+ optionInputType: ['text'],
143
+ },
144
+ },
145
+ description: 'Nhập các lựa chọn, mỗi lựa chọn phân tách bằng dấu phẩy',
146
+ },
147
+ {
148
+ displayName: 'Thời hạn bình chọn',
149
+ name: 'expiredTime',
150
+ type: 'dateTime',
151
+ required: false,
152
+ default: '',
153
+ displayOptions: {
154
+ show: {
155
+ resource: ['zaloPoll'],
156
+ operation: ['createPoll'],
157
+ },
158
+ },
159
+ description: 'Thời hạn bình chọn (Để trống nếu không có thời hạn)',
160
+ },
161
+ {
162
+ displayName: 'Ghim lên đầu trò chuyện',
163
+ name: 'pinAct',
164
+ type: 'boolean',
165
+ required: false,
166
+ default: false,
167
+ displayOptions: {
168
+ show: {
169
+ resource: ['zaloPoll'],
170
+ operation: ['createPoll'],
171
+ },
172
+ },
173
+ description: 'Tạo ghim lên đầu trò chuyện',
174
+ },
175
+ {
176
+ displayName: 'Chọn nhiều phương án',
177
+ name: 'allowMultiChoices',
178
+ type: 'boolean',
179
+ required: true,
180
+ default: true,
181
+ displayOptions: {
182
+ show: {
183
+ resource: ['zaloPoll'],
184
+ operation: ['createPoll'],
185
+ },
186
+ },
187
+ description: 'Người tham gia có thể bình chọn nhiều phương án khác nhau',
188
+ },
189
+ {
190
+ displayName: 'Có thể thêm phương án',
191
+ name: 'allowAddNewOption',
192
+ type: 'boolean',
193
+ required: true,
194
+ default: true,
195
+ displayOptions: {
196
+ show: {
197
+ resource: ['zaloPoll'],
198
+ operation: ['createPoll'],
199
+ },
200
+ },
201
+ description: 'Người tham gia có thể thêm phương án mới',
202
+ },
203
+ {
204
+ displayName: 'Ẩn kết quả khi chưa bình chọn',
205
+ name: 'hideVotePreview',
206
+ type: 'boolean',
207
+ required: true,
208
+ default: false,
209
+ displayOptions: {
210
+ show: {
211
+ resource: ['zaloPoll'],
212
+ operation: ['createPoll'],
213
+ },
214
+ },
215
+ description: 'Người tham gia chỉ thấy kết quả sau khi bình chọn',
216
+ },
217
+ {
218
+ displayName: 'Ẩn người bình chọn',
219
+ name: 'isAnonymous',
220
+ type: 'boolean',
221
+ required: true,
222
+ default: false,
223
+ displayOptions: {
224
+ show: {
225
+ resource: ['zaloPoll'],
226
+ operation: ['createPoll'],
227
+ },
228
+ },
229
+ description: 'Người tham gia không thể thấy người khác bình chọn',
230
+ },
231
+ {
232
+ displayName: 'ID bình chọn',
233
+ name: 'poll_id',
234
+ type: 'number',
235
+ default: '',
236
+ required: true,
237
+ displayOptions: {
238
+ show: {
239
+ resource: ['zaloPoll'],
240
+ operation: ['getPoll'],
241
+ },
242
+ },
243
+ description: 'ID của bình chọn',
244
+ },
245
+ {
246
+ displayName: 'ID bình chọn',
247
+ name: 'poll_id',
248
+ type: 'number',
249
+ default: '',
250
+ required: true,
251
+ displayOptions: {
252
+ show: {
253
+ resource: ['zaloPoll'],
254
+ operation: ['lockPoll'],
255
+ },
256
+ },
257
+ description: 'ID của bình chọn',
258
+ },
259
+ ];
260
+ //# sourceMappingURL=ZaloPollDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZaloPollDescription.js","sourceRoot":"","sources":["../../../nodes/ZaloPoll/ZaloPollDescription.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class ZaloSendMessage implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }