n8n-nodes-ume-v4 4.0.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 (58) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +204 -0
  3. package/dist/credentials/UmeApi.credentials.d.ts +7 -0
  4. package/dist/credentials/UmeApi.credentials.js +41 -0
  5. package/dist/index.d.ts +4 -0
  6. package/dist/index.js +9 -0
  7. package/dist/nodes/FacebookComment/FacebookComment.node.d.ts +5 -0
  8. package/dist/nodes/FacebookComment/FacebookComment.node.js +155 -0
  9. package/dist/nodes/FacebookCommentLike/FacebookCommentLike.node.d.ts +5 -0
  10. package/dist/nodes/FacebookCommentLike/FacebookCommentLike.node.js +122 -0
  11. package/dist/nodes/FacebookLike/FacebookLike.node.d.ts +5 -0
  12. package/dist/nodes/FacebookLike/FacebookLike.node.js +160 -0
  13. package/dist/nodes/FacebookShare/FacebookShare.node.d.ts +5 -0
  14. package/dist/nodes/FacebookShare/FacebookShare.node.js +141 -0
  15. package/dist/nodes/FacebookStoryView/FacebookStoryView.node.d.ts +5 -0
  16. package/dist/nodes/FacebookStoryView/FacebookStoryView.node.js +122 -0
  17. package/dist/nodes/FacebookView/FacebookView.node.d.ts +5 -0
  18. package/dist/nodes/FacebookView/FacebookView.node.js +127 -0
  19. package/dist/nodes/InstagramComment/InstagramComment.node.d.ts +5 -0
  20. package/dist/nodes/InstagramComment/InstagramComment.node.js +145 -0
  21. package/dist/nodes/InstagramLike/InstagramLike.node.d.ts +5 -0
  22. package/dist/nodes/InstagramLike/InstagramLike.node.js +138 -0
  23. package/dist/nodes/InstagramView/InstagramView.node.d.ts +5 -0
  24. package/dist/nodes/InstagramView/InstagramView.node.js +151 -0
  25. package/dist/nodes/TikTokComment/TikTokComment.node.d.ts +5 -0
  26. package/dist/nodes/TikTokComment/TikTokComment.node.js +136 -0
  27. package/dist/nodes/TikTokCommentLike/TikTokCommentLike.node.d.ts +5 -0
  28. package/dist/nodes/TikTokCommentLike/TikTokCommentLike.node.js +122 -0
  29. package/dist/nodes/TikTokFavorite/TikTokFavorite.node.d.ts +5 -0
  30. package/dist/nodes/TikTokFavorite/TikTokFavorite.node.js +127 -0
  31. package/dist/nodes/TikTokLike/TikTokLike.node.d.ts +5 -0
  32. package/dist/nodes/TikTokLike/TikTokLike.node.js +141 -0
  33. package/dist/nodes/TikTokShare/TikTokShare.node.d.ts +5 -0
  34. package/dist/nodes/TikTokShare/TikTokShare.node.js +131 -0
  35. package/dist/nodes/TikTokView/TikTokView.node.d.ts +5 -0
  36. package/dist/nodes/TikTokView/TikTokView.node.js +136 -0
  37. package/dist/nodes/Ume/Ume.node.d.ts +5 -0
  38. package/dist/nodes/Ume/Ume.node.js +244 -0
  39. package/dist/nodes/Ume/operations-data.json +2246 -0
  40. package/dist/nodes/UmeSocialSeeding/UmeSocialSeeding.node.d.ts +5 -0
  41. package/dist/nodes/UmeSocialSeeding/UmeSocialSeeding.node.js +203 -0
  42. package/dist/nodes/UmeSocialSeeding/UmeSocialSeedingHelpers.d.ts +4 -0
  43. package/dist/nodes/UmeSocialSeeding/UmeSocialSeedingHelpers.js +382 -0
  44. package/dist/nodes/UmeSocialSeeding/operations-data.json +673 -0
  45. package/dist/nodes/UmeSocialSeeding/reaction.png +0 -0
  46. package/dist/nodes/UmeSocialSeeding/server-info.json +431 -0
  47. package/dist/nodes/UmeSocialSeeding/services-data-backup.json +3525 -0
  48. package/dist/nodes/UmeSocialSeeding/services-data-old.json +2704 -0
  49. package/dist/nodes/UmeSocialSeeding/services-data.json +7341 -0
  50. package/dist/nodes/UmeSocialSeeding/services-data.json.backup +3525 -0
  51. package/dist/nodes/UmeSocialSeeding/services-data.json.backup.1759909364606 +1927 -0
  52. package/dist/nodes/YouTubeComment/YouTubeComment.node.d.ts +5 -0
  53. package/dist/nodes/YouTubeComment/YouTubeComment.node.js +152 -0
  54. package/dist/nodes/YouTubeLike/YouTubeLike.node.d.ts +5 -0
  55. package/dist/nodes/YouTubeLike/YouTubeLike.node.js +141 -0
  56. package/dist/nodes/YouTubeView/YouTubeView.node.d.ts +5 -0
  57. package/dist/nodes/YouTubeView/YouTubeView.node.js +142 -0
  58. package/package.json +62 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 hienhoceo
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,204 @@
1
+ # 🚀 n8n-nodes-ume v2.0
2
+
3
+ **🎯 Ultimate n8n integration for UME.COM.VN with 59+ services across 9 platforms**
4
+
5
+ ![Version](https://img.shields.io/badge/version-2.0.0-blue.svg)
6
+ ![Platforms](https://img.shields.io/badge/platforms-9-green.svg)
7
+ ![Services](https://img.shields.io/badge/services-59+-orange.svg)
8
+
9
+ n8n nodes for UME social media seeding services (https://ume.com.vn/) - The most comprehensive UME integration available!
10
+
11
+ ## 🎉 Version 2.0 Major Release
12
+
13
+ ### ✨ What's New in v2.0
14
+
15
+ 🚀 **MASSIVE EXPANSION**: 6x increase in service coverage (59+ services vs 9 previously)
16
+ 🌍 **9 PLATFORMS**: Added Telegram, Twitter/X, Threads, Shopee, Google Maps support
17
+ 👑 **VIP SERVICES**: Premium quality options for Instagram, TikTok, Twitter
18
+ 🎥 **LIVE STREAMING**: Complete live streaming support for all platforms
19
+ 🗺️ **BUSINESS SERVICES**: Google Maps Reviews, Shopee Shop enhancement
20
+ ⚔️ **PK BATTLES**: TikTok competition support
21
+ 📱 **REELS/STORIES**: Platform-specific view services
22
+
23
+ ### 🔄 Platform Coverage
24
+
25
+ | Platform | Services | New Features |
26
+ |----------|----------|--------------|
27
+ | 📘 **Facebook** | 17 services | Reels, Stories, 60K Views |
28
+ | 📷 **Instagram** | 6 services | VIP Like/Comment, Stories |
29
+ | 🎵 **TikTok** | 14 services | VIP services, Live, PK Battles |
30
+ | 📺 **YouTube** | 6 services | Live streaming, Comment likes |
31
+ | 🐦 **Twitter/X** | 8 services | VIP services, Live streaming |
32
+ | 💬 **Telegram** | 3 services | Channel members, Reactions |
33
+ | 🧵 **Threads** | 2 services | Complete support |
34
+ | 🛒 **Shopee** | 2 services | Shop follows, Live streaming |
35
+ | 🗺️ **Google** | 1 service | Maps Reviews |
36
+
37
+ ## ⚡ Quick Start
38
+
39
+ 1. **Top up your balance** at https://ume.com.vn/payment
40
+ 2. **Copy your API token** from https://ume.com.vn/child_domain
41
+ 3. **Install and build**: `npm install && npm run build`
42
+ 4. **Add to n8n**: Drop the compiled `dist` folder into your n8n custom nodes directory (`~/.n8n/custom` for n8n desktop)
43
+ 5. **Configure credentials**: Restart n8n, create the **UME API** credential, and paste your token
44
+ 6. **Use the node**: Add the **UME Social Seeding** node to your workflow
45
+
46
+ ## 📋 Complete Service Catalog (59+ Services)
47
+
48
+ ### 📘 Facebook (17 services)
49
+ - **Like Speed** ⚡ - Multiple servers, all reactions, 50-200K likes
50
+ - **Like Fanpage** 👍 - Increase page likes
51
+ - **Follow Profile** 👤 - Increase profile followers
52
+ - **Comment** 💬 - Post comments with custom content
53
+ - **Share** 📤 - Share posts to profiles/groups
54
+ - **Reactions** ❤️ - All reaction types (Love, Care, Wow, etc.)
55
+ - **Buff Group** 👥 - Increase group members
56
+ - **View Video** 👁️ - Video views (regular & 60K packages)
57
+ - **View Live** 📺 - Livestream viewers
58
+ - **View Story** 📖 - Story views
59
+ - **View Reel** 🎬 - Reel views
60
+ - **Review** ⭐ - Post reviews/ratings
61
+
62
+ ### 📷 Instagram (6 services)
63
+ - **Like** ❤️ - Post likes
64
+ - **VIP Like** 👑 - Premium quality likes
65
+ - **Comment** 💬 - Post comments
66
+ - **VIP Comment** 🌟 - Premium quality comments
67
+ - **Follow** 👤 - Profile followers
68
+ - **View** 👁️ - Video/Reel views
69
+
70
+ ### 🎵 TikTok (14 services)
71
+ - **Like** ❤️ - Video likes
72
+ - **VIP Like** 👑 - Premium quality likes
73
+ - **Like Comment** 💬 - Comment likes
74
+ - **Like Live** 📺 - Livestream likes
75
+ - **Comment** 💬 - Video comments
76
+ - **Comment Live** 📺 - Livestream comments
77
+ - **Follow** 👤 - Profile followers
78
+ - **View** 👁️ - Video views
79
+ - **VIP View** 👑 - Premium quality views
80
+ - **Share** 📤 - Video sharing
81
+ - **Share Live** 📺 - Livestream sharing
82
+ - **Favorite** ⭐ - Video favorites
83
+ - **VIP Favorite** 👑 - Premium favorites
84
+ - **Live Stream** 📺 - Live interaction
85
+ - **PK Battle** ⚔️ - Competition voting
86
+
87
+ ### 📺 YouTube (6 services)
88
+ - **Like** ❤️ - Video likes
89
+ - **Like Comment** 💬 - Comment likes
90
+ - **Comment** 💬 - Video comments
91
+ - **Follow** 👤 - Channel subscribers
92
+ - **View** 👁️ - Video views
93
+ - **Live Stream** 📺 - Live interaction
94
+
95
+ ### 🐦 Twitter/X (8 services)
96
+ - **Like** ❤️ - Tweet likes
97
+ - **VIP Like** 👑 - Premium quality likes
98
+ - **Comment** 💬 - Tweet comments
99
+ - **Follow** 👤 - Profile follows
100
+ - **View** 👁️ - Tweet views
101
+ - **VIP View** 👑 - Premium quality views
102
+ - **Retweet** 🔄 - Tweet retweets
103
+ - **Live Stream** 📺 - Live interaction
104
+
105
+ ### 💬 Telegram (3 services)
106
+ - **Member** 👥 - Channel members
107
+ - **View** 👁️ - Channel views
108
+ - **Reaction** ❤️ - Channel reactions
109
+
110
+ ### 🧵 Threads (2 services)
111
+ - **Like** ❤️ - Post likes
112
+ - **Follow** 👤 - Profile follows
113
+
114
+ ### 🛒 Shopee (2 services)
115
+ - **Follow Shop** 👤 - Shop followers
116
+ - **Live Stream** 📺 - Live interaction
117
+
118
+ ### 🗺️ Google (1 service)
119
+ - **Maps Review** ⭐ - Google Maps reviews
120
+
121
+ ## 🎯 Usage
122
+
123
+ 1. Add the **UME Social Seeding** node to your workflow
124
+ 2. Select your platform from 9 available options
125
+ 3. Choose the specific service you want to use
126
+ 4. Fill in the required parameters:
127
+ - **ID/URL**: The post/video/profile ID or URL
128
+ - **Count**: Number of interactions needed
129
+ - **Server**: (Facebook Like Speed only) Choose server with pricing
130
+ - **Comments**: (Comment services only) Content to post
131
+ - **Note**: Optional notes for your order
132
+
133
+ ### 🌟 Premium Features
134
+
135
+ #### VIP Services 👑
136
+ - **Instagram VIP**: Higher quality likes/comments
137
+ - **TikTok VIP**: Premium views/likes/favorites
138
+ - **Twitter VIP**: Enhanced engagement quality
139
+
140
+ #### Live Streaming 📺
141
+ - **Facebook Live**: Increase live viewers
142
+ - **TikTok Live**: Live likes/comments/shares
143
+ - **YouTube Live**: Live interaction
144
+ - **Twitter Live**: Live engagement
145
+
146
+ #### Business Services 🏢
147
+ - **Google Maps Reviews**: Business rating enhancement
148
+ - **Shopee Shop**: E-commerce shop growth
149
+
150
+ ## 🎯 Usage
151
+
152
+ 1. Add the **UME Social Seeding** node to your workflow
153
+ 2. Select your platform from 9 available options
154
+ 3. Choose the specific service you want to use
155
+ 4. Fill in the required parameters:
156
+ - **ID/URL**: The post/video/profile ID or URL
157
+ - **Count**: Number of interactions needed
158
+ - **Server**: (Facebook Like Speed only) Choose server with pricing
159
+ - **Comments**: (Comment services only) Content to post
160
+ - **Note**: Optional notes for your order
161
+
162
+ ## 💡 Important Notes
163
+
164
+ ### Facebook Like Speed Services
165
+ - **Server 6, 1, 15, 16**: Support bundling orders, multiple reactions
166
+ - **Server 3**: Different pricing for reactions, random avatars
167
+ - **Server 5**: No cancellation, careful with video links
168
+ - **All servers**: Likes may decrease over time, no warranty for drops
169
+ - **Restrictions**: No video likes in albums, no Reels reactions
170
+
171
+ ### General Notes
172
+ - Each UID has purchase limits (30-60 times depending on server)
173
+ - Orders may be auto-cancelled for: profile pictures, cover photos, public groups
174
+ - Incorrect links or blocked tagged users may cause order issues
175
+ - Private profiles or disabled like buttons will be auto-refunded
176
+
177
+ ## 🛠 Development
178
+
179
+ - `npm run build` - Compile TypeScript and copy metadata into `dist/`
180
+ - `npm run clean` - Remove the `dist/` folder
181
+ - `npm run generate:operations` - Rebuild operations from Postman collection
182
+
183
+ The node reads from `nodes/UmeSocialSeeding/operations-data.json`; update this file if you need to adjust server messaging or add new endpoints.
184
+
185
+ ## 🐛 Troubleshooting
186
+
187
+ 1. **API Token Error**: Ensure token is correct and account has sufficient funds
188
+ 2. **Invalid URL**: Check that the URL/ID is correct and public
189
+ 3. **Order Failed**: Verify the content follows UME's terms of service
190
+ 4. **Server Not Available**: Try a different server or contact UME support
191
+
192
+ ## 📞 Support
193
+
194
+ - **UME Website**: https://ume.com.vn/
195
+ - **Payment**: https://ume.com.vn/payment
196
+ - **API Tokens**: https://ume.com.vn/child_domain
197
+
198
+ ## 📄 License
199
+
200
+ MIT License - see LICENSE file for details
201
+
202
+ ---
203
+
204
+ **Disclaimer**: This is an unofficial n8n integration. Use responsibly and follow UME's terms of service.
@@ -0,0 +1,7 @@
1
+ import type { ICredentialType, INodeProperties } from "n8n-workflow";
2
+ export declare class UmeApi implements ICredentialType {
3
+ name: string;
4
+ displayName: string;
5
+ documentationUrl: string;
6
+ properties: INodeProperties[];
7
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UmeApi = void 0;
4
+ class UmeApi {
5
+ constructor() {
6
+ this.name = "umeApi";
7
+ this.displayName = "UME API";
8
+ this.documentationUrl = "https://documenter.getpostman.com/view/7443180/2sA3XWdeSc";
9
+ this.properties = [
10
+ {
11
+ displayName: "Hướng dẫn nạp tiền và lấy API Token",
12
+ name: "notes",
13
+ type: "string",
14
+ default: "1. Nạp tiền vào tài khoản: https://ume.com.vn/payment\n2. Lấy API Token tại: https://ume.com.vn/child_domain\n\nĐể sử dụng dịch vụ, bạn cần:\n- Nạp đủ tiền vào tài khoản UME\n- Lấy API token và dán vào trường bên dưới",
15
+ typeOptions: {
16
+ rows: 6,
17
+ },
18
+ description: "Hướng dẫn thiết lập tài khoản UME",
19
+ },
20
+ {
21
+ displayName: "API Token",
22
+ name: "token",
23
+ type: "string",
24
+ required: true,
25
+ default: "",
26
+ typeOptions: {
27
+ password: true,
28
+ },
29
+ description: "Token API từ trang UME (https://ume.com.vn/child_domain)",
30
+ },
31
+ {
32
+ displayName: "Base URL",
33
+ name: "baseUrl",
34
+ type: "string",
35
+ default: "https://ume.com.vn/api",
36
+ description: "URL API mặc định, không cần thay đổi trừ khi được yêu cầu.",
37
+ },
38
+ ];
39
+ }
40
+ }
41
+ exports.UmeApi = UmeApi;
@@ -0,0 +1,4 @@
1
+ import { UmeSocialSeeding } from "./nodes/UmeSocialSeeding/UmeSocialSeeding.node";
2
+ import { UmeApi } from "./credentials/UmeApi.credentials";
3
+ export declare const nodes: (typeof UmeSocialSeeding)[];
4
+ export declare const credentials: (typeof UmeApi)[];
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.credentials = exports.nodes = void 0;
4
+ const UmeSocialSeeding_node_1 = require("./nodes/UmeSocialSeeding/UmeSocialSeeding.node");
5
+ const UmeApi_credentials_1 = require("./credentials/UmeApi.credentials");
6
+ exports.nodes = [
7
+ UmeSocialSeeding_node_1.UmeSocialSeeding,
8
+ ];
9
+ exports.credentials = [UmeApi_credentials_1.UmeApi];
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from "n8n-workflow";
2
+ export declare class FacebookComment implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FacebookComment = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const BASE_URL_FALLBACK = "https://ume.com.vn/api";
6
+ class FacebookComment {
7
+ constructor() {
8
+ this.description = {
9
+ displayName: "🌱 Facebook Bình Luận",
10
+ name: "facebookComment",
11
+ group: ["transform"],
12
+ version: 1,
13
+ subtitle: '={{$parameter["server"]}}',
14
+ description: "Tạo bình luận cho bài viết Facebook",
15
+ defaults: {
16
+ name: "🌱 Facebook Bình Luận",
17
+ },
18
+ inputs: ["main"],
19
+ outputs: ["main"],
20
+ credentials: [
21
+ {
22
+ name: "umeApi",
23
+ required: true,
24
+ },
25
+ ],
26
+ properties: [
27
+ {
28
+ displayName: "Server",
29
+ name: "server",
30
+ type: "options",
31
+ noDataExpression: true,
32
+ options: [
33
+ {
34
+ name: "Server 5 - Việt Nam. Tốc độ nhanh (2,229.5₫/cmt)",
35
+ value: "5",
36
+ description: "Không hỗ trợ livestream. Tối đa 100 cmt/lần. Tối thiểu: 10, Tối đa: 100",
37
+ },
38
+ {
39
+ name: "Server 6 - Việt Nam. Tốc độ ổn (1,592.5₫/cmt)",
40
+ value: "6",
41
+ description: "Không hỗ trợ livestream. Tối thiểu: 10, Tối đa: 20",
42
+ },
43
+ {
44
+ name: "Server 7 - Việt Nam. Tốc độ nhanh (2,229.5₫/cmt)",
45
+ value: "7",
46
+ description: "Có hỗ trợ livestream. Tối đa 100 cmt/lần. Tối thiểu: 5, Tối đa: 1,000",
47
+ },
48
+ ],
49
+ default: "5",
50
+ description: "Chọn server để tạo bình luận",
51
+ },
52
+ {
53
+ displayName: "Link bài viết",
54
+ name: "link",
55
+ type: "string",
56
+ required: true,
57
+ default: "",
58
+ description: "Link bài viết Facebook cần bình luận",
59
+ },
60
+ {
61
+ displayName: "Số lượng bình luận",
62
+ name: "amount",
63
+ type: "number",
64
+ required: true,
65
+ default: 20,
66
+ description: "Số lượng bình luận cần tạo",
67
+ typeOptions: {
68
+ minValue: 5,
69
+ maxValue: 1000,
70
+ },
71
+ validateType: 'number',
72
+ },
73
+ {
74
+ displayName: "Nội dung bình luận",
75
+ name: "comment",
76
+ type: "string",
77
+ required: true,
78
+ default: "",
79
+ typeOptions: {
80
+ rows: 3,
81
+ },
82
+ description: "Nội dung bình luận (nghiêm cấm nội dung xấu, vi phạm pháp luật)",
83
+ },
84
+ ],
85
+ };
86
+ }
87
+ async execute() {
88
+ var _a;
89
+ const returnData = [];
90
+ const items = this.getInputData();
91
+ const credentials = (await this.getCredentials("umeApi"));
92
+ if (!credentials || !credentials.token) {
93
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), "API token is missing in the UME credentials.");
94
+ }
95
+ const baseUrl = ((_a = credentials.baseUrl) !== null && _a !== void 0 ? _a : BASE_URL_FALLBACK).replace(/\/+$/, "");
96
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex += 1) {
97
+ const server = this.getNodeParameter("server", itemIndex);
98
+ const link = this.getNodeParameter("link", itemIndex);
99
+ const amount = this.getNodeParameter("amount", itemIndex);
100
+ const comment = this.getNodeParameter("comment", itemIndex);
101
+ // Validate min/max based on server
102
+ let minAmount = 10;
103
+ let maxAmount = 100;
104
+ if (server === "6") {
105
+ maxAmount = 20;
106
+ }
107
+ else if (server === "7") {
108
+ minAmount = 5;
109
+ maxAmount = 1000;
110
+ }
111
+ if (amount < minAmount || amount > maxAmount) {
112
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Số lượng phải từ ${minAmount} đến ${maxAmount} cho server ${server}`, { itemIndex });
113
+ }
114
+ const formBody = {
115
+ token: credentials.token,
116
+ link: link,
117
+ amount: amount.toString(),
118
+ comment: comment,
119
+ };
120
+ const requestOptions = {
121
+ method: "POST",
122
+ uri: `${baseUrl}/facebook/${server}/comment`,
123
+ form: formBody,
124
+ json: true,
125
+ };
126
+ let responseData;
127
+ try {
128
+ responseData = await this.helpers.request(requestOptions);
129
+ }
130
+ catch (error) {
131
+ if (error instanceof n8n_workflow_1.NodeOperationError) {
132
+ throw error;
133
+ }
134
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, { itemIndex });
135
+ }
136
+ const responseObject = typeof responseData === "object" && responseData !== null
137
+ ? responseData
138
+ : { data: responseData };
139
+ returnData.push({
140
+ json: {
141
+ ...responseObject,
142
+ server,
143
+ link,
144
+ amount,
145
+ comment,
146
+ },
147
+ pairedItem: {
148
+ item: itemIndex,
149
+ },
150
+ });
151
+ }
152
+ return [returnData];
153
+ }
154
+ }
155
+ exports.FacebookComment = FacebookComment;
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from "n8n-workflow";
2
+ export declare class FacebookCommentLike implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FacebookCommentLike = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const BASE_URL_FALLBACK = "https://ume.com.vn/api";
6
+ class FacebookCommentLike {
7
+ constructor() {
8
+ this.description = {
9
+ displayName: "🌱 Facebook Like Bình Luận",
10
+ name: "facebookCommentLike",
11
+ group: ["transform"],
12
+ version: 1,
13
+ subtitle: '={{$parameter["server"]}}',
14
+ description: "Tăng like cho bình luận Facebook",
15
+ defaults: {
16
+ name: "🌱 Facebook Like Bình Luận",
17
+ },
18
+ inputs: ["main"],
19
+ outputs: ["main"],
20
+ credentials: [
21
+ {
22
+ name: "umeApi",
23
+ required: true,
24
+ },
25
+ ],
26
+ properties: [
27
+ {
28
+ displayName: "Server",
29
+ name: "server",
30
+ type: "options",
31
+ noDataExpression: true,
32
+ options: [
33
+ {
34
+ name: "Server 4 - Like việt (103.6₫/like)",
35
+ value: "4",
36
+ description: "Không được dồn đơn. Tối thiểu: 50, Tối đa: 10,000",
37
+ },
38
+ ],
39
+ default: "4",
40
+ description: "Chọn server để tăng like bình luận",
41
+ },
42
+ {
43
+ displayName: "Link bình luận",
44
+ name: "link",
45
+ type: "string",
46
+ required: true,
47
+ default: "",
48
+ description: "Link bình luận Facebook cần tăng like (chỉ sử dụng máy tính để lấy link)",
49
+ },
50
+ {
51
+ displayName: "Số lượng",
52
+ name: "amount",
53
+ type: "number",
54
+ required: true,
55
+ default: 100,
56
+ description: "Số lượng like cần tăng",
57
+ typeOptions: {
58
+ minValue: 50,
59
+ maxValue: 10000,
60
+ },
61
+ validateType: 'number',
62
+ },
63
+ ],
64
+ };
65
+ }
66
+ async execute() {
67
+ var _a;
68
+ const returnData = [];
69
+ const items = this.getInputData();
70
+ const credentials = (await this.getCredentials("umeApi"));
71
+ if (!credentials || !credentials.token) {
72
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), "API token is missing in the UME credentials.");
73
+ }
74
+ const baseUrl = ((_a = credentials.baseUrl) !== null && _a !== void 0 ? _a : BASE_URL_FALLBACK).replace(/\/+$/, "");
75
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex += 1) {
76
+ const server = this.getNodeParameter("server", itemIndex);
77
+ const link = this.getNodeParameter("link", itemIndex);
78
+ const amount = this.getNodeParameter("amount", itemIndex);
79
+ // Validate min/max
80
+ if (amount < 50 || amount > 10000) {
81
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), "Số lượng phải từ 50 đến 10,000", { itemIndex });
82
+ }
83
+ const formBody = {
84
+ token: credentials.token,
85
+ link: link,
86
+ amount: amount.toString(),
87
+ };
88
+ const requestOptions = {
89
+ method: "POST",
90
+ uri: `${baseUrl}/facebook/${server}/like_comment`,
91
+ form: formBody,
92
+ json: true,
93
+ };
94
+ let responseData;
95
+ try {
96
+ responseData = await this.helpers.request(requestOptions);
97
+ }
98
+ catch (error) {
99
+ if (error instanceof n8n_workflow_1.NodeOperationError) {
100
+ throw error;
101
+ }
102
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, { itemIndex });
103
+ }
104
+ const responseObject = typeof responseData === "object" && responseData !== null
105
+ ? responseData
106
+ : { data: responseData };
107
+ returnData.push({
108
+ json: {
109
+ ...responseObject,
110
+ server,
111
+ link,
112
+ amount,
113
+ },
114
+ pairedItem: {
115
+ item: itemIndex,
116
+ },
117
+ });
118
+ }
119
+ return [returnData];
120
+ }
121
+ }
122
+ exports.FacebookCommentLike = FacebookCommentLike;
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from "n8n-workflow";
2
+ export declare class FacebookLike implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }