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.
- package/LICENSE +21 -0
- package/README.md +204 -0
- package/dist/credentials/UmeApi.credentials.d.ts +7 -0
- package/dist/credentials/UmeApi.credentials.js +41 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +9 -0
- package/dist/nodes/FacebookComment/FacebookComment.node.d.ts +5 -0
- package/dist/nodes/FacebookComment/FacebookComment.node.js +155 -0
- package/dist/nodes/FacebookCommentLike/FacebookCommentLike.node.d.ts +5 -0
- package/dist/nodes/FacebookCommentLike/FacebookCommentLike.node.js +122 -0
- package/dist/nodes/FacebookLike/FacebookLike.node.d.ts +5 -0
- package/dist/nodes/FacebookLike/FacebookLike.node.js +160 -0
- package/dist/nodes/FacebookShare/FacebookShare.node.d.ts +5 -0
- package/dist/nodes/FacebookShare/FacebookShare.node.js +141 -0
- package/dist/nodes/FacebookStoryView/FacebookStoryView.node.d.ts +5 -0
- package/dist/nodes/FacebookStoryView/FacebookStoryView.node.js +122 -0
- package/dist/nodes/FacebookView/FacebookView.node.d.ts +5 -0
- package/dist/nodes/FacebookView/FacebookView.node.js +127 -0
- package/dist/nodes/InstagramComment/InstagramComment.node.d.ts +5 -0
- package/dist/nodes/InstagramComment/InstagramComment.node.js +145 -0
- package/dist/nodes/InstagramLike/InstagramLike.node.d.ts +5 -0
- package/dist/nodes/InstagramLike/InstagramLike.node.js +138 -0
- package/dist/nodes/InstagramView/InstagramView.node.d.ts +5 -0
- package/dist/nodes/InstagramView/InstagramView.node.js +151 -0
- package/dist/nodes/TikTokComment/TikTokComment.node.d.ts +5 -0
- package/dist/nodes/TikTokComment/TikTokComment.node.js +136 -0
- package/dist/nodes/TikTokCommentLike/TikTokCommentLike.node.d.ts +5 -0
- package/dist/nodes/TikTokCommentLike/TikTokCommentLike.node.js +122 -0
- package/dist/nodes/TikTokFavorite/TikTokFavorite.node.d.ts +5 -0
- package/dist/nodes/TikTokFavorite/TikTokFavorite.node.js +127 -0
- package/dist/nodes/TikTokLike/TikTokLike.node.d.ts +5 -0
- package/dist/nodes/TikTokLike/TikTokLike.node.js +141 -0
- package/dist/nodes/TikTokShare/TikTokShare.node.d.ts +5 -0
- package/dist/nodes/TikTokShare/TikTokShare.node.js +131 -0
- package/dist/nodes/TikTokView/TikTokView.node.d.ts +5 -0
- package/dist/nodes/TikTokView/TikTokView.node.js +136 -0
- package/dist/nodes/Ume/Ume.node.d.ts +5 -0
- package/dist/nodes/Ume/Ume.node.js +244 -0
- package/dist/nodes/Ume/operations-data.json +2246 -0
- package/dist/nodes/UmeSocialSeeding/UmeSocialSeeding.node.d.ts +5 -0
- package/dist/nodes/UmeSocialSeeding/UmeSocialSeeding.node.js +203 -0
- package/dist/nodes/UmeSocialSeeding/UmeSocialSeedingHelpers.d.ts +4 -0
- package/dist/nodes/UmeSocialSeeding/UmeSocialSeedingHelpers.js +382 -0
- package/dist/nodes/UmeSocialSeeding/operations-data.json +673 -0
- package/dist/nodes/UmeSocialSeeding/reaction.png +0 -0
- package/dist/nodes/UmeSocialSeeding/server-info.json +431 -0
- package/dist/nodes/UmeSocialSeeding/services-data-backup.json +3525 -0
- package/dist/nodes/UmeSocialSeeding/services-data-old.json +2704 -0
- package/dist/nodes/UmeSocialSeeding/services-data.json +7341 -0
- package/dist/nodes/UmeSocialSeeding/services-data.json.backup +3525 -0
- package/dist/nodes/UmeSocialSeeding/services-data.json.backup.1759909364606 +1927 -0
- package/dist/nodes/YouTubeComment/YouTubeComment.node.d.ts +5 -0
- package/dist/nodes/YouTubeComment/YouTubeComment.node.js +152 -0
- package/dist/nodes/YouTubeLike/YouTubeLike.node.d.ts +5 -0
- package/dist/nodes/YouTubeLike/YouTubeLike.node.js +141 -0
- package/dist/nodes/YouTubeView/YouTubeView.node.d.ts +5 -0
- package/dist/nodes/YouTubeView/YouTubeView.node.js +142 -0
- 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
|
+

|
6
|
+

|
7
|
+

|
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,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;
|
package/dist/index.d.ts
ADDED
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
|
+
}
|