@social-data/social-neuron-subscription 1.0.0-beta.26 → 1.0.0-beta.28
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/manifest.json +579 -45
- package/package.json +1 -1
- package/skills/social-neuron-subscription/SKILL.md +169 -23
package/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"revision":
|
|
2
|
+
"revision": 12,
|
|
3
3
|
"capability": "subscription",
|
|
4
4
|
"command": "social-neuron-subscription",
|
|
5
5
|
"default_action": null,
|
|
@@ -201,6 +201,33 @@
|
|
|
201
201
|
"title": "OctoTarget",
|
|
202
202
|
"type": "object"
|
|
203
203
|
},
|
|
204
|
+
"PlatformSite": {
|
|
205
|
+
"additionalProperties": false,
|
|
206
|
+
"properties": {
|
|
207
|
+
"platform": {
|
|
208
|
+
"description": "平台编码,取 list_platforms 的 name_en",
|
|
209
|
+
"minLength": 1,
|
|
210
|
+
"title": "Platform",
|
|
211
|
+
"type": "string"
|
|
212
|
+
},
|
|
213
|
+
"sites": {
|
|
214
|
+
"description": "站点编码数组,取 list_sites 的 value;[\"*\"] 表示该平台全部站点,不可混用",
|
|
215
|
+
"items": {
|
|
216
|
+
"minLength": 1,
|
|
217
|
+
"type": "string"
|
|
218
|
+
},
|
|
219
|
+
"minItems": 1,
|
|
220
|
+
"title": "Sites",
|
|
221
|
+
"type": "array"
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
"required": [
|
|
225
|
+
"platform",
|
|
226
|
+
"sites"
|
|
227
|
+
],
|
|
228
|
+
"title": "PlatformSite",
|
|
229
|
+
"type": "object"
|
|
230
|
+
},
|
|
204
231
|
"SftpTarget": {
|
|
205
232
|
"additionalProperties": false,
|
|
206
233
|
"description": "sftp(本期):把导出文件上传到 SFTP 远端目录。\n目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task\n重跑多少次,远端路径与文件名都不变。",
|
|
@@ -306,6 +333,33 @@
|
|
|
306
333
|
},
|
|
307
334
|
"additionalProperties": false,
|
|
308
335
|
"properties": {
|
|
336
|
+
"source": {
|
|
337
|
+
"description": "历史热门站点中文名数组,取 list_source;与 platform_site 必须二选一",
|
|
338
|
+
"items": {
|
|
339
|
+
"minLength": 1,
|
|
340
|
+
"type": "string"
|
|
341
|
+
},
|
|
342
|
+
"minItems": 1,
|
|
343
|
+
"title": "Source",
|
|
344
|
+
"type": "array"
|
|
345
|
+
},
|
|
346
|
+
"platform_site": {
|
|
347
|
+
"anyOf": [
|
|
348
|
+
{
|
|
349
|
+
"items": {
|
|
350
|
+
"$ref": "#/$defs/PlatformSite"
|
|
351
|
+
},
|
|
352
|
+
"minItems": 1,
|
|
353
|
+
"type": "array"
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
"type": "null"
|
|
357
|
+
}
|
|
358
|
+
],
|
|
359
|
+
"default": null,
|
|
360
|
+
"description": "元数据平台站点组合;platform 取 list_platforms.name_en,sites 取 list_sites.value;与 source 二选一",
|
|
361
|
+
"title": "Platform Site"
|
|
362
|
+
},
|
|
309
363
|
"confirmed": {
|
|
310
364
|
"default": false,
|
|
311
365
|
"description": "是否已确认继续并同意系统超限处理规则;超量时默认拒绝,true 允许保存但仍按上限截断;不跳过其他校验,不保存到 job,TopN 不适用",
|
|
@@ -329,16 +383,6 @@
|
|
|
329
383
|
"title": "Rule Ids",
|
|
330
384
|
"type": "array"
|
|
331
385
|
},
|
|
332
|
-
"source": {
|
|
333
|
-
"description": "站点数组,至少 1 个;只能取已配置站点",
|
|
334
|
-
"items": {
|
|
335
|
-
"minLength": 1,
|
|
336
|
-
"type": "string"
|
|
337
|
-
},
|
|
338
|
-
"minItems": 1,
|
|
339
|
-
"title": "Source",
|
|
340
|
-
"type": "array"
|
|
341
|
-
},
|
|
342
386
|
"published": {
|
|
343
387
|
"description": "**发布时间**口径(必填,主口径 —— 它同时决定查哪个月的索引、怎么拆分片,所以不能缺省)。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。",
|
|
344
388
|
"pattern": "^(?:T-\\d+~T-\\d+|T-\\d+@(?:[01]\\d|2[0-3]):[0-5]\\d~T-\\d+@(?:[01]\\d|2[0-3]):[0-5]\\d)$",
|
|
@@ -455,7 +499,6 @@
|
|
|
455
499
|
"required": [
|
|
456
500
|
"name",
|
|
457
501
|
"rule_ids",
|
|
458
|
-
"source",
|
|
459
502
|
"published",
|
|
460
503
|
"frequency"
|
|
461
504
|
],
|
|
@@ -464,6 +507,33 @@
|
|
|
464
507
|
},
|
|
465
508
|
"output_schema": {
|
|
466
509
|
"$defs": {
|
|
510
|
+
"PlatformSite": {
|
|
511
|
+
"additionalProperties": false,
|
|
512
|
+
"properties": {
|
|
513
|
+
"platform": {
|
|
514
|
+
"description": "平台编码,取 list_platforms 的 name_en",
|
|
515
|
+
"minLength": 1,
|
|
516
|
+
"title": "Platform",
|
|
517
|
+
"type": "string"
|
|
518
|
+
},
|
|
519
|
+
"sites": {
|
|
520
|
+
"description": "站点编码数组,取 list_sites 的 value;[\"*\"] 表示该平台全部站点,不可混用",
|
|
521
|
+
"items": {
|
|
522
|
+
"minLength": 1,
|
|
523
|
+
"type": "string"
|
|
524
|
+
},
|
|
525
|
+
"minItems": 1,
|
|
526
|
+
"title": "Sites",
|
|
527
|
+
"type": "array"
|
|
528
|
+
}
|
|
529
|
+
},
|
|
530
|
+
"required": [
|
|
531
|
+
"platform",
|
|
532
|
+
"sites"
|
|
533
|
+
],
|
|
534
|
+
"title": "PlatformSite",
|
|
535
|
+
"type": "object"
|
|
536
|
+
},
|
|
467
537
|
"PrecheckResult": {
|
|
468
538
|
"additionalProperties": false,
|
|
469
539
|
"properties": {
|
|
@@ -591,13 +661,29 @@
|
|
|
591
661
|
"type": "array"
|
|
592
662
|
},
|
|
593
663
|
"source": {
|
|
594
|
-
"description": "
|
|
664
|
+
"description": "历史热门站点中文名数组;元数据模式为空数组",
|
|
595
665
|
"items": {
|
|
596
666
|
"type": "string"
|
|
597
667
|
},
|
|
598
668
|
"title": "Source",
|
|
599
669
|
"type": "array"
|
|
600
670
|
},
|
|
671
|
+
"platform_site": {
|
|
672
|
+
"anyOf": [
|
|
673
|
+
{
|
|
674
|
+
"items": {
|
|
675
|
+
"$ref": "#/$defs/PlatformSite"
|
|
676
|
+
},
|
|
677
|
+
"type": "array"
|
|
678
|
+
},
|
|
679
|
+
{
|
|
680
|
+
"type": "null"
|
|
681
|
+
}
|
|
682
|
+
],
|
|
683
|
+
"default": null,
|
|
684
|
+
"description": "元数据平台站点组合;历史热门站点模式为 null",
|
|
685
|
+
"title": "Platform Site"
|
|
686
|
+
},
|
|
601
687
|
"published": {
|
|
602
688
|
"description": "发布时间口径(相对,支持按天或按分钟);触发时按 task_time 折算成绝对时间区间",
|
|
603
689
|
"title": "Published",
|
|
@@ -716,6 +802,20 @@
|
|
|
716
802
|
"type": "object"
|
|
717
803
|
},
|
|
718
804
|
"flags": [
|
|
805
|
+
{
|
|
806
|
+
"flag": "--source",
|
|
807
|
+
"field": "source",
|
|
808
|
+
"type": "list[str](json)",
|
|
809
|
+
"required": false,
|
|
810
|
+
"desc": "历史热门站点中文名数组,取 list_source;与 platform_site 必须二选一"
|
|
811
|
+
},
|
|
812
|
+
{
|
|
813
|
+
"flag": "--platform-site",
|
|
814
|
+
"field": "platform_site",
|
|
815
|
+
"type": "list[object](json)",
|
|
816
|
+
"required": false,
|
|
817
|
+
"desc": "元数据平台站点组合;platform 取 list_platforms.name_en,sites 取 list_sites.value;与 source 二选一"
|
|
818
|
+
},
|
|
719
819
|
{
|
|
720
820
|
"flag": "--confirmed",
|
|
721
821
|
"field": "confirmed",
|
|
@@ -737,13 +837,6 @@
|
|
|
737
837
|
"required": true,
|
|
738
838
|
"desc": "魔方规则ID数组,至少 1 个"
|
|
739
839
|
},
|
|
740
|
-
{
|
|
741
|
-
"flag": "--source",
|
|
742
|
-
"field": "source",
|
|
743
|
-
"type": "list[str](json)",
|
|
744
|
-
"required": true,
|
|
745
|
-
"desc": "站点数组,至少 1 个;只能取已配置站点"
|
|
746
|
-
},
|
|
747
840
|
{
|
|
748
841
|
"flag": "--published",
|
|
749
842
|
"field": "published",
|
|
@@ -910,6 +1003,33 @@
|
|
|
910
1003
|
},
|
|
911
1004
|
"output_schema": {
|
|
912
1005
|
"$defs": {
|
|
1006
|
+
"PlatformSite": {
|
|
1007
|
+
"additionalProperties": false,
|
|
1008
|
+
"properties": {
|
|
1009
|
+
"platform": {
|
|
1010
|
+
"description": "平台编码,取 list_platforms 的 name_en",
|
|
1011
|
+
"minLength": 1,
|
|
1012
|
+
"title": "Platform",
|
|
1013
|
+
"type": "string"
|
|
1014
|
+
},
|
|
1015
|
+
"sites": {
|
|
1016
|
+
"description": "站点编码数组,取 list_sites 的 value;[\"*\"] 表示该平台全部站点,不可混用",
|
|
1017
|
+
"items": {
|
|
1018
|
+
"minLength": 1,
|
|
1019
|
+
"type": "string"
|
|
1020
|
+
},
|
|
1021
|
+
"minItems": 1,
|
|
1022
|
+
"title": "Sites",
|
|
1023
|
+
"type": "array"
|
|
1024
|
+
}
|
|
1025
|
+
},
|
|
1026
|
+
"required": [
|
|
1027
|
+
"platform",
|
|
1028
|
+
"sites"
|
|
1029
|
+
],
|
|
1030
|
+
"title": "PlatformSite",
|
|
1031
|
+
"type": "object"
|
|
1032
|
+
},
|
|
913
1033
|
"PrecheckResult": {
|
|
914
1034
|
"additionalProperties": false,
|
|
915
1035
|
"properties": {
|
|
@@ -1037,13 +1157,29 @@
|
|
|
1037
1157
|
"type": "array"
|
|
1038
1158
|
},
|
|
1039
1159
|
"source": {
|
|
1040
|
-
"description": "
|
|
1160
|
+
"description": "历史热门站点中文名数组;元数据模式为空数组",
|
|
1041
1161
|
"items": {
|
|
1042
1162
|
"type": "string"
|
|
1043
1163
|
},
|
|
1044
1164
|
"title": "Source",
|
|
1045
1165
|
"type": "array"
|
|
1046
1166
|
},
|
|
1167
|
+
"platform_site": {
|
|
1168
|
+
"anyOf": [
|
|
1169
|
+
{
|
|
1170
|
+
"items": {
|
|
1171
|
+
"$ref": "#/$defs/PlatformSite"
|
|
1172
|
+
},
|
|
1173
|
+
"type": "array"
|
|
1174
|
+
},
|
|
1175
|
+
{
|
|
1176
|
+
"type": "null"
|
|
1177
|
+
}
|
|
1178
|
+
],
|
|
1179
|
+
"default": null,
|
|
1180
|
+
"description": "元数据平台站点组合;历史热门站点模式为 null",
|
|
1181
|
+
"title": "Platform Site"
|
|
1182
|
+
},
|
|
1047
1183
|
"published": {
|
|
1048
1184
|
"description": "发布时间口径(相对,支持按天或按分钟);触发时按 task_time 折算成绝对时间区间",
|
|
1049
1185
|
"title": "Published",
|
|
@@ -1683,6 +1819,33 @@
|
|
|
1683
1819
|
"title": "OctoTarget",
|
|
1684
1820
|
"type": "object"
|
|
1685
1821
|
},
|
|
1822
|
+
"PlatformSite": {
|
|
1823
|
+
"additionalProperties": false,
|
|
1824
|
+
"properties": {
|
|
1825
|
+
"platform": {
|
|
1826
|
+
"description": "平台编码,取 list_platforms 的 name_en",
|
|
1827
|
+
"minLength": 1,
|
|
1828
|
+
"title": "Platform",
|
|
1829
|
+
"type": "string"
|
|
1830
|
+
},
|
|
1831
|
+
"sites": {
|
|
1832
|
+
"description": "站点编码数组,取 list_sites 的 value;[\"*\"] 表示该平台全部站点,不可混用",
|
|
1833
|
+
"items": {
|
|
1834
|
+
"minLength": 1,
|
|
1835
|
+
"type": "string"
|
|
1836
|
+
},
|
|
1837
|
+
"minItems": 1,
|
|
1838
|
+
"title": "Sites",
|
|
1839
|
+
"type": "array"
|
|
1840
|
+
}
|
|
1841
|
+
},
|
|
1842
|
+
"required": [
|
|
1843
|
+
"platform",
|
|
1844
|
+
"sites"
|
|
1845
|
+
],
|
|
1846
|
+
"title": "PlatformSite",
|
|
1847
|
+
"type": "object"
|
|
1848
|
+
},
|
|
1686
1849
|
"SftpTarget": {
|
|
1687
1850
|
"additionalProperties": false,
|
|
1688
1851
|
"description": "sftp(本期):把导出文件上传到 SFTP 远端目录。\n目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task\n重跑多少次,远端路径与文件名都不变。",
|
|
@@ -1847,9 +2010,26 @@
|
|
|
1847
2010
|
}
|
|
1848
2011
|
],
|
|
1849
2012
|
"default": null,
|
|
1850
|
-
"description": "
|
|
2013
|
+
"description": "历史热门站点中文名数组,取 list_source;整体替换范围,与 platform_site 互斥",
|
|
1851
2014
|
"title": "Source"
|
|
1852
2015
|
},
|
|
2016
|
+
"platform_site": {
|
|
2017
|
+
"anyOf": [
|
|
2018
|
+
{
|
|
2019
|
+
"items": {
|
|
2020
|
+
"$ref": "#/$defs/PlatformSite"
|
|
2021
|
+
},
|
|
2022
|
+
"minItems": 1,
|
|
2023
|
+
"type": "array"
|
|
2024
|
+
},
|
|
2025
|
+
{
|
|
2026
|
+
"type": "null"
|
|
2027
|
+
}
|
|
2028
|
+
],
|
|
2029
|
+
"default": null,
|
|
2030
|
+
"description": "元数据平台站点组合;整体替换范围,与 source 互斥;不传保持原范围",
|
|
2031
|
+
"title": "Platform Site"
|
|
2032
|
+
},
|
|
1853
2033
|
"published": {
|
|
1854
2034
|
"anyOf": [
|
|
1855
2035
|
{
|
|
@@ -2012,6 +2192,33 @@
|
|
|
2012
2192
|
},
|
|
2013
2193
|
"output_schema": {
|
|
2014
2194
|
"$defs": {
|
|
2195
|
+
"PlatformSite": {
|
|
2196
|
+
"additionalProperties": false,
|
|
2197
|
+
"properties": {
|
|
2198
|
+
"platform": {
|
|
2199
|
+
"description": "平台编码,取 list_platforms 的 name_en",
|
|
2200
|
+
"minLength": 1,
|
|
2201
|
+
"title": "Platform",
|
|
2202
|
+
"type": "string"
|
|
2203
|
+
},
|
|
2204
|
+
"sites": {
|
|
2205
|
+
"description": "站点编码数组,取 list_sites 的 value;[\"*\"] 表示该平台全部站点,不可混用",
|
|
2206
|
+
"items": {
|
|
2207
|
+
"minLength": 1,
|
|
2208
|
+
"type": "string"
|
|
2209
|
+
},
|
|
2210
|
+
"minItems": 1,
|
|
2211
|
+
"title": "Sites",
|
|
2212
|
+
"type": "array"
|
|
2213
|
+
}
|
|
2214
|
+
},
|
|
2215
|
+
"required": [
|
|
2216
|
+
"platform",
|
|
2217
|
+
"sites"
|
|
2218
|
+
],
|
|
2219
|
+
"title": "PlatformSite",
|
|
2220
|
+
"type": "object"
|
|
2221
|
+
},
|
|
2015
2222
|
"PrecheckResult": {
|
|
2016
2223
|
"additionalProperties": false,
|
|
2017
2224
|
"properties": {
|
|
@@ -2139,13 +2346,29 @@
|
|
|
2139
2346
|
"type": "array"
|
|
2140
2347
|
},
|
|
2141
2348
|
"source": {
|
|
2142
|
-
"description": "
|
|
2349
|
+
"description": "历史热门站点中文名数组;元数据模式为空数组",
|
|
2143
2350
|
"items": {
|
|
2144
2351
|
"type": "string"
|
|
2145
2352
|
},
|
|
2146
2353
|
"title": "Source",
|
|
2147
2354
|
"type": "array"
|
|
2148
2355
|
},
|
|
2356
|
+
"platform_site": {
|
|
2357
|
+
"anyOf": [
|
|
2358
|
+
{
|
|
2359
|
+
"items": {
|
|
2360
|
+
"$ref": "#/$defs/PlatformSite"
|
|
2361
|
+
},
|
|
2362
|
+
"type": "array"
|
|
2363
|
+
},
|
|
2364
|
+
{
|
|
2365
|
+
"type": "null"
|
|
2366
|
+
}
|
|
2367
|
+
],
|
|
2368
|
+
"default": null,
|
|
2369
|
+
"description": "元数据平台站点组合;历史热门站点模式为 null",
|
|
2370
|
+
"title": "Platform Site"
|
|
2371
|
+
},
|
|
2149
2372
|
"published": {
|
|
2150
2373
|
"description": "发布时间口径(相对,支持按天或按分钟);触发时按 task_time 折算成绝对时间区间",
|
|
2151
2374
|
"title": "Published",
|
|
@@ -2297,7 +2520,14 @@
|
|
|
2297
2520
|
"field": "source",
|
|
2298
2521
|
"type": "list[str](json)",
|
|
2299
2522
|
"required": false,
|
|
2300
|
-
"desc": "
|
|
2523
|
+
"desc": "历史热门站点中文名数组,取 list_source;整体替换范围,与 platform_site 互斥"
|
|
2524
|
+
},
|
|
2525
|
+
{
|
|
2526
|
+
"flag": "--platform-site",
|
|
2527
|
+
"field": "platform_site",
|
|
2528
|
+
"type": "list[object](json)",
|
|
2529
|
+
"required": false,
|
|
2530
|
+
"desc": "元数据平台站点组合;整体替换范围,与 source 互斥;不传保持原范围"
|
|
2301
2531
|
},
|
|
2302
2532
|
{
|
|
2303
2533
|
"flag": "--published",
|
|
@@ -2383,10 +2613,39 @@
|
|
|
2383
2613
|
"summary": "列出所选站点下可导出的字段:name_en(填 fields 用)、中文名、类型、是否枚举 / code。",
|
|
2384
2614
|
"description": "列出所选站点下可导出的字段:name_en(填 fields 用)、中文名、类型、是否枚举 / code。\n\n``is_enum`` / ``is_code`` 为真的字段,导出文件里存的是枚举码 / 编码值;\n**若**调用方要把它们换成中文,再调 ``get_field_values`` 取字典自行替换(按需,非必经步骤)。",
|
|
2385
2615
|
"input_schema": {
|
|
2616
|
+
"$defs": {
|
|
2617
|
+
"PlatformSite": {
|
|
2618
|
+
"additionalProperties": false,
|
|
2619
|
+
"properties": {
|
|
2620
|
+
"platform": {
|
|
2621
|
+
"description": "平台编码,取 list_platforms 的 name_en",
|
|
2622
|
+
"minLength": 1,
|
|
2623
|
+
"title": "Platform",
|
|
2624
|
+
"type": "string"
|
|
2625
|
+
},
|
|
2626
|
+
"sites": {
|
|
2627
|
+
"description": "站点编码数组,取 list_sites 的 value;[\"*\"] 表示该平台全部站点,不可混用",
|
|
2628
|
+
"items": {
|
|
2629
|
+
"minLength": 1,
|
|
2630
|
+
"type": "string"
|
|
2631
|
+
},
|
|
2632
|
+
"minItems": 1,
|
|
2633
|
+
"title": "Sites",
|
|
2634
|
+
"type": "array"
|
|
2635
|
+
}
|
|
2636
|
+
},
|
|
2637
|
+
"required": [
|
|
2638
|
+
"platform",
|
|
2639
|
+
"sites"
|
|
2640
|
+
],
|
|
2641
|
+
"title": "PlatformSite",
|
|
2642
|
+
"type": "object"
|
|
2643
|
+
}
|
|
2644
|
+
},
|
|
2386
2645
|
"additionalProperties": false,
|
|
2387
2646
|
"properties": {
|
|
2388
2647
|
"source": {
|
|
2389
|
-
"description": "
|
|
2648
|
+
"description": "历史热门站点中文名数组,取 list_source;与 platform_site 必须二选一",
|
|
2390
2649
|
"items": {
|
|
2391
2650
|
"minLength": 1,
|
|
2392
2651
|
"type": "string"
|
|
@@ -2395,6 +2654,23 @@
|
|
|
2395
2654
|
"title": "Source",
|
|
2396
2655
|
"type": "array"
|
|
2397
2656
|
},
|
|
2657
|
+
"platform_site": {
|
|
2658
|
+
"anyOf": [
|
|
2659
|
+
{
|
|
2660
|
+
"items": {
|
|
2661
|
+
"$ref": "#/$defs/PlatformSite"
|
|
2662
|
+
},
|
|
2663
|
+
"minItems": 1,
|
|
2664
|
+
"type": "array"
|
|
2665
|
+
},
|
|
2666
|
+
{
|
|
2667
|
+
"type": "null"
|
|
2668
|
+
}
|
|
2669
|
+
],
|
|
2670
|
+
"default": null,
|
|
2671
|
+
"description": "元数据平台站点组合;platform 取 list_platforms.name_en,sites 取 list_sites.value;与 source 二选一",
|
|
2672
|
+
"title": "Platform Site"
|
|
2673
|
+
},
|
|
2398
2674
|
"keyword": {
|
|
2399
2675
|
"anyOf": [
|
|
2400
2676
|
{
|
|
@@ -2410,9 +2686,6 @@
|
|
|
2410
2686
|
"title": "Keyword"
|
|
2411
2687
|
}
|
|
2412
2688
|
},
|
|
2413
|
-
"required": [
|
|
2414
|
-
"source"
|
|
2415
|
-
],
|
|
2416
2689
|
"title": "SubListFieldsInput",
|
|
2417
2690
|
"type": "object"
|
|
2418
2691
|
},
|
|
@@ -2505,8 +2778,15 @@
|
|
|
2505
2778
|
"flag": "--source",
|
|
2506
2779
|
"field": "source",
|
|
2507
2780
|
"type": "list[str](json)",
|
|
2508
|
-
"required":
|
|
2509
|
-
"desc": "
|
|
2781
|
+
"required": false,
|
|
2782
|
+
"desc": "历史热门站点中文名数组,取 list_source;与 platform_site 必须二选一"
|
|
2783
|
+
},
|
|
2784
|
+
{
|
|
2785
|
+
"flag": "--platform-site",
|
|
2786
|
+
"field": "platform_site",
|
|
2787
|
+
"type": "list[object](json)",
|
|
2788
|
+
"required": false,
|
|
2789
|
+
"desc": "元数据平台站点组合;platform 取 list_platforms.name_en,sites 取 list_sites.value;与 source 二选一"
|
|
2510
2790
|
},
|
|
2511
2791
|
{
|
|
2512
2792
|
"flag": "--keyword",
|
|
@@ -2529,10 +2809,202 @@
|
|
|
2529
2809
|
"internal"
|
|
2530
2810
|
]
|
|
2531
2811
|
},
|
|
2812
|
+
{
|
|
2813
|
+
"action": "list-platforms",
|
|
2814
|
+
"op": "list_platforms",
|
|
2815
|
+
"name": "subscription/list_platforms",
|
|
2816
|
+
"summary": "列出舆情元数据平台,name_en 填入 platform_site[].platform。",
|
|
2817
|
+
"description": "列出舆情元数据平台,name_en 填入 platform_site[].platform。",
|
|
2818
|
+
"input_schema": {
|
|
2819
|
+
"type": "object",
|
|
2820
|
+
"properties": {},
|
|
2821
|
+
"additionalProperties": false
|
|
2822
|
+
},
|
|
2823
|
+
"output_schema": {
|
|
2824
|
+
"$defs": {
|
|
2825
|
+
"Platform": {
|
|
2826
|
+
"additionalProperties": false,
|
|
2827
|
+
"properties": {
|
|
2828
|
+
"name_en": {
|
|
2829
|
+
"description": "平台标识(= kw_platform 值)",
|
|
2830
|
+
"title": "Name En",
|
|
2831
|
+
"type": "string"
|
|
2832
|
+
},
|
|
2833
|
+
"name": {
|
|
2834
|
+
"description": "平台中文名",
|
|
2835
|
+
"title": "Name",
|
|
2836
|
+
"type": "string"
|
|
2837
|
+
},
|
|
2838
|
+
"description": {
|
|
2839
|
+
"default": "",
|
|
2840
|
+
"description": "平台描述",
|
|
2841
|
+
"title": "Description",
|
|
2842
|
+
"type": "string"
|
|
2843
|
+
},
|
|
2844
|
+
"index_prefix": {
|
|
2845
|
+
"default": "",
|
|
2846
|
+
"description": "索引前缀(索引名解析用)",
|
|
2847
|
+
"title": "Index Prefix",
|
|
2848
|
+
"type": "string"
|
|
2849
|
+
},
|
|
2850
|
+
"time_pattern": {
|
|
2851
|
+
"default": "",
|
|
2852
|
+
"description": "索引时间分片模式(如 yyyyMM)",
|
|
2853
|
+
"title": "Time Pattern",
|
|
2854
|
+
"type": "string"
|
|
2855
|
+
}
|
|
2856
|
+
},
|
|
2857
|
+
"required": [
|
|
2858
|
+
"name_en",
|
|
2859
|
+
"name"
|
|
2860
|
+
],
|
|
2861
|
+
"title": "Platform",
|
|
2862
|
+
"type": "object"
|
|
2863
|
+
}
|
|
2864
|
+
},
|
|
2865
|
+
"additionalProperties": false,
|
|
2866
|
+
"properties": {
|
|
2867
|
+
"items": {
|
|
2868
|
+
"description": "元数据平台列表,name_en 填 platform_site.platform",
|
|
2869
|
+
"items": {
|
|
2870
|
+
"$ref": "#/$defs/Platform"
|
|
2871
|
+
},
|
|
2872
|
+
"title": "Items",
|
|
2873
|
+
"type": "array"
|
|
2874
|
+
},
|
|
2875
|
+
"total": {
|
|
2876
|
+
"description": "平台总数",
|
|
2877
|
+
"title": "Total",
|
|
2878
|
+
"type": "integer"
|
|
2879
|
+
}
|
|
2880
|
+
},
|
|
2881
|
+
"required": [
|
|
2882
|
+
"items",
|
|
2883
|
+
"total"
|
|
2884
|
+
],
|
|
2885
|
+
"title": "SubPlatformList",
|
|
2886
|
+
"type": "object"
|
|
2887
|
+
},
|
|
2888
|
+
"flags": [],
|
|
2889
|
+
"transport": {
|
|
2890
|
+
"method": "POST",
|
|
2891
|
+
"path": "/subscription/list_platforms",
|
|
2892
|
+
"send": "args"
|
|
2893
|
+
},
|
|
2894
|
+
"errors": [
|
|
2895
|
+
"auth_error",
|
|
2896
|
+
"validation",
|
|
2897
|
+
"api_error",
|
|
2898
|
+
"network",
|
|
2899
|
+
"internal"
|
|
2900
|
+
]
|
|
2901
|
+
},
|
|
2532
2902
|
{
|
|
2533
2903
|
"action": "list-sites",
|
|
2534
2904
|
"op": "list_sites",
|
|
2535
2905
|
"name": "subscription/list_sites",
|
|
2906
|
+
"summary": "搜索元数据站点,value 填 platform_site[].sites;原热门站点列表已改名 list_source。",
|
|
2907
|
+
"description": "搜索元数据站点,value 填 platform_site[].sites;原热门站点列表已改名 list_source。",
|
|
2908
|
+
"input_schema": {
|
|
2909
|
+
"additionalProperties": false,
|
|
2910
|
+
"properties": {
|
|
2911
|
+
"keyword": {
|
|
2912
|
+
"anyOf": [
|
|
2913
|
+
{
|
|
2914
|
+
"maxLength": 64,
|
|
2915
|
+
"type": "string"
|
|
2916
|
+
},
|
|
2917
|
+
{
|
|
2918
|
+
"type": "null"
|
|
2919
|
+
}
|
|
2920
|
+
],
|
|
2921
|
+
"default": null,
|
|
2922
|
+
"description": "按站点中文名或编码搜索,建议传关键词收窄结果",
|
|
2923
|
+
"title": "Keyword"
|
|
2924
|
+
}
|
|
2925
|
+
},
|
|
2926
|
+
"title": "SubListSitesInput",
|
|
2927
|
+
"type": "object"
|
|
2928
|
+
},
|
|
2929
|
+
"output_schema": {
|
|
2930
|
+
"$defs": {
|
|
2931
|
+
"Site": {
|
|
2932
|
+
"additionalProperties": false,
|
|
2933
|
+
"properties": {
|
|
2934
|
+
"name": {
|
|
2935
|
+
"description": "站点中文名",
|
|
2936
|
+
"title": "Name",
|
|
2937
|
+
"type": "string"
|
|
2938
|
+
},
|
|
2939
|
+
"value": {
|
|
2940
|
+
"description": "ES 来源字段值(如 douyin.com);站点目录即字典,value_source=none",
|
|
2941
|
+
"title": "Value",
|
|
2942
|
+
"type": "string"
|
|
2943
|
+
},
|
|
2944
|
+
"is_key_site": {
|
|
2945
|
+
"default": false,
|
|
2946
|
+
"description": "是否重点站点",
|
|
2947
|
+
"title": "Is Key Site",
|
|
2948
|
+
"type": "boolean"
|
|
2949
|
+
}
|
|
2950
|
+
},
|
|
2951
|
+
"required": [
|
|
2952
|
+
"name",
|
|
2953
|
+
"value"
|
|
2954
|
+
],
|
|
2955
|
+
"title": "Site",
|
|
2956
|
+
"type": "object"
|
|
2957
|
+
}
|
|
2958
|
+
},
|
|
2959
|
+
"additionalProperties": false,
|
|
2960
|
+
"properties": {
|
|
2961
|
+
"items": {
|
|
2962
|
+
"description": "元数据全局站点列表,value 填 platform_site.sites;不包含平台归属,保存时校验对应关系",
|
|
2963
|
+
"items": {
|
|
2964
|
+
"$ref": "#/$defs/Site"
|
|
2965
|
+
},
|
|
2966
|
+
"title": "Items",
|
|
2967
|
+
"type": "array"
|
|
2968
|
+
},
|
|
2969
|
+
"total": {
|
|
2970
|
+
"description": "命中站点总数",
|
|
2971
|
+
"title": "Total",
|
|
2972
|
+
"type": "integer"
|
|
2973
|
+
}
|
|
2974
|
+
},
|
|
2975
|
+
"required": [
|
|
2976
|
+
"items",
|
|
2977
|
+
"total"
|
|
2978
|
+
],
|
|
2979
|
+
"title": "SubSiteList",
|
|
2980
|
+
"type": "object"
|
|
2981
|
+
},
|
|
2982
|
+
"flags": [
|
|
2983
|
+
{
|
|
2984
|
+
"flag": "--keyword",
|
|
2985
|
+
"field": "keyword",
|
|
2986
|
+
"type": "string",
|
|
2987
|
+
"required": false,
|
|
2988
|
+
"desc": "按站点中文名或编码搜索,建议传关键词收窄结果"
|
|
2989
|
+
}
|
|
2990
|
+
],
|
|
2991
|
+
"transport": {
|
|
2992
|
+
"method": "POST",
|
|
2993
|
+
"path": "/subscription/list_sites",
|
|
2994
|
+
"send": "args"
|
|
2995
|
+
},
|
|
2996
|
+
"errors": [
|
|
2997
|
+
"auth_error",
|
|
2998
|
+
"validation",
|
|
2999
|
+
"api_error",
|
|
3000
|
+
"network",
|
|
3001
|
+
"internal"
|
|
3002
|
+
]
|
|
3003
|
+
},
|
|
3004
|
+
{
|
|
3005
|
+
"action": "list-source",
|
|
3006
|
+
"op": "list_source",
|
|
3007
|
+
"name": "subscription/list_source",
|
|
2536
3008
|
"summary": "列出可订阅站点(中文站点名)—— job_create / job_update 的 source 只能取这里的值。",
|
|
2537
3009
|
"description": "列出可订阅站点(中文站点名)—— job_create / job_update 的 source 只能取这里的值。",
|
|
2538
3010
|
"input_schema": {
|
|
@@ -2562,13 +3034,13 @@
|
|
|
2562
3034
|
"items",
|
|
2563
3035
|
"total"
|
|
2564
3036
|
],
|
|
2565
|
-
"title": "
|
|
3037
|
+
"title": "SubSourceList",
|
|
2566
3038
|
"type": "object"
|
|
2567
3039
|
},
|
|
2568
3040
|
"flags": [],
|
|
2569
3041
|
"transport": {
|
|
2570
3042
|
"method": "POST",
|
|
2571
|
-
"path": "/subscription/
|
|
3043
|
+
"path": "/subscription/list_source",
|
|
2572
3044
|
"send": "args"
|
|
2573
3045
|
},
|
|
2574
3046
|
"errors": [
|
|
@@ -2657,6 +3129,33 @@
|
|
|
2657
3129
|
"title": "OctoTarget",
|
|
2658
3130
|
"type": "object"
|
|
2659
3131
|
},
|
|
3132
|
+
"PlatformSite": {
|
|
3133
|
+
"additionalProperties": false,
|
|
3134
|
+
"properties": {
|
|
3135
|
+
"platform": {
|
|
3136
|
+
"description": "平台编码,取 list_platforms 的 name_en",
|
|
3137
|
+
"minLength": 1,
|
|
3138
|
+
"title": "Platform",
|
|
3139
|
+
"type": "string"
|
|
3140
|
+
},
|
|
3141
|
+
"sites": {
|
|
3142
|
+
"description": "站点编码数组,取 list_sites 的 value;[\"*\"] 表示该平台全部站点,不可混用",
|
|
3143
|
+
"items": {
|
|
3144
|
+
"minLength": 1,
|
|
3145
|
+
"type": "string"
|
|
3146
|
+
},
|
|
3147
|
+
"minItems": 1,
|
|
3148
|
+
"title": "Sites",
|
|
3149
|
+
"type": "array"
|
|
3150
|
+
}
|
|
3151
|
+
},
|
|
3152
|
+
"required": [
|
|
3153
|
+
"platform",
|
|
3154
|
+
"sites"
|
|
3155
|
+
],
|
|
3156
|
+
"title": "PlatformSite",
|
|
3157
|
+
"type": "object"
|
|
3158
|
+
},
|
|
2660
3159
|
"SftpTarget": {
|
|
2661
3160
|
"additionalProperties": false,
|
|
2662
3161
|
"description": "sftp(本期):把导出文件上传到 SFTP 远端目录。\n目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task\n重跑多少次,远端路径与文件名都不变。",
|
|
@@ -2736,6 +3235,33 @@
|
|
|
2736
3235
|
"SubJobCreateInput": {
|
|
2737
3236
|
"additionalProperties": false,
|
|
2738
3237
|
"properties": {
|
|
3238
|
+
"source": {
|
|
3239
|
+
"description": "历史热门站点中文名数组,取 list_source;与 platform_site 必须二选一",
|
|
3240
|
+
"items": {
|
|
3241
|
+
"minLength": 1,
|
|
3242
|
+
"type": "string"
|
|
3243
|
+
},
|
|
3244
|
+
"minItems": 1,
|
|
3245
|
+
"title": "Source",
|
|
3246
|
+
"type": "array"
|
|
3247
|
+
},
|
|
3248
|
+
"platform_site": {
|
|
3249
|
+
"anyOf": [
|
|
3250
|
+
{
|
|
3251
|
+
"items": {
|
|
3252
|
+
"$ref": "#/$defs/PlatformSite"
|
|
3253
|
+
},
|
|
3254
|
+
"minItems": 1,
|
|
3255
|
+
"type": "array"
|
|
3256
|
+
},
|
|
3257
|
+
{
|
|
3258
|
+
"type": "null"
|
|
3259
|
+
}
|
|
3260
|
+
],
|
|
3261
|
+
"default": null,
|
|
3262
|
+
"description": "元数据平台站点组合;platform 取 list_platforms.name_en,sites 取 list_sites.value;与 source 二选一",
|
|
3263
|
+
"title": "Platform Site"
|
|
3264
|
+
},
|
|
2739
3265
|
"confirmed": {
|
|
2740
3266
|
"default": false,
|
|
2741
3267
|
"description": "是否已确认继续并同意系统超限处理规则;超量时默认拒绝,true 允许保存但仍按上限截断;不跳过其他校验,不保存到 job,TopN 不适用",
|
|
@@ -2759,16 +3285,6 @@
|
|
|
2759
3285
|
"title": "Rule Ids",
|
|
2760
3286
|
"type": "array"
|
|
2761
3287
|
},
|
|
2762
|
-
"source": {
|
|
2763
|
-
"description": "站点数组,至少 1 个;只能取已配置站点",
|
|
2764
|
-
"items": {
|
|
2765
|
-
"minLength": 1,
|
|
2766
|
-
"type": "string"
|
|
2767
|
-
},
|
|
2768
|
-
"minItems": 1,
|
|
2769
|
-
"title": "Source",
|
|
2770
|
-
"type": "array"
|
|
2771
|
-
},
|
|
2772
3288
|
"published": {
|
|
2773
3289
|
"description": "**发布时间**口径(必填,主口径 —— 它同时决定查哪个月的索引、怎么拆分片,所以不能缺省)。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。",
|
|
2774
3290
|
"pattern": "^(?:T-\\d+~T-\\d+|T-\\d+@(?:[01]\\d|2[0-3]):[0-5]\\d~T-\\d+@(?:[01]\\d|2[0-3]):[0-5]\\d)$",
|
|
@@ -2885,7 +3401,6 @@
|
|
|
2885
3401
|
"required": [
|
|
2886
3402
|
"name",
|
|
2887
3403
|
"rule_ids",
|
|
2888
|
-
"source",
|
|
2889
3404
|
"published",
|
|
2890
3405
|
"frequency"
|
|
2891
3406
|
],
|
|
@@ -2954,9 +3469,26 @@
|
|
|
2954
3469
|
}
|
|
2955
3470
|
],
|
|
2956
3471
|
"default": null,
|
|
2957
|
-
"description": "
|
|
3472
|
+
"description": "历史热门站点中文名数组,取 list_source;整体替换范围,与 platform_site 互斥",
|
|
2958
3473
|
"title": "Source"
|
|
2959
3474
|
},
|
|
3475
|
+
"platform_site": {
|
|
3476
|
+
"anyOf": [
|
|
3477
|
+
{
|
|
3478
|
+
"items": {
|
|
3479
|
+
"$ref": "#/$defs/PlatformSite"
|
|
3480
|
+
},
|
|
3481
|
+
"minItems": 1,
|
|
3482
|
+
"type": "array"
|
|
3483
|
+
},
|
|
3484
|
+
{
|
|
3485
|
+
"type": "null"
|
|
3486
|
+
}
|
|
3487
|
+
],
|
|
3488
|
+
"default": null,
|
|
3489
|
+
"description": "元数据平台站点组合;整体替换范围,与 source 互斥;不传保持原范围",
|
|
3490
|
+
"title": "Platform Site"
|
|
3491
|
+
},
|
|
2960
3492
|
"published": {
|
|
2961
3493
|
"anyOf": [
|
|
2962
3494
|
{
|
|
@@ -3601,7 +4133,7 @@
|
|
|
3601
4133
|
],
|
|
3602
4134
|
"skill": {
|
|
3603
4135
|
"slug": "social-neuron-subscription",
|
|
3604
|
-
"description": "使用场景:定时导出/订阅推送/定期拉数/大批量出文件——需异步产出文件并下载时用能力:按魔方规则、定时 cron 或手动触发,把大库数据异步导出为文件,上传 octo/sftp,产出下载 url 供调用方轮询拉取;可创建/修改/列出/删除/触发订阅 job、翻页查询 task;普通批量创建/取数配置修改有数据量预检,可选 precheck 只读预览;超量先提示调整参数或征求用户确认,明确同意系统超限规则后才以 confirmed=true
|
|
4136
|
+
"description": "使用场景:定时导出/订阅推送/定期拉数/大批量出文件——需异步产出文件并下载时用能力:按魔方规则、定时 cron 或手动触发,把大库数据异步导出为文件,上传 octo/sftp,产出下载 url 供调用方轮询拉取;可创建/修改/列出/删除/触发订阅 job、翻页查询 task;普通批量创建/取数配置修改有数据量预检,可选 precheck 只读预览;超量先提示调整参数或征求用户确认,明确同意系统超限规则后才以 confirmed=true 重提,导出仍按上限截断;订阅范围二选一:热门站点用 source(list_source 返回的中文名,按已有配置确定范围);指定平台站点用 platform_site(platform 取 list_platforms.name_en,sites 取 list_sites.value),适用于指定平台下站点、不同平台各自站点或整个平台,sites=[\"*\"] 表示该平台全部站点;范围选择与是否 TopN 独立,两种范围均支持普通批量或 TopN。发现接口:list_source / list_platforms / list_sites 对齐范围,list_fields 对齐字段;原 list_sites 的热门站点列表已改名 list_source,新 list_sites 返回元数据站点对象;get_field_values 给出枚举值 / 编码值的中文字典,仅在用户明确要求把导出的码值换成中文时按需取用(换值由调用方拿到数据后自行完成,系统不自动回显)。概念:job=订阅定义(数据范围+频率+投递方式,系统按频率生成 cron);task=job 的一次执行,产物与下载地址落在 file_info。边界:①每 token 生效 job 默认≤10;②两种取数模式二选一:**默认**给命中条件的全部数据、size 默认/最大 50 万、多规则各自拉(同时命中多条规则的数据会重复出现);传 **top** 则不改筛选条件、只在同一批命中里按指定字段跨全部日期/站点/规则排序后取前 N 条、size 默认 1000 最大 10000、多规则 OR 合并(同时命中多条的只出一份),排序字段只能是 keyword/long/double/date 类型;这与平台自身的热搜/热门榜单无关;③导出数据的 kw_ruleId 字段**恒为数组**(列出本行命中的 rule_id;此前是字符串,按老格式解析的下游需改);④投递仅 octo/sftp(kafka 规划中,暂不支持),无主动通知、须轮询 task 取结果。⑤如果拉取不到数据则不会产生文件上传,也就没有文件url信息",
|
|
3605
4137
|
"actions": [
|
|
3606
4138
|
"get-field-values",
|
|
3607
4139
|
"job-create",
|
|
@@ -3610,7 +4142,9 @@
|
|
|
3610
4142
|
"job-trigger",
|
|
3611
4143
|
"job-update",
|
|
3612
4144
|
"list-fields",
|
|
4145
|
+
"list-platforms",
|
|
3613
4146
|
"list-sites",
|
|
4147
|
+
"list-source",
|
|
3614
4148
|
"precheck",
|
|
3615
4149
|
"task-list"
|
|
3616
4150
|
]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@social-data/social-neuron-subscription",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.28",
|
|
4
4
|
"description": "Social Neuron subscription 能力 CLI —— 一能力一命令(social-neuron-subscription),薄客户端直达 /subscription/{op}。",
|
|
5
5
|
"bin": {
|
|
6
6
|
"social-neuron-subscription": "bin/cli.js"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: social-neuron-subscription
|
|
3
|
-
description: "使用场景:定时导出/订阅推送/定期拉数/大批量出文件——需异步产出文件并下载时用能力:按魔方规则、定时 cron 或手动触发,把大库数据异步导出为文件,上传 octo/sftp,产出下载 url 供调用方轮询拉取;可创建/修改/列出/删除/触发订阅 job、翻页查询 task;普通批量创建/取数配置修改有数据量预检,可选 precheck 只读预览;超量先提示调整参数或征求用户确认,明确同意系统超限规则后才以 confirmed=true
|
|
3
|
+
description: "使用场景:定时导出/订阅推送/定期拉数/大批量出文件——需异步产出文件并下载时用能力:按魔方规则、定时 cron 或手动触发,把大库数据异步导出为文件,上传 octo/sftp,产出下载 url 供调用方轮询拉取;可创建/修改/列出/删除/触发订阅 job、翻页查询 task;普通批量创建/取数配置修改有数据量预检,可选 precheck 只读预览;超量先提示调整参数或征求用户确认,明确同意系统超限规则后才以 confirmed=true 重提,导出仍按上限截断;订阅范围二选一:热门站点用 source(list_source 返回的中文名,按已有配置确定范围);指定平台站点用 platform_site(platform 取 list_platforms.name_en,sites 取 list_sites.value),适用于指定平台下站点、不同平台各自站点或整个平台,sites=["*"] 表示该平台全部站点;范围选择与是否 TopN 独立,两种范围均支持普通批量或 TopN。发现接口:list_source / list_platforms / list_sites 对齐范围,list_fields 对齐字段;原 list_sites 的热门站点列表已改名 list_source,新 list_sites 返回元数据站点对象;get_field_values 给出枚举值 / 编码值的中文字典,仅在用户明确要求把导出的码值换成中文时按需取用(换值由调用方拿到数据后自行完成,系统不自动回显)。概念:job=订阅定义(数据范围+频率+投递方式,系统按频率生成 cron);task=job 的一次执行,产物与下载地址落在 file_info。边界:①每 token 生效 job 默认≤10;②两种取数模式二选一:**默认**给命中条件的全部数据、size 默认/最大 50 万、多规则各自拉(同时命中多条规则的数据会重复出现);传 **top** 则不改筛选条件、只在同一批命中里按指定字段跨全部日期/站点/规则排序后取前 N 条、size 默认 1000 最大 10000、多规则 OR 合并(同时命中多条的只出一份),排序字段只能是 keyword/long/double/date 类型;这与平台自身的热搜/热门榜单无关;③导出数据的 kw_ruleId 字段**恒为数组**(列出本行命中的 rule_id;此前是字符串,按老格式解析的下游需改);④投递仅 octo/sftp(kafka 规划中,暂不支持),无主动通知、须轮询 task 取结果。⑤如果拉取不到数据则不会产生文件上传,也就没有文件url信息"
|
|
4
4
|
metadata:
|
|
5
5
|
openclaw:
|
|
6
6
|
requires: { bins: ['social-neuron-subscription'], skills: [] }
|
|
@@ -62,7 +62,7 @@ metadata:
|
|
|
62
62
|
两条路径的保存条件和导出上限相同。跳过独立预检不会跳过服务端内部检查,也不表示同意超限处理。
|
|
63
63
|
|
|
64
64
|
```
|
|
65
|
-
准备普通批量创建参数 / 局部修改参数,必要时用 list-
|
|
65
|
+
准备普通批量创建参数 / 局部修改参数,必要时用 list-source / list-fields 对齐合法取值
|
|
66
66
|
↓
|
|
67
67
|
创建或修改前说明可选预检及上述区别,按用户选择走:
|
|
68
68
|
├─ 先预检 → precheck(create/update)
|
|
@@ -122,17 +122,45 @@ TopN 维持原样,不进入本次数据量预检确认流程。
|
|
|
122
122
|
`count_relation=gte` 表示“至少”命中,不是精确总量。三个时间维度见 windows。
|
|
123
123
|
预检只反映当前窗口,不代表未来每次执行量。
|
|
124
124
|
|
|
125
|
-
###
|
|
125
|
+
### 四、选择订阅范围:热门站点 / 指定平台站点
|
|
126
126
|
|
|
127
|
-
|
|
127
|
+
先按用户需要的订阅范围选择参数,再查询对应的合法取值:
|
|
128
128
|
|
|
129
|
-
|
|
|
129
|
+
| 使用场景 | 选择参数 | 行为 |
|
|
130
130
|
|---|---|---|
|
|
131
|
-
|
|
|
132
|
-
|
|
|
131
|
+
| 热门站点:用户要订阅已配置的常用站点,如抖音、微博,不需要指定平台归属 | `source` | 按中文热门站点名选择,平台与实际站点范围由已有配置确定 |
|
|
132
|
+
| 指定平台站点:用户明确指定某个平台下的站点、不同平台各自的站点,或整个平台;需要选择热门站点列表以外的站点 | `platform_site` | 每组明确绑定平台编码与站点编码,可分别指定多个平台的站点范围 |
|
|
133
133
|
|
|
134
|
-
|
|
135
|
-
|
|
134
|
+
例如“订阅抖音和微博”可先查 list-source,使用 source;“订阅新闻平台中的腾讯站点”使用
|
|
135
|
+
platform_site;“订阅新闻整个平台”也使用 platform_site,并显式填写 sites=["*"]。
|
|
136
|
+
热门站点模式仅限 list-source 中已有配置的站点;指定平台站点模式从元数据查询平台和站点。
|
|
137
|
+
不要仅凭中文站点名猜测平台编码,也不要把不同平台的站点合并成没有对应关系的平铺数组。
|
|
138
|
+
|
|
139
|
+
**范围选择与 TopN 是两个独立选择**:source / platform_site 决定从哪里取;top 决定命中后
|
|
140
|
+
是否只取排序前 N 条。两种范围均可用于普通批量或 TopN。“热门站点”指已配置的常用站点,
|
|
141
|
+
不表示热门内容、热搜榜或按互动量排序;用户未要求排序前 N 条时,不自动添加 top。
|
|
142
|
+
|
|
143
|
+
创建时 `source` 与 `platform_site` 必须且只能提供一种。旧调用和历史 job 的 source 含义不变。
|
|
144
|
+
|
|
145
|
+
| 模式 | 发现命令 | 参数取值 |
|
|
146
|
+
|---|---|---|
|
|
147
|
+
| 热门站点 | `list-source` | 中文站点名原样填顶层 `--source` |
|
|
148
|
+
| 指定平台站点 | `list-platforms`,`list-sites --keyword 腾讯` | 平台 name_en 填 platform_site[].platform;站点 value 填 platform_site[].sites |
|
|
149
|
+
| 导出字段 | `list-fields`,传与 job 相同的 source 或 platform_site | name_en 填 fields;仅 selectable=true 的业务字段可选 |
|
|
150
|
+
|
|
151
|
+
**历史接口变化**:原 `list-sites`(返回中文热门站点数组)已改名 `list-source`;
|
|
152
|
+
新的 `list-sites` 返回元数据站点对象 name/value/is_key_site,value 是站点编码,不是中文名。
|
|
153
|
+
旧调用方获取热门站点时必须改调 list-source;已有 source 创建请求不需要改动。
|
|
154
|
+
|
|
155
|
+
平台站点示例:`--platform-site '[{"platform":"news","sites":["toutiao.com","qq.com"]}]'`。
|
|
156
|
+
每组平台与站点绑定,多组 OR 合并;平台和站点的实际归属由服务端校验。
|
|
157
|
+
整个平台显式传 `"sites":["*"]`,不能混入具体站点;不接受空数组或省略 sites。
|
|
158
|
+
list-sites 是全局站点目录,不带平台归属,不能把站点搜索命中当成属于任意平台的证明。
|
|
159
|
+
站点目录可能有数万条,优先传 keyword 搜索,不拉全量作为输入枚举。
|
|
160
|
+
|
|
161
|
+
顶层 source 只接受 list-source 的中文热门站点名,不能填写 list-sites.value。
|
|
162
|
+
更新不传范围则保持原模式;传 source 或 platform_site 即整体替换范围并切换模式,不能同时传。
|
|
163
|
+
字段近千,按需用 list-fields --keyword 情感 收窄,并传与创建/修改相同的范围。
|
|
136
164
|
|
|
137
165
|
### 五、三个时间口径别搞混
|
|
138
166
|
|
|
@@ -255,7 +283,7 @@ json 格式下就是 JSON 数组;csv / excel 下这一列落成紧凑 JSON 字
|
|
|
255
283
|
- **拉不到数据就不会有文件**,`file_info` 里也就没有 url —— 这不是失败,是没命中。
|
|
256
284
|
- 普通批量 `--size` 默认/最大 **50 万行**,超限按服务端提示处理;传了 `--top` 则默认 **1000**、最大 **10000**,超出报错。
|
|
257
285
|
- 每个 token 生效的 job 默认 **≤10 个**,满了要先 `job-delete` 或停用。
|
|
258
|
-
- `--source` 只能填**已配置站点的中文名**(用 `list-
|
|
286
|
+
- `--source` 只能填**已配置站点的中文名**(用 `list-source` 查);写 `douyin.com` 这类域名会被拒。
|
|
259
287
|
- 投递目标本期只支持 **octo / sftp**(kafka 规划中);省略 `--target` 默认 octo。
|
|
260
288
|
- 传了 `--top` 时同时命中多条规则的数据只出现一份(`kw_ruleId` 里列出全部命中的规则);
|
|
261
289
|
不传时每条规则各出一份。按规则分组统计前先想清楚要哪种。
|
|
@@ -263,11 +291,33 @@ json 格式下就是 JSON 数组;csv / excel 下这一列落成紧凑 JSON 字
|
|
|
263
291
|
|
|
264
292
|
## 示例
|
|
265
293
|
|
|
294
|
+
### 热门站点:订阅已配置的抖音和微博
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
# 查询中文热门站点名,确认用户选择的站点在返回列表中
|
|
298
|
+
social-neuron-subscription list-source
|
|
299
|
+
social-neuron-subscription job-create --name 热门站点每日订阅 --rule-ids '["12345"]' --source '["抖音","微博"]' --published 'T-1~T-1' --frequency '每天9点' -y
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
> 使用 source,由已有站点配置确定平台及站点范围;不同时传 platform_site。这是普通批量订阅,不表示只取热门内容;超量按预检与用户确认流程处理。
|
|
303
|
+
|
|
304
|
+
### 指定平台站点:订阅新闻平台中的腾讯站点
|
|
305
|
+
|
|
306
|
+
```bash
|
|
307
|
+
# 平台 name_en 填 platform,站点 value 填 sites;实际归属由服务端校验
|
|
308
|
+
social-neuron-subscription list-platforms
|
|
309
|
+
social-neuron-subscription list-sites --keyword 腾讯
|
|
310
|
+
social-neuron-subscription list-fields --platform-site '[{"platform":"news","sites":["qq.com"]}]' --keyword 标题
|
|
311
|
+
social-neuron-subscription job-create --name 指定平台站点每日订阅 --rule-ids '["12345"]' --platform-site '[{"platform":"news","sites":["qq.com"]}]' --published 'T-1~T-1' --frequency '每天9点' -y
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
> 使用 platform_site,不同时传 source;整个平台改为 sites=["*"]。多个平台分别写一组,保留各自的站点对应关系。同样支持普通批量或 TopN;只有用户要求排序前 N 条时才加 top,普通批量超量按确认流程处理。
|
|
315
|
+
|
|
266
316
|
### 选择不单独预检:直接创建,成功后手动跑一次
|
|
267
317
|
|
|
268
318
|
```bash
|
|
269
319
|
# 1) 先看有哪些站点可订阅(--source 填的是中文站点名)
|
|
270
|
-
social-neuron-subscription list-
|
|
320
|
+
social-neuron-subscription list-source
|
|
271
321
|
|
|
272
322
|
# 2) 再看该站点有哪些字段可导出(name_en 填 --fields)
|
|
273
323
|
social-neuron-subscription list-fields --source '["抖音"]' --keyword 情感
|
|
@@ -419,10 +469,11 @@ social-neuron-subscription job-update --job-id 1001 --active false -y
|
|
|
419
469
|
|
|
420
470
|
| flag | 字段 | 类型 | 必填 | 约束 | 说明 |
|
|
421
471
|
|---|---|---|---|---|---|
|
|
472
|
+
| --source | source | list[string] | 否 | minItems=1, minLen=1 | 历史热门站点中文名数组,取 list_source;与 platform_site 必须二选一 |
|
|
473
|
+
| --platform-site | platform_site | list[PlatformSite] | 否 | minItems=1 | 元数据平台站点组合;platform 取 list_platforms.name_en,sites 取 list_sites.value;与 source 二选一 |
|
|
422
474
|
| --confirmed | confirmed | boolean | 否 | - | 是否已确认继续并同意系统超限处理规则;超量时默认拒绝,true 允许保存但仍按上限截断;不跳过其他校验,不保存到 job,TopN 不适用 |
|
|
423
475
|
| --name | name | string | 是 | minLen=1, maxLen=128 | job 名称,同一凭证(token)下唯一 |
|
|
424
476
|
| --rule-ids | rule_ids | list[string] | 是 | minItems=1, minLen=1 | 魔方规则ID数组,至少 1 个 |
|
|
425
|
-
| --source | source | list[string] | 是 | minItems=1, minLen=1 | 站点数组,至少 1 个;只能取已配置站点 |
|
|
426
477
|
| --published | published | string | 是 | - | **发布时间**口径(必填,主口径 —— 它同时决定查哪个月的索引、怎么拆分片,所以不能缺省)。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。 |
|
|
427
478
|
| --idate | idate | string | 否 | - | **入库时间**口径(选填,不传=该维度不过滤)。在发布时间窗**之内**再 AND 一层:入库时间落在本区间的数据。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。 |
|
|
428
479
|
| --udate | udate | string | 否 | - | **更新时间**口径(选填,不传=该维度不过滤)。在发布时间窗**之内**再 AND 一层:更新时间落在本区间的数据。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。 |
|
|
@@ -448,6 +499,13 @@ social-neuron-subscription job-update --job-id 1001 --active false -y
|
|
|
448
499
|
| type | string | 是 | - | 固定 octo |
|
|
449
500
|
| format | enum(csv、excel、json) | 否 | - | 文件格式:csv/excel/json(默认 json) |
|
|
450
501
|
|
|
502
|
+
**对象 `PlatformSite`**
|
|
503
|
+
|
|
504
|
+
| 键 | 类型 | 必填 | 约束 | 说明 |
|
|
505
|
+
|---|---|---|---|---|
|
|
506
|
+
| platform | string | 是 | minLen=1 | 平台编码,取 list_platforms 的 name_en |
|
|
507
|
+
| sites | list[string] | 是 | minItems=1, minLen=1 | 站点编码数组,取 list_sites 的 value;["*"] 表示该平台全部站点,不可混用 |
|
|
508
|
+
|
|
451
509
|
**对象 `SftpTarget`** —— sftp(本期):把导出文件上传到 SFTP 远端目录。
|
|
452
510
|
目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task
|
|
453
511
|
重跑多少次,远端路径与文件名都不变。
|
|
@@ -479,7 +537,8 @@ social-neuron-subscription job-update --job-id 1001 --active false -y
|
|
|
479
537
|
| job_id | integer | 是 | - | job ID |
|
|
480
538
|
| name | string | 是 | - | job 名称,同一凭证(token)下唯一 |
|
|
481
539
|
| rule_ids | list[string] | 是 | - | 魔方规则ID数组 |
|
|
482
|
-
| source | list[string] | 是 | - |
|
|
540
|
+
| source | list[string] | 是 | - | 历史热门站点中文名数组;元数据模式为空数组 |
|
|
541
|
+
| platform_site | list[PlatformSite] | 否 | - | 元数据平台站点组合;历史热门站点模式为 null |
|
|
483
542
|
| published | string | 是 | - | 发布时间口径(相对,支持按天或按分钟);触发时按 task_time 折算成绝对时间区间 |
|
|
484
543
|
| idate | string | 是 | - | 入库时间口径(相对,按天或按分钟);null=该维度不过滤 |
|
|
485
544
|
| udate | string | 是 | - | 更新时间口径(相对,按天或按分钟);null=该维度不过滤 |
|
|
@@ -494,6 +553,13 @@ social-neuron-subscription job-update --job-id 1001 --active false -y
|
|
|
494
553
|
| created_at | string | 是 | - | 创建时间(ISO8601,UTC+8) |
|
|
495
554
|
| updated_at | string | 是 | - | 更新时间(ISO8601,UTC+8) |
|
|
496
555
|
|
|
556
|
+
**对象 `PlatformSite`**
|
|
557
|
+
|
|
558
|
+
| 键 | 类型 | 必填 | 约束 | 说明 |
|
|
559
|
+
|---|---|---|---|---|
|
|
560
|
+
| platform | string | 是 | minLen=1 | 平台编码,取 list_platforms 的 name_en |
|
|
561
|
+
| sites | list[string] | 是 | minItems=1, minLen=1 | 站点编码数组,取 list_sites 的 value;["*"] 表示该平台全部站点,不可混用 |
|
|
562
|
+
|
|
497
563
|
**对象 `PrecheckResult`**
|
|
498
564
|
|
|
499
565
|
| 键 | 类型 | 必填 | 约束 | 说明 |
|
|
@@ -508,7 +574,7 @@ social-neuron-subscription job-update --job-id 1001 --active false -y
|
|
|
508
574
|
| checked | boolean | 否 | - | 是否执行数据量统计;TopN 为 false |
|
|
509
575
|
| message | string | 是 | - | 数量提示及调整参数或确认继续的说明 |
|
|
510
576
|
|
|
511
|
-
示例:social-neuron-subscription job-create --name <v> --rule-ids '["a","b"]' --
|
|
577
|
+
示例:social-neuron-subscription job-create --name <v> --rule-ids '["a","b"]' --published <v> --frequency <v>
|
|
512
578
|
|
|
513
579
|
### social-neuron-subscription job-delete
|
|
514
580
|
软删除本人 job:置 active=0(记录保留,可 job_update 恢复)。
|
|
@@ -553,7 +619,8 @@ social-neuron-subscription job-update --job-id 1001 --active false -y
|
|
|
553
619
|
| job_id | integer | 是 | - | job ID |
|
|
554
620
|
| name | string | 是 | - | job 名称,同一凭证(token)下唯一 |
|
|
555
621
|
| rule_ids | list[string] | 是 | - | 魔方规则ID数组 |
|
|
556
|
-
| source | list[string] | 是 | - |
|
|
622
|
+
| source | list[string] | 是 | - | 历史热门站点中文名数组;元数据模式为空数组 |
|
|
623
|
+
| platform_site | list[PlatformSite] | 否 | - | 元数据平台站点组合;历史热门站点模式为 null |
|
|
557
624
|
| published | string | 是 | - | 发布时间口径(相对,支持按天或按分钟);触发时按 task_time 折算成绝对时间区间 |
|
|
558
625
|
| idate | string | 是 | - | 入库时间口径(相对,按天或按分钟);null=该维度不过滤 |
|
|
559
626
|
| udate | string | 是 | - | 更新时间口径(相对,按天或按分钟);null=该维度不过滤 |
|
|
@@ -643,7 +710,8 @@ social-neuron-subscription job-update --job-id 1001 --active false -y
|
|
|
643
710
|
| --job-id | job_id | integer | 是 | - | 目标 job |
|
|
644
711
|
| --name | name | string | 否 | minLen=1, maxLen=128 | 新名称(同一凭证下唯一) |
|
|
645
712
|
| --rule-ids | rule_ids | list[string] | 否 | minItems=1, minLen=1 | 整组全量覆盖 |
|
|
646
|
-
| --source | source | list[string] | 否 | minItems=1, minLen=1 |
|
|
713
|
+
| --source | source | list[string] | 否 | minItems=1, minLen=1 | 历史热门站点中文名数组,取 list_source;整体替换范围,与 platform_site 互斥 |
|
|
714
|
+
| --platform-site | platform_site | list[PlatformSite] | 否 | minItems=1 | 元数据平台站点组合;整体替换范围,与 source 互斥;不传保持原范围 |
|
|
647
715
|
| --published | published | string | 否 | - | **发布时间**口径(必填字段,只能改不能清)。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。 |
|
|
648
716
|
| --idate | idate | string | 否 | - | **入库时间**口径。不传=不改;传空串 ""=**清除**该维度(恢复成不过滤)。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。 |
|
|
649
717
|
| --udate | udate | string | 否 | - | **更新时间**口径。不传=不改;传空串 ""=**清除**该维度(恢复成不过滤)。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。 |
|
|
@@ -670,6 +738,13 @@ social-neuron-subscription job-update --job-id 1001 --active false -y
|
|
|
670
738
|
| type | string | 是 | - | 固定 octo |
|
|
671
739
|
| format | enum(csv、excel、json) | 否 | - | 文件格式:csv/excel/json(默认 json) |
|
|
672
740
|
|
|
741
|
+
**对象 `PlatformSite`**
|
|
742
|
+
|
|
743
|
+
| 键 | 类型 | 必填 | 约束 | 说明 |
|
|
744
|
+
|---|---|---|---|---|
|
|
745
|
+
| platform | string | 是 | minLen=1 | 平台编码,取 list_platforms 的 name_en |
|
|
746
|
+
| sites | list[string] | 是 | minItems=1, minLen=1 | 站点编码数组,取 list_sites 的 value;["*"] 表示该平台全部站点,不可混用 |
|
|
747
|
+
|
|
673
748
|
**对象 `SftpTarget`** —— sftp(本期):把导出文件上传到 SFTP 远端目录。
|
|
674
749
|
目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task
|
|
675
750
|
重跑多少次,远端路径与文件名都不变。
|
|
@@ -701,7 +776,8 @@ social-neuron-subscription job-update --job-id 1001 --active false -y
|
|
|
701
776
|
| job_id | integer | 是 | - | job ID |
|
|
702
777
|
| name | string | 是 | - | job 名称,同一凭证(token)下唯一 |
|
|
703
778
|
| rule_ids | list[string] | 是 | - | 魔方规则ID数组 |
|
|
704
|
-
| source | list[string] | 是 | - |
|
|
779
|
+
| source | list[string] | 是 | - | 历史热门站点中文名数组;元数据模式为空数组 |
|
|
780
|
+
| platform_site | list[PlatformSite] | 否 | - | 元数据平台站点组合;历史热门站点模式为 null |
|
|
705
781
|
| published | string | 是 | - | 发布时间口径(相对,支持按天或按分钟);触发时按 task_time 折算成绝对时间区间 |
|
|
706
782
|
| idate | string | 是 | - | 入库时间口径(相对,按天或按分钟);null=该维度不过滤 |
|
|
707
783
|
| udate | string | 是 | - | 更新时间口径(相对,按天或按分钟);null=该维度不过滤 |
|
|
@@ -716,6 +792,13 @@ social-neuron-subscription job-update --job-id 1001 --active false -y
|
|
|
716
792
|
| created_at | string | 是 | - | 创建时间(ISO8601,UTC+8) |
|
|
717
793
|
| updated_at | string | 是 | - | 更新时间(ISO8601,UTC+8) |
|
|
718
794
|
|
|
795
|
+
**对象 `PlatformSite`**
|
|
796
|
+
|
|
797
|
+
| 键 | 类型 | 必填 | 约束 | 说明 |
|
|
798
|
+
|---|---|---|---|---|
|
|
799
|
+
| platform | string | 是 | minLen=1 | 平台编码,取 list_platforms 的 name_en |
|
|
800
|
+
| sites | list[string] | 是 | minItems=1, minLen=1 | 站点编码数组,取 list_sites 的 value;["*"] 表示该平台全部站点,不可混用 |
|
|
801
|
+
|
|
719
802
|
**对象 `PrecheckResult`**
|
|
720
803
|
|
|
721
804
|
| 键 | 类型 | 必填 | 约束 | 说明 |
|
|
@@ -742,9 +825,17 @@ social-neuron-subscription job-update --job-id 1001 --active false -y
|
|
|
742
825
|
|
|
743
826
|
| flag | 字段 | 类型 | 必填 | 约束 | 说明 |
|
|
744
827
|
|---|---|---|---|---|---|
|
|
745
|
-
| --source | source | list[string] |
|
|
828
|
+
| --source | source | list[string] | 否 | minItems=1, minLen=1 | 历史热门站点中文名数组,取 list_source;与 platform_site 必须二选一 |
|
|
829
|
+
| --platform-site | platform_site | list[PlatformSite] | 否 | minItems=1 | 元数据平台站点组合;platform 取 list_platforms.name_en,sites 取 list_sites.value;与 source 二选一 |
|
|
746
830
|
| --keyword | keyword | string | 否 | maxLen=64 | 按字段中文名 / name_en 模糊过滤(如「情感」「互动」);不传=该站点全部字段 |
|
|
747
831
|
|
|
832
|
+
**对象 `PlatformSite`**
|
|
833
|
+
|
|
834
|
+
| 键 | 类型 | 必填 | 约束 | 说明 |
|
|
835
|
+
|---|---|---|---|---|
|
|
836
|
+
| platform | string | 是 | minLen=1 | 平台编码,取 list_platforms 的 name_en |
|
|
837
|
+
| sites | list[string] | 是 | minItems=1, minLen=1 | 站点编码数组,取 list_sites 的 value;["*"] 表示该平台全部站点,不可混用 |
|
|
838
|
+
|
|
748
839
|
**出参 `SubFieldList`**
|
|
749
840
|
|
|
750
841
|
| 字段 | 类型 | 必填 | 约束 | 说明 |
|
|
@@ -765,24 +856,77 @@ social-neuron-subscription job-update --job-id 1001 --active false -y
|
|
|
765
856
|
| is_enum | boolean | 是 | - | 值来自内置枚举(如数据类型、情感):导出列存的是枚举码;如需换成中文,再按需调 get_field_values 取字典自行替换 |
|
|
766
857
|
| is_code | boolean | 是 | - | 值是编码值(如品牌标签、品类标签):导出列存的是 code 而非中文;如需换成中文,再按需调 get_field_values 取字典自行替换 |
|
|
767
858
|
|
|
768
|
-
示例:social-neuron-subscription list-fields
|
|
859
|
+
示例:social-neuron-subscription list-fields
|
|
860
|
+
|
|
861
|
+
### social-neuron-subscription list-platforms
|
|
862
|
+
列出舆情元数据平台,name_en 填入 platform_site[].platform。
|
|
863
|
+
|
|
864
|
+
**入参**
|
|
865
|
+
|
|
866
|
+
| flag | 字段 | 类型 | 必填 | 约束 | 说明 |
|
|
867
|
+
|---|---|---|---|---|---|
|
|
868
|
+
|
|
869
|
+
**出参 `SubPlatformList`**
|
|
870
|
+
|
|
871
|
+
| 字段 | 类型 | 必填 | 约束 | 说明 |
|
|
872
|
+
|---|---|---|---|---|
|
|
873
|
+
| items | list[Platform] | 是 | - | 元数据平台列表,name_en 填 platform_site.platform |
|
|
874
|
+
| total | integer | 是 | - | 平台总数 |
|
|
875
|
+
|
|
876
|
+
**对象 `Platform`**
|
|
877
|
+
|
|
878
|
+
| 键 | 类型 | 必填 | 约束 | 说明 |
|
|
879
|
+
|---|---|---|---|---|
|
|
880
|
+
| name_en | string | 是 | - | 平台标识(= kw_platform 值) |
|
|
881
|
+
| name | string | 是 | - | 平台中文名 |
|
|
882
|
+
| description | string | 否 | - | 平台描述 |
|
|
883
|
+
| index_prefix | string | 否 | - | 索引前缀(索引名解析用) |
|
|
884
|
+
| time_pattern | string | 否 | - | 索引时间分片模式(如 yyyyMM) |
|
|
885
|
+
|
|
886
|
+
示例:social-neuron-subscription list-platforms
|
|
769
887
|
|
|
770
888
|
### social-neuron-subscription list-sites
|
|
771
|
-
|
|
889
|
+
搜索元数据站点,value 填 platform_site[].sites;原热门站点列表已改名 list_source。
|
|
772
890
|
|
|
773
891
|
**入参**
|
|
774
892
|
|
|
775
893
|
| flag | 字段 | 类型 | 必填 | 约束 | 说明 |
|
|
776
894
|
|---|---|---|---|---|---|
|
|
895
|
+
| --keyword | keyword | string | 否 | maxLen=64 | 按站点中文名或编码搜索,建议传关键词收窄结果 |
|
|
777
896
|
|
|
778
897
|
**出参 `SubSiteList`**
|
|
779
898
|
|
|
899
|
+
| 字段 | 类型 | 必填 | 约束 | 说明 |
|
|
900
|
+
|---|---|---|---|---|
|
|
901
|
+
| items | list[Site] | 是 | - | 元数据全局站点列表,value 填 platform_site.sites;不包含平台归属,保存时校验对应关系 |
|
|
902
|
+
| total | integer | 是 | - | 命中站点总数 |
|
|
903
|
+
|
|
904
|
+
**对象 `Site`**
|
|
905
|
+
|
|
906
|
+
| 键 | 类型 | 必填 | 约束 | 说明 |
|
|
907
|
+
|---|---|---|---|---|
|
|
908
|
+
| name | string | 是 | - | 站点中文名 |
|
|
909
|
+
| value | string | 是 | - | ES 来源字段值(如 douyin.com);站点目录即字典,value_source=none |
|
|
910
|
+
| is_key_site | boolean | 否 | - | 是否重点站点 |
|
|
911
|
+
|
|
912
|
+
示例:social-neuron-subscription list-sites
|
|
913
|
+
|
|
914
|
+
### social-neuron-subscription list-source
|
|
915
|
+
列出可订阅站点(中文站点名)—— job_create / job_update 的 source 只能取这里的值。
|
|
916
|
+
|
|
917
|
+
**入参**
|
|
918
|
+
|
|
919
|
+
| flag | 字段 | 类型 | 必填 | 约束 | 说明 |
|
|
920
|
+
|---|---|---|---|---|---|
|
|
921
|
+
|
|
922
|
+
**出参 `SubSourceList`**
|
|
923
|
+
|
|
780
924
|
| 字段 | 类型 | 必填 | 约束 | 说明 |
|
|
781
925
|
|---|---|---|---|---|
|
|
782
926
|
| items | list[string] | 是 | - | 中文站点名列表,即 job_create / job_update 的 source 该填的值(按配置顺序) |
|
|
783
927
|
| total | integer | 是 | - | 站点总数 |
|
|
784
928
|
|
|
785
|
-
示例:social-neuron-subscription list-
|
|
929
|
+
示例:social-neuron-subscription list-source
|
|
786
930
|
|
|
787
931
|
### social-neuron-subscription precheck
|
|
788
932
|
可选预览订阅创建/修改的数据量;正式保存会重新检查,TopN 保持原样。
|
|
@@ -799,10 +943,11 @@ social-neuron-subscription job-update --job-id 1001 --active false -y
|
|
|
799
943
|
|
|
800
944
|
| 键 | 类型 | 必填 | 约束 | 说明 |
|
|
801
945
|
|---|---|---|---|---|
|
|
946
|
+
| source | list[string] | 否 | minItems=1, minLen=1 | 历史热门站点中文名数组,取 list_source;与 platform_site 必须二选一 |
|
|
947
|
+
| platform_site | list[PlatformSite] | 否 | minItems=1 | 元数据平台站点组合;platform 取 list_platforms.name_en,sites 取 list_sites.value;与 source 二选一 |
|
|
802
948
|
| confirmed | boolean | 否 | - | 是否已确认继续并同意系统超限处理规则;超量时默认拒绝,true 允许保存但仍按上限截断;不跳过其他校验,不保存到 job,TopN 不适用 |
|
|
803
949
|
| name | string | 是 | minLen=1, maxLen=128 | job 名称,同一凭证(token)下唯一 |
|
|
804
950
|
| rule_ids | list[string] | 是 | minItems=1, minLen=1 | 魔方规则ID数组,至少 1 个 |
|
|
805
|
-
| source | list[string] | 是 | minItems=1, minLen=1 | 站点数组,至少 1 个;只能取已配置站点 |
|
|
806
951
|
| published | string | 是 | - | **发布时间**口径(必填,主口径 —— 它同时决定查哪个月的索引、怎么拆分片,所以不能缺省)。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。 |
|
|
807
952
|
| idate | string | 否 | - | **入库时间**口径(选填,不传=该维度不过滤)。在发布时间窗**之内**再 AND 一层:入库时间落在本区间的数据。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。 |
|
|
808
953
|
| udate | string | 否 | - | **更新时间**口径(选填,不传=该维度不过滤)。在发布时间窗**之内**再 AND 一层:更新时间落在本区间的数据。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。 |
|
|
@@ -820,7 +965,8 @@ social-neuron-subscription job-update --job-id 1001 --active false -y
|
|
|
820
965
|
| job_id | integer | 是 | - | 目标 job |
|
|
821
966
|
| name | string | 否 | minLen=1, maxLen=128 | 新名称(同一凭证下唯一) |
|
|
822
967
|
| rule_ids | list[string] | 否 | minItems=1, minLen=1 | 整组全量覆盖 |
|
|
823
|
-
| source | list[string] | 否 | minItems=1, minLen=1 |
|
|
968
|
+
| source | list[string] | 否 | minItems=1, minLen=1 | 历史热门站点中文名数组,取 list_source;整体替换范围,与 platform_site 互斥 |
|
|
969
|
+
| platform_site | list[PlatformSite] | 否 | minItems=1 | 元数据平台站点组合;整体替换范围,与 source 互斥;不传保持原范围 |
|
|
824
970
|
| published | string | 否 | - | **发布时间**口径(必填字段,只能改不能清)。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。 |
|
|
825
971
|
| idate | string | 否 | - | **入库时间**口径。不传=不改;传空串 ""=**清除**该维度(恢复成不过滤)。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。 |
|
|
826
972
|
| udate | string | 否 | - | **更新时间**口径。不传=不改;传空串 ""=**清除**该维度(恢复成不过滤)。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。 |
|