n8n-nodes-ume-v4 4.5.13 → 4.5.15
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.
@@ -138,71 +138,109 @@ class UmeSocialSeeding {
|
|
138
138
|
}
|
139
139
|
|
140
140
|
// Add service-specific parameters
|
141
|
-
|
141
|
+
// First, get all dynamic parameters that might be count_server_1, count_server_2, etc.
|
142
|
+
const allParameterNames = [];
|
143
|
+
serviceData.parameters.forEach(param => {
|
144
|
+
allParameterNames.push(param.name);
|
145
|
+
});
|
146
|
+
|
147
|
+
// Add server-specific count parameters if this service has servers
|
148
|
+
if (serviceData.servers && serviceData.parameters.find(p => p.name === 'count')) {
|
149
|
+
const serverParam = serviceData.parameters.find(p => p.name === 'server');
|
150
|
+
if (serverParam && serverParam.options) {
|
151
|
+
serverParam.options.forEach(serverOption => {
|
152
|
+
allParameterNames.push(`count_${serverOption.value}`);
|
153
|
+
});
|
154
|
+
}
|
155
|
+
}
|
156
|
+
|
157
|
+
// Now process all parameters (both static and dynamic)
|
158
|
+
for (const parameterName of allParameterNames) {
|
159
|
+
// Find the original parameter definition
|
160
|
+
let parameter = serviceData.parameters.find(p => p.name === parameterName);
|
161
|
+
|
162
|
+
// Check if this is a server-specific count parameter
|
163
|
+
if (parameterName.startsWith('count_') && !parameter) {
|
164
|
+
parameter = {
|
165
|
+
name: parameterName,
|
166
|
+
type: 'number',
|
167
|
+
displayName: `Số lượng (${parameterName})`
|
168
|
+
};
|
169
|
+
}
|
170
|
+
|
171
|
+
if (!parameter) continue;
|
172
|
+
|
142
173
|
if (parameter.type === 'string') {
|
143
|
-
const value = this.getNodeParameter(
|
144
|
-
if (
|
174
|
+
const value = this.getNodeParameter(parameterName, itemIndex, "");
|
175
|
+
if (parameterName === 'uid') {
|
145
176
|
// Extract ID from URL for UID services
|
146
177
|
const extractedValue = (0, UmeSocialSeedingHelpers_1.extractIdFromUrl)(value.trim() || '', serviceName);
|
147
|
-
formBody[
|
178
|
+
formBody[parameterName] = extractedValue;
|
148
179
|
}
|
149
|
-
else if (
|
180
|
+
else if (parameterName === 'url') {
|
150
181
|
// For URL services, send the URL as-is without extraction
|
151
|
-
formBody[
|
182
|
+
formBody[parameterName] = value.trim();
|
152
183
|
}
|
153
|
-
else if (
|
184
|
+
else if (parameterName === 'link') {
|
154
185
|
// For Instagram, TikTok, YouTube - send the URL as-is without extraction
|
155
|
-
formBody[
|
186
|
+
formBody[parameterName] = value.trim();
|
156
187
|
}
|
157
|
-
else if (
|
188
|
+
else if (parameterName === 'note') {
|
158
189
|
// Set default note if empty
|
159
|
-
formBody[
|
190
|
+
formBody[parameterName] = value.trim() || "Auto-generated by n8n UME Social Seeding";
|
160
191
|
}
|
161
|
-
else if (
|
192
|
+
else if (parameterName === 'comments') {
|
162
193
|
// Process comment list - convert multiline to API format
|
163
194
|
const processedComments = (0, UmeSocialSeedingHelpers_1.processCommentList)(value.trim() || '');
|
164
195
|
if (processedComments) {
|
165
|
-
formBody[
|
196
|
+
formBody[parameterName] = processedComments;
|
166
197
|
}
|
167
198
|
}
|
168
|
-
else if (
|
199
|
+
else if (parameterName === 'list_comment') {
|
169
200
|
// Process comment list - convert multiline to API format
|
170
201
|
const processedComments = (0, UmeSocialSeedingHelpers_1.processCommentList)(value.trim() || '');
|
171
202
|
if (processedComments) {
|
172
|
-
formBody[
|
203
|
+
formBody[parameterName] = processedComments;
|
173
204
|
}
|
174
205
|
}
|
175
206
|
else if (value && value.trim() !== "") {
|
176
|
-
formBody[
|
207
|
+
formBody[parameterName] = value.trim();
|
177
208
|
}
|
178
209
|
}
|
179
210
|
else if (parameter.type === 'textarea') {
|
180
|
-
const value = this.getNodeParameter(
|
181
|
-
if (
|
211
|
+
const value = this.getNodeParameter(parameterName, itemIndex, "");
|
212
|
+
if (parameterName === 'list_comment') {
|
182
213
|
// Process comment list - convert multiline to API format
|
183
214
|
const processedComments = (0, UmeSocialSeedingHelpers_1.processCommentList)(value.trim());
|
184
215
|
if (processedComments) {
|
185
|
-
formBody[
|
216
|
+
formBody[parameterName] = processedComments;
|
186
217
|
}
|
187
218
|
}
|
188
|
-
else if (
|
219
|
+
else if (parameterName === 'uid') {
|
189
220
|
// Extract ID from URL for UID services
|
190
221
|
const extractedValue = (0, UmeSocialSeedingHelpers_1.extractIdFromUrl)(value.trim() || '', serviceName);
|
191
|
-
formBody[
|
222
|
+
formBody[parameterName] = extractedValue;
|
192
223
|
}
|
193
|
-
else if (
|
224
|
+
else if (parameterName === 'url') {
|
194
225
|
// For URL services, send the URL as-is without extraction
|
195
|
-
formBody[
|
226
|
+
formBody[parameterName] = value.trim();
|
196
227
|
}
|
197
228
|
else if (value && value.trim() !== "") {
|
198
|
-
formBody[
|
229
|
+
formBody[parameterName] = value.trim();
|
199
230
|
}
|
200
231
|
}
|
201
232
|
else if (parameter.type === 'number') {
|
202
|
-
let value = this.getNodeParameter(
|
233
|
+
let value = this.getNodeParameter(parameterName, itemIndex);
|
203
234
|
|
204
|
-
// Handle count
|
205
|
-
if (
|
235
|
+
// Handle server-specific count parameters (count_server_1, count_server_2, etc.)
|
236
|
+
if (parameterName.startsWith('count_') && selectedServerInfo) {
|
237
|
+
// This is a server-specific count parameter, get the actual value
|
238
|
+
if (value !== undefined && value !== null && !isNaN(Number(value))) {
|
239
|
+
formBody['count'] = Number(value).toString();
|
240
|
+
}
|
241
|
+
}
|
242
|
+
// Handle regular count parameter (fallback for services without server-specific counts)
|
243
|
+
else if (parameterName === 'count' && selectedServerInfo) {
|
206
244
|
// If no value provided or value is less than server MIN, use server MIN
|
207
245
|
if (value === undefined || value === null || isNaN(Number(value)) || Number(value) < selectedServerInfo.minQuantity) {
|
208
246
|
const originalValue = value;
|
@@ -227,16 +265,21 @@ class UmeSocialSeeding {
|
|
227
265
|
server: selectedServer
|
228
266
|
};
|
229
267
|
}
|
230
|
-
}
|
231
268
|
|
232
|
-
|
233
|
-
|
269
|
+
if (value !== undefined && value !== null && !isNaN(Number(value))) {
|
270
|
+
formBody['count'] = Number(value).toString();
|
271
|
+
}
|
272
|
+
} else {
|
273
|
+
// Regular number parameter (not count)
|
274
|
+
if (value !== undefined && value !== null && !isNaN(Number(value))) {
|
275
|
+
formBody[parameterName] = Number(value).toString();
|
276
|
+
}
|
234
277
|
}
|
235
278
|
}
|
236
279
|
else if (parameter.type === 'options') {
|
237
|
-
const value = this.getNodeParameter(
|
280
|
+
const value = this.getNodeParameter(parameterName, itemIndex, "");
|
238
281
|
if (value && value.trim() !== "") {
|
239
|
-
formBody[
|
282
|
+
formBody[parameterName] = value.trim();
|
240
283
|
}
|
241
284
|
}
|
242
285
|
}
|
@@ -115,37 +115,37 @@ function getDynamicProperties() {
|
|
115
115
|
},
|
116
116
|
};
|
117
117
|
|
118
|
-
// Add
|
118
|
+
// Add server-specific count parameters (one for each server)
|
119
119
|
if (parameter.name === 'count' && serverParam && serverParam.options) {
|
120
|
-
//
|
121
|
-
|
122
|
-
|
123
|
-
// Add logic to update default when server changes
|
124
|
-
paramProperty.displayOptions.show = {
|
125
|
-
...paramProperty.displayOptions.show,
|
126
|
-
server: serverParam.options.map(opt => opt.value)
|
127
|
-
};
|
128
|
-
|
129
|
-
// Add special property to handle server-specific defaults
|
130
|
-
paramProperty.typeOptions = parameter.typeOptions || {};
|
131
|
-
|
132
|
-
// Set default to the MIN value of the first server
|
133
|
-
if (serverParam.options.length > 0) {
|
134
|
-
const firstServer = serverParam.options[0];
|
120
|
+
// Instead of one count parameter, create server-specific ones
|
121
|
+
serverParam.options.forEach((serverOption) => {
|
135
122
|
const serverInfo = serviceData.servers?.find(s =>
|
136
|
-
s.id ===
|
123
|
+
s.id === serverOption.value || s.server_id === serverOption.value
|
137
124
|
);
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
125
|
+
|
126
|
+
const serverSpecificCount = {
|
127
|
+
...parameter,
|
128
|
+
name: `count_${serverOption.value}`,
|
129
|
+
displayName: `Số lượng (${serverOption.name})`,
|
130
|
+
default: serverInfo?.minQuantity || parameter.default || 50,
|
131
|
+
typeOptions: {
|
132
|
+
minValue: serverInfo?.minQuantity || parameter.typeOptions?.minValue || 1,
|
133
|
+
maxValue: serverInfo?.maxQuantity || parameter.typeOptions?.maxValue || 999999999
|
134
|
+
},
|
135
|
+
displayOptions: {
|
136
|
+
show: {
|
137
|
+
platform: [platformKey],
|
138
|
+
service: [serviceName],
|
139
|
+
server: [serverOption.value]
|
140
|
+
},
|
141
|
+
},
|
142
|
+
description: `Số lượng cần tăng (${serverOption.name}: ${serverInfo?.minQuantity || 'N/A'} - ${serverInfo?.maxQuantity || 'N/A'})`,
|
143
|
+
};
|
144
|
+
serviceParameters.push(serverSpecificCount);
|
145
|
+
});
|
146
|
+
|
147
|
+
// Skip adding the original count parameter
|
148
|
+
continue;
|
149
149
|
}
|
150
150
|
|
151
151
|
serviceParameters.push(paramProperty);
|
@@ -2311,18 +2311,7 @@
|
|
2311
2311
|
"required": false,
|
2312
2312
|
"default": "server_4",
|
2313
2313
|
"description": "Chọn server phù hợp với yêu cầu của bạn",
|
2314
|
-
"options": [
|
2315
|
-
{
|
2316
|
-
"name": "Server 4 - 2,730₫ (10-20) - Hoạt động",
|
2317
|
-
"value": "server_4",
|
2318
|
-
"description": "Features:\n• Nội dung có thể bị tiktok ẩn và có thể trùng lặp nội dung\n• Tắt lọc và kiểm duyệt nội dung."
|
2319
|
-
},
|
2320
|
-
{
|
2321
|
-
"name": "Server 6 - 1,365₫ (10-2000) - Bảo trì",
|
2322
|
-
"value": "server_6",
|
2323
|
-
"description": "Không có features đặc biệt"
|
2324
|
-
}
|
2325
|
-
],
|
2314
|
+
"options": [],
|
2326
2315
|
"typeOptions": {
|
2327
2316
|
"options": [
|
2328
2317
|
{
|
@@ -2387,35 +2376,9 @@
|
|
2387
2376
|
"Bắt buộc bật cmt công khai và tắt lọc bình luận như ảnh, vui lòng check kĩ và gửi cho khách hàng.",
|
2388
2377
|
"Không hỗ trợ nội dung xấu, xúc phạm, vi phạm pháp luật, nội dung sẽ bị ẩn và không hoàn tiền đơn hàng."
|
2389
2378
|
],
|
2390
|
-
"servers": [
|
2391
|
-
|
2392
|
-
|
2393
|
-
"name": "Server 4",
|
2394
|
-
"price": 2730,
|
2395
|
-
"minQuantity": 10,
|
2396
|
-
"maxQuantity": 20,
|
2397
|
-
"status": "Hoạt động",
|
2398
|
-
"isActive": true,
|
2399
|
-
"note": "",
|
2400
|
-
"features": [
|
2401
|
-
"- Nội dung có thể bị tiktok ẩn và có thể trùng lặp nội dung",
|
2402
|
-
"- Tắt lọc và kiểm duyệt nội dung."
|
2403
|
-
]
|
2404
|
-
},
|
2405
|
-
{
|
2406
|
-
"id": "server_6",
|
2407
|
-
"name": "Server 6",
|
2408
|
-
"price": 1365,
|
2409
|
-
"minQuantity": 10,
|
2410
|
-
"maxQuantity": 2000,
|
2411
|
-
"status": "Bảo trì",
|
2412
|
-
"isActive": false,
|
2413
|
-
"note": "",
|
2414
|
-
"features": []
|
2415
|
-
}
|
2416
|
-
],
|
2417
|
-
"totalServers": 2,
|
2418
|
-
"activeServers": 1,
|
2379
|
+
"servers": [],
|
2380
|
+
"totalServers": 0,
|
2381
|
+
"activeServers": 0,
|
2419
2382
|
"hasServerOptions": true,
|
2420
2383
|
"priceRange": {
|
2421
2384
|
"min": 1365,
|
@@ -2463,11 +2426,11 @@
|
|
2463
2426
|
"displayName": "Số lượng",
|
2464
2427
|
"type": "number",
|
2465
2428
|
"required": true,
|
2466
|
-
"default":
|
2429
|
+
"default": 100,
|
2467
2430
|
"description": "Số lượng cần tăng",
|
2468
2431
|
"typeOptions": {
|
2469
|
-
"minValue":
|
2470
|
-
"maxValue":
|
2432
|
+
"minValue": 100,
|
2433
|
+
"maxValue": 1000000
|
2471
2434
|
}
|
2472
2435
|
},
|
2473
2436
|
{
|
@@ -2478,38 +2441,38 @@
|
|
2478
2441
|
"default": "server_1",
|
2479
2442
|
"description": "Chọn server phù hợp với yêu cầu của bạn",
|
2480
2443
|
"options": [
|
2481
|
-
|
2482
|
-
|
2483
|
-
|
2484
|
-
|
2485
|
-
|
2486
|
-
|
2487
|
-
|
2488
|
-
|
2489
|
-
|
2490
|
-
|
2491
|
-
|
2492
|
-
|
2493
|
-
|
2494
|
-
|
2495
|
-
|
2496
|
-
|
2444
|
+
{
|
2445
|
+
"name": "Server 1 - 30.8₫ (100-1tr) - Hoạt động",
|
2446
|
+
"value": "server_1",
|
2447
|
+
"description": "Features:\n• - Tốc độ có thể rất nhanh"
|
2448
|
+
},
|
2449
|
+
{
|
2450
|
+
"name": "Server 2 - 36.4₫ (100-1tr) - Hoạt động",
|
2451
|
+
"value": "server_2",
|
2452
|
+
"description": "Features:\n• "
|
2453
|
+
},
|
2454
|
+
{
|
2455
|
+
"name": "Server 3 - 54.6₫ (50-2k) - Bảo trì",
|
2456
|
+
"value": "server_3",
|
2457
|
+
"description": "Features:\n• - Không hỗ trợ hủy hoàn"
|
2458
|
+
}
|
2459
|
+
],
|
2497
2460
|
"typeOptions": {
|
2498
2461
|
"options": [
|
2499
2462
|
{
|
2500
2463
|
"name": "Server 1",
|
2501
2464
|
"value": "server_1",
|
2502
|
-
"description": "Giá: 30₫ - Min:
|
2465
|
+
"description": "Giá: 30.8₫ - Min: 100 - Max: 1,000,000 - Hoạt động"
|
2503
2466
|
},
|
2504
2467
|
{
|
2505
2468
|
"name": "Server 2",
|
2506
2469
|
"value": "server_2",
|
2507
|
-
"description": "Giá: 36₫ - Min:
|
2470
|
+
"description": "Giá: 36.4₫ - Min: 100 - Max: 1,000,000 - Hoạt động"
|
2508
2471
|
},
|
2509
2472
|
{
|
2510
2473
|
"name": "Server 3",
|
2511
2474
|
"value": "server_3",
|
2512
|
-
"description": "Giá: 54₫ - Min: 50 - Max:
|
2475
|
+
"description": "Giá: 54.6₫ - Min: 50 - Max: 2,000 - Bảo trì"
|
2513
2476
|
}
|
2514
2477
|
]
|
2515
2478
|
}
|
@@ -2528,22 +2491,20 @@
|
|
2528
2491
|
{
|
2529
2492
|
"id": "server_1",
|
2530
2493
|
"name": "Server 1",
|
2531
|
-
"price": 30,
|
2532
|
-
"minQuantity":
|
2533
|
-
"maxQuantity":
|
2494
|
+
"price": 30.8,
|
2495
|
+
"minQuantity": 100,
|
2496
|
+
"maxQuantity": 1000000,
|
2534
2497
|
"status": "Hoạt động",
|
2535
2498
|
"isActive": true,
|
2536
|
-
"note": "",
|
2537
|
-
"features": [
|
2538
|
-
"- Tốc độ có thể rất nhanh."
|
2539
|
-
]
|
2499
|
+
"note": "- Tốc độ có thể rất nhanh",
|
2500
|
+
"features": []
|
2540
2501
|
},
|
2541
2502
|
{
|
2542
2503
|
"id": "server_2",
|
2543
2504
|
"name": "Server 2",
|
2544
|
-
"price": 36,
|
2545
|
-
"minQuantity":
|
2546
|
-
"maxQuantity":
|
2505
|
+
"price": 36.4,
|
2506
|
+
"minQuantity": 100,
|
2507
|
+
"maxQuantity": 1000000,
|
2547
2508
|
"status": "Hoạt động",
|
2548
2509
|
"isActive": true,
|
2549
2510
|
"note": "",
|
@@ -2552,15 +2513,13 @@
|
|
2552
2513
|
{
|
2553
2514
|
"id": "server_3",
|
2554
2515
|
"name": "Server 3",
|
2555
|
-
"price": 54,
|
2516
|
+
"price": 54.6,
|
2556
2517
|
"minQuantity": 50,
|
2557
2518
|
"maxQuantity": 2000,
|
2558
2519
|
"status": "Bảo trì",
|
2559
2520
|
"isActive": false,
|
2560
|
-
"note": "",
|
2561
|
-
"features": [
|
2562
|
-
"- Không hỗ trợ hủy hoàn"
|
2563
|
-
]
|
2521
|
+
"note": "- Không hỗ trợ hủy hoàn",
|
2522
|
+
"features": []
|
2564
2523
|
}
|
2565
2524
|
],
|
2566
2525
|
"totalServers": 3,
|
@@ -2571,7 +2530,7 @@
|
|
2571
2530
|
"max": 54.6
|
2572
2531
|
},
|
2573
2532
|
"defaultValues": {
|
2574
|
-
"count":
|
2533
|
+
"count": 100,
|
2575
2534
|
"server": "server_1",
|
2576
2535
|
"speed": "0",
|
2577
2536
|
"link": "",
|
@@ -2581,15 +2540,13 @@
|
|
2581
2540
|
"server_id": "server_1",
|
2582
2541
|
"server_number": "1",
|
2583
2542
|
"name": "Server 1",
|
2584
|
-
"price_vnd": 30,
|
2585
|
-
"min_quantity":
|
2586
|
-
"max_quantity":
|
2543
|
+
"price_vnd": 30.8,
|
2544
|
+
"min_quantity": 100,
|
2545
|
+
"max_quantity": 1000000,
|
2587
2546
|
"status": "Hoạt động",
|
2588
2547
|
"is_active": true,
|
2589
|
-
"note": "",
|
2590
|
-
"features": [
|
2591
|
-
"- Tốc độ có thể rất nhanh."
|
2592
|
-
]
|
2548
|
+
"note": "- Tốc độ có thể rất nhanh",
|
2549
|
+
"features": []
|
2593
2550
|
}
|
2594
2551
|
},
|
2595
2552
|
"like": {
|
@@ -2625,43 +2582,7 @@
|
|
2625
2582
|
"required": false,
|
2626
2583
|
"default": "server_2",
|
2627
2584
|
"description": "Chọn server phù hợp với yêu cầu của bạn",
|
2628
|
-
"options": [
|
2629
|
-
{
|
2630
|
-
"name": "Server 1 - 54₫ (50-10000) - Hoạt động",
|
2631
|
-
"value": "server_1",
|
2632
|
-
"description": "Features:\n• Có hỗ trợ hoàn tiền khi chậm.\n• phú hợp các gói số lượng nhỏ dưới 1k, tốc độ rất nhanh"
|
2633
|
-
},
|
2634
|
-
{
|
2635
|
-
"name": "Server 2 - 21₫ (200-50000) - Hoạt động",
|
2636
|
-
"value": "server_2",
|
2637
|
-
"description": "Features:\n• Giá rẻ tốc độ có thể chậm đột ngột, chúng tôi sẽ kiểm soát và ngừng nhận gói khi chậm.\n• không được mua dồn sẽ làm chậm đơn và lỗi không hoàn tiền"
|
2638
|
-
},
|
2639
|
-
{
|
2640
|
-
"name": "Server 3 - 57₫ (200-10000) - Hoạt động",
|
2641
|
-
"value": "server_3",
|
2642
|
-
"description": "Features:\n• Nên mua 1 lần mua 1k like. done mọi người mua tiếp ( vì tránh tốc độ giảm đột ngột)\n• không được hủy gói, Die không hoàn tiền."
|
2643
|
-
},
|
2644
|
-
{
|
2645
|
-
"name": "Server 5 - 61₫ (100-15000) - Hoạt động",
|
2646
|
-
"value": "server_5",
|
2647
|
-
"description": "Features:\n• Nên mua 2k/1 lần mua, done có thể mua tiếp ( tránh gói chậm đột ngột)\n• Vì không hỗ trợ hủy gói."
|
2648
|
-
},
|
2649
|
-
{
|
2650
|
-
"name": "Server 6 - 43₫ (100-50000) - Hoạt động",
|
2651
|
-
"value": "server_6",
|
2652
|
-
"description": "Features:\n• Tốc độ thường lên nhanh nhưng nếu chập chờn sẽ bị trễ và không lên ngay lập tức\n• không được mua dồn sẽ làm chậm đơn và lỗi không hoàn tiền"
|
2653
|
-
},
|
2654
|
-
{
|
2655
|
-
"name": "Server 7 - 38₫ (50-100000) - Hoạt động",
|
2656
|
-
"value": "server_7",
|
2657
|
-
"description": "Features:\n• Có thể ùn đơn lên trễ nếu gặp sự cố. yêu cầu hủy mất 1-2 ngày\n• Không hỗ trợ video tiktok dạng ảnh\n• không được mua dồn sẽ làm chậm đơn và lỗi không hoàn tiền"
|
2658
|
-
},
|
2659
|
-
{
|
2660
|
-
"name": "Server 8 - 61₫ (50-100000) - Hoạt động",
|
2661
|
-
"value": "server_8",
|
2662
|
-
"description": "Features:\n• Gói thường lên lập tức và rất nhanh.\n• không được mua dồn sẽ làm chậm đơn và lỗi không hoàn tiền"
|
2663
|
-
}
|
2664
|
-
],
|
2585
|
+
"options": [],
|
2665
2586
|
"typeOptions": {
|
2666
2587
|
"options": [
|
2667
2588
|
{
|
@@ -2717,109 +2638,9 @@
|
|
2717
2638
|
"1 số server like có tụt trong quá trình tăng. không bảo hành tất cả server, trừ server có ghi note bảo hành.",
|
2718
2639
|
"Số liệu tốc độ chỉ là ước tính chỉ mang tính chất tham khảo , nó sẽ thay đôi theo từng thời gian."
|
2719
2640
|
],
|
2720
|
-
"servers": [
|
2721
|
-
|
2722
|
-
|
2723
|
-
"name": "Server 1",
|
2724
|
-
"price": 54,
|
2725
|
-
"minQuantity": 50,
|
2726
|
-
"maxQuantity": 10000,
|
2727
|
-
"status": "Hoạt động",
|
2728
|
-
"isActive": true,
|
2729
|
-
"note": "",
|
2730
|
-
"features": [
|
2731
|
-
"- Có hỗ trợ hoàn tiền khi chậm.",
|
2732
|
-
"- phú hợp các gói số lượng nhỏ dưới 1k, tốc độ rất nhanh"
|
2733
|
-
]
|
2734
|
-
},
|
2735
|
-
{
|
2736
|
-
"id": "server_2",
|
2737
|
-
"name": "Server 2",
|
2738
|
-
"price": 21,
|
2739
|
-
"minQuantity": 200,
|
2740
|
-
"maxQuantity": 50000,
|
2741
|
-
"status": "Hoạt động",
|
2742
|
-
"isActive": true,
|
2743
|
-
"note": "",
|
2744
|
-
"features": [
|
2745
|
-
"- Giá rẻ tốc độ có thể chậm đột ngột, chúng tôi sẽ kiểm soát và ngừng nhận gói khi chậm.",
|
2746
|
-
"- không được mua dồn sẽ làm chậm đơn và lỗi không hoàn tiền"
|
2747
|
-
]
|
2748
|
-
},
|
2749
|
-
{
|
2750
|
-
"id": "server_3",
|
2751
|
-
"name": "Server 3",
|
2752
|
-
"price": 57,
|
2753
|
-
"minQuantity": 200,
|
2754
|
-
"maxQuantity": 10000,
|
2755
|
-
"status": "Hoạt động",
|
2756
|
-
"isActive": true,
|
2757
|
-
"note": "",
|
2758
|
-
"features": [
|
2759
|
-
"- Nên mua 1 lần mua 1k like. done mọi người mua tiếp ( vì tránh tốc độ giảm đột ngột)",
|
2760
|
-
"- không được hủy gói, Die không hoàn tiền."
|
2761
|
-
]
|
2762
|
-
},
|
2763
|
-
{
|
2764
|
-
"id": "server_5",
|
2765
|
-
"name": "Server 5",
|
2766
|
-
"price": 61,
|
2767
|
-
"minQuantity": 100,
|
2768
|
-
"maxQuantity": 15000,
|
2769
|
-
"status": "Hoạt động",
|
2770
|
-
"isActive": true,
|
2771
|
-
"note": "",
|
2772
|
-
"features": [
|
2773
|
-
"- Nên mua 2k/1 lần mua, done có thể mua tiếp ( tránh gói chậm đột ngột)",
|
2774
|
-
"- Vì không hỗ trợ hủy gói."
|
2775
|
-
]
|
2776
|
-
},
|
2777
|
-
{
|
2778
|
-
"id": "server_6",
|
2779
|
-
"name": "Server 6",
|
2780
|
-
"price": 43,
|
2781
|
-
"minQuantity": 100,
|
2782
|
-
"maxQuantity": 50000,
|
2783
|
-
"status": "Hoạt động",
|
2784
|
-
"isActive": true,
|
2785
|
-
"note": "",
|
2786
|
-
"features": [
|
2787
|
-
"- Tốc độ thường lên nhanh nhưng nếu chập chờn sẽ bị trễ và không lên ngay lập tức",
|
2788
|
-
"- không được mua dồn sẽ làm chậm đơn và lỗi không hoàn tiền"
|
2789
|
-
]
|
2790
|
-
},
|
2791
|
-
{
|
2792
|
-
"id": "server_7",
|
2793
|
-
"name": "Server 7",
|
2794
|
-
"price": 38,
|
2795
|
-
"minQuantity": 50,
|
2796
|
-
"maxQuantity": 100000,
|
2797
|
-
"status": "Hoạt động",
|
2798
|
-
"isActive": true,
|
2799
|
-
"note": "",
|
2800
|
-
"features": [
|
2801
|
-
"- Có thể ùn đơn lên trễ nếu gặp sự cố. yêu cầu hủy mất 1-2 ngày",
|
2802
|
-
"- Không hỗ trợ video tiktok dạng ảnh",
|
2803
|
-
"- không được mua dồn sẽ làm chậm đơn và lỗi không hoàn tiền"
|
2804
|
-
]
|
2805
|
-
},
|
2806
|
-
{
|
2807
|
-
"id": "server_8",
|
2808
|
-
"name": "Server 8",
|
2809
|
-
"price": 61,
|
2810
|
-
"minQuantity": 50,
|
2811
|
-
"maxQuantity": 100000,
|
2812
|
-
"status": "Hoạt động",
|
2813
|
-
"isActive": true,
|
2814
|
-
"note": "",
|
2815
|
-
"features": [
|
2816
|
-
"- Gói thường lên lập tức và rất nhanh.",
|
2817
|
-
"- không được mua dồn sẽ làm chậm đơn và lỗi không hoàn tiền"
|
2818
|
-
]
|
2819
|
-
}
|
2820
|
-
],
|
2821
|
-
"totalServers": 7,
|
2822
|
-
"activeServers": 7,
|
2641
|
+
"servers": [],
|
2642
|
+
"totalServers": 0,
|
2643
|
+
"activeServers": 0,
|
2823
2644
|
"hasServerOptions": true,
|
2824
2645
|
"priceRange": {
|
2825
2646
|
"min": 21.7,
|
@@ -2881,23 +2702,7 @@
|
|
2881
2702
|
"required": false,
|
2882
2703
|
"default": "server_2",
|
2883
2704
|
"description": "Chọn server phù hợp với yêu cầu của bạn",
|
2884
|
-
"options": [
|
2885
|
-
{
|
2886
|
-
"name": "Server 1 - 62₫ (50-100000) - Hoạt động",
|
2887
|
-
"value": "server_1",
|
2888
|
-
"description": "Features:\n• Tốc độ khá ổn"
|
2889
|
-
},
|
2890
|
-
{
|
2891
|
-
"name": "Server 2 - 26₫ (50-100000) - Hoạt động",
|
2892
|
-
"value": "server_2",
|
2893
|
-
"description": "Features:\n• Nếu delay có thể chậm còn không lỗi thì done siêu tốc.\n• Số lượng share thường lên dư"
|
2894
|
-
},
|
2895
|
-
{
|
2896
|
-
"name": "Server 4 - 11₫ (50-100000) - Bảo trì",
|
2897
|
-
"value": "server_4",
|
2898
|
-
"description": "Features:\n• Giá rẻ lên ngon. Không bảo hành"
|
2899
|
-
}
|
2900
|
-
],
|
2705
|
+
"options": [],
|
2901
2706
|
"typeOptions": {
|
2902
2707
|
"options": [
|
2903
2708
|
{
|
@@ -2931,50 +2736,9 @@
|
|
2931
2736
|
"Cám ơn đã sử dụng dịch vụ của chúng tôi.",
|
2932
2737
|
"1 uid cho phép mua nhiều lần, chỉ cần đơn cũ done."
|
2933
2738
|
],
|
2934
|
-
"servers": [
|
2935
|
-
|
2936
|
-
|
2937
|
-
"name": "Server 1",
|
2938
|
-
"price": 62,
|
2939
|
-
"minQuantity": 50,
|
2940
|
-
"maxQuantity": 100000,
|
2941
|
-
"status": "Hoạt động",
|
2942
|
-
"isActive": true,
|
2943
|
-
"note": "",
|
2944
|
-
"features": [
|
2945
|
-
"Tốc độ khá ổn"
|
2946
|
-
]
|
2947
|
-
},
|
2948
|
-
{
|
2949
|
-
"id": "server_2",
|
2950
|
-
"name": "Server 2",
|
2951
|
-
"price": 26,
|
2952
|
-
"minQuantity": 50,
|
2953
|
-
"maxQuantity": 100000,
|
2954
|
-
"status": "Hoạt động",
|
2955
|
-
"isActive": true,
|
2956
|
-
"note": "",
|
2957
|
-
"features": [
|
2958
|
-
"- Nếu delay có thể chậm còn không lỗi thì done siêu tốc.",
|
2959
|
-
"- Số lượng share thường lên dư"
|
2960
|
-
]
|
2961
|
-
},
|
2962
|
-
{
|
2963
|
-
"id": "server_4",
|
2964
|
-
"name": "Server 4",
|
2965
|
-
"price": 11,
|
2966
|
-
"minQuantity": 50,
|
2967
|
-
"maxQuantity": 100000,
|
2968
|
-
"status": "Bảo trì",
|
2969
|
-
"isActive": false,
|
2970
|
-
"note": "",
|
2971
|
-
"features": [
|
2972
|
-
"- Giá rẻ lên ngon. Không bảo hành"
|
2973
|
-
]
|
2974
|
-
}
|
2975
|
-
],
|
2976
|
-
"totalServers": 3,
|
2977
|
-
"activeServers": 2,
|
2739
|
+
"servers": [],
|
2740
|
+
"totalServers": 0,
|
2741
|
+
"activeServers": 0,
|
2978
2742
|
"hasServerOptions": true,
|
2979
2743
|
"priceRange": {
|
2980
2744
|
"min": 11.9,
|
@@ -3036,28 +2800,7 @@
|
|
3036
2800
|
"required": false,
|
3037
2801
|
"default": "server_3",
|
3038
2802
|
"description": "Chọn server phù hợp với yêu cầu của bạn",
|
3039
|
-
"options": [
|
3040
|
-
{
|
3041
|
-
"name": "Server 3 - 3₫ (50-100000) - Hoạt động",
|
3042
|
-
"value": "server_3",
|
3043
|
-
"description": "Features:\n• Nếu mua số lượng cao, các bạn nên dùng tính năng hẹn giờ set \" 10k/1 đơn và cách nhau 12-24h\" để hạn chế quét tụt.\n• Mua số lương cao có rủi do tụt hết sau 1-3 vài ngày."
|
3044
|
-
},
|
3045
|
-
{
|
3046
|
-
"name": "Server 4 - 3₫ (50-100000) - Hoạt động",
|
3047
|
-
"value": "server_4",
|
3048
|
-
"description": "Features:\n• Nếu mua số lượng cao, các bạn nên dùng tính năng hẹn giờ set \" 10k/1 đơn và cách nhau 12-24h\" để hạn chế quét tụt.\n• Mua số lương cao có rủi do tụt hết sau 1-3 vài ngày."
|
3049
|
-
},
|
3050
|
-
{
|
3051
|
-
"name": "Server 5 - 4₫ (50-100000) - Hoạt động",
|
3052
|
-
"value": "server_5",
|
3053
|
-
"description": "Features:\n• Nếu mua số lượng cao, các bạn nên dùng tính năng hẹn giờ set \" 10k/1 đơn và cách nhau 12-24h\" để hạn chế quét tụt.\n• Bảo hành 30 ngày."
|
3054
|
-
},
|
3055
|
-
{
|
3056
|
-
"name": "Server 7 - 0₫ (50-100000) - Bảo trì",
|
3057
|
-
"value": "server_7",
|
3058
|
-
"description": "Features:\n• Nếu mua số lượng cao, các bạn nên dùng tính năng hẹn giờ set \" 10k/1 đơn và cách nhau 12-24h\" để hạn chế quét tụt.\n• không nên mua >20k view/1 đơn vì hiện tại dễ tụt"
|
3059
|
-
}
|
3060
|
-
],
|
2803
|
+
"options": [],
|
3061
2804
|
"typeOptions": {
|
3062
2805
|
"options": [
|
3063
2806
|
{
|
@@ -3098,66 +2841,9 @@
|
|
3098
2841
|
"Số lượng mua bé thường lên dư so với số lượng mua ban đầu, không chuẩn 100% số lượng mua đặt ra.",
|
3099
2842
|
"Cám ơn đã sử dụng dịch vụ của chúng tôi."
|
3100
2843
|
],
|
3101
|
-
"servers": [
|
3102
|
-
|
3103
|
-
|
3104
|
-
"name": "Server 3",
|
3105
|
-
"price": 3,
|
3106
|
-
"minQuantity": 50,
|
3107
|
-
"maxQuantity": 100000,
|
3108
|
-
"status": "Hoạt động",
|
3109
|
-
"isActive": true,
|
3110
|
-
"note": "",
|
3111
|
-
"features": [
|
3112
|
-
"- Nếu mua số lượng cao, các bạn nên dùng tính năng hẹn giờ set \" 10k/1 đơn và cách nhau 12-24h\" để hạn chế quét tụt.",
|
3113
|
-
"- Mua số lương cao có rủi do tụt hết sau 1-3 vài ngày."
|
3114
|
-
]
|
3115
|
-
},
|
3116
|
-
{
|
3117
|
-
"id": "server_4",
|
3118
|
-
"name": "Server 4",
|
3119
|
-
"price": 3,
|
3120
|
-
"minQuantity": 50,
|
3121
|
-
"maxQuantity": 100000,
|
3122
|
-
"status": "Hoạt động",
|
3123
|
-
"isActive": true,
|
3124
|
-
"note": "",
|
3125
|
-
"features": [
|
3126
|
-
"- Nếu mua số lượng cao, các bạn nên dùng tính năng hẹn giờ set \" 10k/1 đơn và cách nhau 12-24h\" để hạn chế quét tụt.",
|
3127
|
-
"- Mua số lương cao có rủi do tụt hết sau 1-3 vài ngày."
|
3128
|
-
]
|
3129
|
-
},
|
3130
|
-
{
|
3131
|
-
"id": "server_5",
|
3132
|
-
"name": "Server 5",
|
3133
|
-
"price": 4,
|
3134
|
-
"minQuantity": 50,
|
3135
|
-
"maxQuantity": 100000,
|
3136
|
-
"status": "Hoạt động",
|
3137
|
-
"isActive": true,
|
3138
|
-
"note": "",
|
3139
|
-
"features": [
|
3140
|
-
"- Nếu mua số lượng cao, các bạn nên dùng tính năng hẹn giờ set \" 10k/1 đơn và cách nhau 12-24h\" để hạn chế quét tụt.",
|
3141
|
-
"- Bảo hành 30 ngày."
|
3142
|
-
]
|
3143
|
-
},
|
3144
|
-
{
|
3145
|
-
"id": "server_7",
|
3146
|
-
"name": "Server 7",
|
3147
|
-
"price": 0,
|
3148
|
-
"minQuantity": 50,
|
3149
|
-
"maxQuantity": 100000,
|
3150
|
-
"status": "Bảo trì",
|
3151
|
-
"isActive": false,
|
3152
|
-
"note": "",
|
3153
|
-
"features": [
|
3154
|
-
"- Nếu mua số lượng cao, các bạn nên dùng tính năng hẹn giờ set \" 10k/1 đơn và cách nhau 12-24h\" để hạn chế quét tụt.",
|
3155
|
-
"- không nên mua >20k view/1 đơn vì hiện tại dễ tụt"
|
3156
|
-
]
|
3157
|
-
}
|
3158
|
-
],
|
3159
|
-
"totalServers": 4,
|
3160
|
-
"activeServers": 3,
|
2844
|
+
"servers": [],
|
2845
|
+
"totalServers": 0,
|
2846
|
+
"activeServers": 0,
|
3161
2847
|
"hasServerOptions": true,
|
3162
2848
|
"priceRange": {
|
3163
2849
|
"min": 0.91,
|