mm_os 2.7.8 → 2.7.9

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.
@@ -1,55 +0,0 @@
1
- /**
2
- * 接口主函数
3
- * @param {Object} ctx HTTP上下文
4
- * @param {Object} db 数据管理器,如: { next: async function{}, ret: {} }
5
- * @return {Object} 执行结果
6
- */
7
- async function main(ctx, db) {
8
- var ret;
9
- // 获取请求参数
10
- var req = ctx.request;
11
- var {
12
- query,
13
- body
14
- } = req;
15
-
16
- var user = await this.get_state(ctx, db);
17
-
18
- // console.log("用户", user);
19
- // return "hello world" + JSON.stringify(body);
20
-
21
- // 操作sql模板
22
- var m = query.method;
23
- if (m === "add") {
24
-
25
- } else if (m === "del") {
26
-
27
- } else if (m === "set") {
28
-
29
- } else if (m === "update") {
30
- var plus = this.plugin();
31
- plus.run('update_options', [{
32
- name: "sandbox",
33
- value: true
34
- }]);
35
- var op = plus.get_options();
36
- console.log("当前配置", op);
37
- ret = $.ret.bl(op["sandbox"]);
38
- } else {
39
- // var plugins = $.pool.plugin["test"];
40
- // var plus = plugins.get("main");
41
- // console.log("获取插件", plus);
42
- // plus.log.debug("调用接口", "/api/test");
43
- var plus = this.plugin();
44
- console.log("获取插件", plus);
45
- ret = $.ret.list(plus.log.list());
46
- plus.log.clear();
47
- }
48
- // var plus = $.plugin_admin('test');
49
- // plus.run("main", "start");
50
- // plus.run("main", "stop");
51
- var ret = await this.sql.run(query, body, db);
52
- return ret;
53
- };
54
-
55
- exports.main = main;
@@ -1,130 +0,0 @@
1
- {
2
- // 是否启用过滤, 启用过滤后, 不符合的参数会被过滤掉
3
- "filter": true,
4
- // 校验脚本文件, 可以使用脚本的方式加一步进行校验, 让传参更加安全
5
- "func_file": "",
6
- // get请求
7
- "get": {
8
- // 查询参数校验项
9
- "query": ["uid", "name", "username", "phone", "email"],
10
- // 查询必填参数
11
- "query_required": []
12
- },
13
- // post请求
14
- "post": {
15
- // 查询参数校验项
16
- "query": ["uid", "name", "username", "phone", "email"],
17
- // 查询必填参数
18
- "query_required": [],
19
- // 正文参数校验项
20
- "body": ["age", "headImg", "birthday", "password", "confirm_password", "pay_password"],
21
- // 正文必填参数
22
- "body_required": []
23
- },
24
- // 校验列表
25
- "list": [{
26
- // 参数key名
27
- "name": "uid",
28
- // 参数中文名
29
- "title": "用户ID",
30
- // 数据类型
31
- "type": "number",
32
- // 数字类型时设置
33
- "number": {
34
- // 最小数值
35
- "min": 1
36
- },
37
- // 分隔参数,允许传多个值,为空则限制1个值
38
- "splitter": "|"
39
- }, {
40
- "name": "name",
41
- "title": "姓名",
42
- "type": "string",
43
- // 字符串类型时设置
44
- "string": {
45
- // 格式
46
- "format": "ch",
47
- // 传值范围,字符串时为限制字符长度
48
- "range": [2, 6]
49
- },
50
- "splitter": "|"
51
- },
52
- {
53
- "name": "age",
54
- "title": "年龄",
55
- "type": "number",
56
- "number": {
57
- // 传值范围,数字时为最小值和最大值
58
- "range": [1, 150]
59
- }
60
- },
61
- {
62
- "name": "headImg",
63
- "title": "头像",
64
- "type": "string",
65
- "string": {
66
- // 拓展名,用于传媒体(图片、音频、视频)时
67
- "extension": "png|gif|jpg|jpeg|bmp"
68
- }
69
- },
70
- {
71
- "name": "birthday",
72
- "title": "生日",
73
- "type": "string",
74
- "string": {
75
- "format": "dateISO"
76
- }
77
- },
78
- {
79
- "name": "username",
80
- "title": "用户名",
81
- "type": "string",
82
- "string": {
83
- "format": "username"
84
- }
85
- },
86
- {
87
- "name": "password",
88
- "title": "密码",
89
- "type": "string",
90
- "string": {
91
- "format": "password",
92
- "different": "username"
93
- }
94
- },
95
- {
96
- "name": "phone",
97
- "title": "手机",
98
- "type": "string",
99
- "string": {
100
- "format": "phone"
101
- }
102
- },
103
- {
104
- "name": "email",
105
- "title": "邮箱",
106
- "type": "string",
107
- "string": {
108
- "format": "email"
109
- }
110
- },
111
- {
112
- "name": "pay_password",
113
- "title": "支付密码",
114
- "type": "string",
115
- "string": {
116
- "format": "num",
117
- "different": "password"
118
- }
119
- },
120
- {
121
- "name": "confirm_password",
122
- "title": "确认密码",
123
- "type": "string",
124
- "string": {
125
- "format": "password",
126
- "identical": "password"
127
- }
128
- }
129
- ]
130
- }
@@ -1,70 +0,0 @@
1
- {
2
- // SQL模板标题
3
- "title": "示例sql模板",
4
- // 调用的数据表
5
- "table": "user_account",
6
- // 表主键,用于getObj查询时
7
- "key": "user_id",
8
- // 排序方式,{0}表示支持前端传值来排序,传值方式例如:orderby=user_id
9
- "orderby": "{0}",
10
- // 默认排序方式,当前端没有传值的情况下,采用默认传值方式
11
- "orderby_default": "`user_id` desc",
12
- // 查询列表时返回的字段,{0}表示支持前端传值
13
- "field": "{0}",
14
- // 查询对象时返回的字段
15
- "field_obj": "{0}",
16
- // 默认返回字段
17
- "field_default": "`username`, `phone`",
18
- // 需要过滤的字段,*代表泛匹配 前面*表示以xxx结尾,后面*表示以xxx开头,前后*表示包含xxx的过滤
19
- "field_hide": ["*password*", "*token*"],
20
- // 传值分隔符,如果允许多个值,可以通过这个来分割,如果不允许传多个值则设置为空
21
- "separator": "|",
22
- // 关键词,用于过滤掉这些值不会写到查询条件中,同时用来识别传的参数
23
- "keyword": {
24
- // 数据表名,当"table":"{0}", 允许识别表明
25
- "table": "table",
26
- // 排序方式
27
- "orderby": "orderby",
28
- // 查询的字段
29
- "field": "field",
30
- // 页码
31
- "page": "page",
32
- // 页面大小
33
- "size": "size",
34
- // 总计,返回查询结果总数
35
- "count": "count",
36
- // 调用方式
37
- "method": "method"
38
- },
39
- // 调用方式 add增 del删 set改 get查 get_obj查一条 import导入 export导出, 支持什么方式就传什么值,支持多个用空格分隔
40
- "method": "add del set get get_obj import export del_repeat sum count update",
41
- // 查询条件转换
42
- "query": {
43
- // 当username=xx时,转为`username` like '%xxx%'的SQL语法
44
- "username": "`username` like '%{0}%'"
45
- },
46
- // 修改时的查询条件
47
- "where": {
48
- // 当修改查询条件出现user_id=xx时,转为`user_id` = 'xxx'的SQL语法
49
- "user_id": "`user_id` = '{0}'"
50
- },
51
- // 修改时值转换
52
- "update": {
53
- // 当修改的正文中出现username是转换为指定格式
54
- "username": "`username` = '{0}'"
55
- },
56
- // 默认查询条件
57
- "query_dedefault": {
58
-
59
- },
60
- // 默认添加项
61
- "body_default": {
62
-
63
- },
64
- // SQL执行脚本,当设置js文件名后, 执行该SQL还将调用这个脚本
65
- "func_file": "",
66
- // 导入导出格式,转换导入、导出Eexcel时字段名和字段值
67
- "format": [],
68
- // 去重条件,需要查重、并去重的字段在这里写
69
- "del_repeat": {}
70
- }
@@ -1,159 +0,0 @@
1
- /**
2
- * @fileOverview main
3
- * @author <a href="作者主页地址">插件作者</a>
4
- * @version 1.0
5
- */
6
-
7
- /**
8
- * 插件对象
9
- */
10
- module.exports = {
11
- /**
12
- * 初始化
13
- * @param {Object} option 配置参数
14
- * @return {String} 成功返回null, 否则返回错误提示
15
- */
16
- init(option) {
17
- var msg = null;
18
- console.log("测试插件-初始化");
19
- return msg;
20
- },
21
-
22
- /**
23
- * 安装
24
- * @param {Object} option 配置参数
25
- * @return {String} 成功返回null,否则返回错误提示
26
- */
27
- install(option) {
28
- var msg = null;
29
- return msg;
30
- },
31
-
32
- /**
33
- * 卸载
34
- * @param {Object} option 配置参数
35
- * @return {String} 成功返回null,否则返回错误提示
36
- */
37
- uninstall(option) {
38
- var msg = null;
39
- return msg;
40
- },
41
-
42
- /**
43
- * 更新
44
- * @param {Object} option 配置参数
45
- * @return {String} 成功返回null, 否则返回错误提示
46
- */
47
- update(option) {
48
- var msg = null;
49
- return msg;
50
- },
51
-
52
- /**
53
- * 启动
54
- * @param {Object} opiton 配置参数
55
- * @return {String} 成功返回null,否则返回错误提示
56
- */
57
- start(option) {
58
- var msg = null;
59
- var options = this.get_options();
60
- console.log("启动了", options);
61
- this.log.info("启动了", "示例插件", options);
62
- // try {
63
- // var a = asr;
64
- // } catch (error) {
65
- // this.log.error("执行失败!", error);
66
- // }
67
- var list = this.log.list();
68
- console.log(list.length);
69
-
70
- var str = this.log.read();
71
- console.log("打印最后一条输出记录", str);
72
- return msg;
73
- },
74
-
75
- /**
76
- * 暂停
77
- * @param {Object} opiton 配置参数
78
- * @return {String} 成功返回null,否则返回错误提示
79
- */
80
- stop(option) {
81
- var msg = null;
82
- console.log("暂停了", this.config);
83
- return msg;
84
- },
85
-
86
- /**
87
- * 结束
88
- * @param {Object} opiton 配置参数
89
- * @return {String} 成功返回null,否则返回错误提示
90
- */
91
- end(option) {
92
- var msg = null;
93
- return msg;
94
- },
95
-
96
- /**
97
- * 插件
98
- * @param {String} item 插件项
99
- * @return {Object} 旗下插件和信息
100
- */
101
- help(item) {
102
- var tip = "";
103
- switch (item) {
104
- case "run":
105
- break;
106
- default:
107
- break;
108
- }
109
- return tip;
110
- },
111
-
112
- /**
113
- * 主程序
114
- * @param {Object} param1 参数1
115
- * @param {Object} param2 参数2
116
- * @return {Object} 返回执行结果
117
- */
118
- main(param1, param2) {
119
- var ret = null;
120
- return ret;
121
- },
122
-
123
- /**
124
- * 指令(类似命令提示符)
125
- * @param {String} content 指令内容
126
- * @return {String} 执行结果
127
- */
128
- cmd(content) {
129
- var ret = "";
130
- return ret;
131
- },
132
-
133
- /**
134
- * API接口(用于其他插件调用该插件时)
135
- * @param {Object} ctx HTTP上下文
136
- * @param {Object} db 数据库管理器
137
- * @return {Object} 执行结果
138
- */
139
- api(ctx, db) {
140
- var ret = "";
141
- return ret;
142
- },
143
-
144
- /**
145
- * 聊天(通过聊天的方式驱动插件, 用于机器人开发)
146
- * @param {String} from_user 发送消息人
147
- * @param {String} to_user 接收消息人
148
- * @param {String} content 内容
149
- * @param {String} group 群组 如果是个人,群组为空
150
- * @param {Number} type 群类型, 1永久会话/群、2临时会话/群
151
- * @param {String} msg_type 消息类型, event事件型、message消息型。默认消息型
152
- * @param {Object} 数据管理器
153
- * @return {String} 回复内容
154
- */
155
- async chat(from_user, to_user, group, content, type, msg_type, db) {
156
- var ret = "";
157
- return ret;
158
- }
159
- };
@@ -1,103 +0,0 @@
1
- {
2
- // 应用名称,表示该插件用在什么应用里的
3
- "app": "test",
4
- // 插件名称,插件的唯一标识
5
- "name": "main",
6
- // 插件标题,用于检索和识别
7
- "title": "示例插件",
8
- // 插件描述,介绍改插件是做什么用的
9
- "description": "描述该插件是做什么用的",
10
- // 插件版本号,用于升级迭代
11
- "version": "1.0",
12
- // 作者
13
- "author": "",
14
- // 官网
15
- "web": "",
16
- // 插件语言包文件路径
17
- "lang_path": "./lang/",
18
- // 插件图标
19
- "icon": "/test/main/img/logo.png",
20
- // 插件指令,通过指令方式调用插件
21
- "cmd": "test.main",
22
- // 是否中断执行
23
- "end": true,
24
- // 排序,表示多个插件时在应用下执行的先后顺序
25
- "sort": 10,
26
- // 配置参数
27
- "options": [
28
- {
29
- "group": "默认",
30
- "config_id": 0,
31
- "name": "appId",
32
- "title": "机器人ID",
33
- "type": "string",
34
- "control": "input",
35
- "tip": "例:102047156",
36
- "description": "官方申请的QQ机器人ID,详情请查看<a target=\"_blank\" href=\"https://q.qq.com/#/app/bot\">QQ开放平台</a>",
37
- "display": 100,
38
- "default": "102047156",
39
- "min": 0,
40
- "max": 0,
41
- "value": "102047156"
42
- },
43
- {
44
- "group": "默认",
45
- "config_id": 0,
46
- "name": "AppSecret",
47
- "title": "机器人密钥",
48
- "type": "string",
49
- "control": "input",
50
- "tip": "例:ufQBwiUG2oaM9wjWJ6tgUI6uiWK9yncR1",
51
- "description": "用于在 oauth 场景进行请求签名的密钥",
52
- "display": 100,
53
- "default": "ufQBwiUG2oaM9wjWJ6tgUI6uiWK9yncR1",
54
- "min": 0,
55
- "max": 0,
56
- "value": "ufQBwiUG2oaM9wjWJ6tgUI6uiWK9yncR1"
57
- },
58
- {
59
- "group": "默认",
60
- "config_id": 0,
61
- "name": "token",
62
- "title": "机器人令牌",
63
- "type": "string",
64
- "control": "input",
65
- "tip": "例:w14e85M4Mj6egshfKc3wADq1KMP87Qi3",
66
- "description": "用于以机器人身份调用 openapi",
67
- "display": 100,
68
- "default": "w14e85M4Mj6egshfKc3wADq1KMP87Qi3",
69
- "min": 0,
70
- "max": 0,
71
- "value": "w14e85M4Mj6egshfKc3wADq1KMP87Qi3"
72
- },
73
- {
74
- "group": "默认",
75
- "config_id": 0,
76
- "name": "intents",
77
- "title": "事件订阅",
78
- "type": "string",
79
- "control": "checkbox",
80
- "tip": "",
81
- "description": "用于开启可接收的消息类型",
82
- "display": 100,
83
- "default": "PUBLIC_GUILD_MESSAGES",
84
- "min": 1,
85
- "max": 255,
86
- "model": "公域消息事件=PUBLIC_GUILD_MESSAGES\n私域消息事件=GUILD_MESSAGES"
87
- },
88
- {
89
- "group": "默认",
90
- "config_id": 0,
91
- "name": "sandbox",
92
- "title": "沙箱",
93
- "type": "boolean",
94
- "control": "switch",
95
- "tip": "",
96
- "description": "沙箱支持,可选,默认false. v2.7.0+",
97
- "display": 100,
98
- "default": "false",
99
- "min": 0,
100
- "max": 1
101
- }
102
- ]
103
- }
@@ -1,37 +0,0 @@
1
- /**
2
- * 定时任务函数
3
- */
4
- exports.main = async function main() {
5
- $.log.debug('定时任务, 执行中...');
6
- };
7
-
8
- /**
9
- * 执行结果通知
10
- * @param {String} name 任务名称
11
- * @param {String} state 状态
12
- */
13
- exports.notify = async function(name, state) {
14
- switch (state) {
15
- case "init":
16
- $.log.debug('任务-初始化');
17
- break;
18
- case "start":
19
- $.log.debug('任务-开始执行');
20
- break;
21
- case "stop":
22
- $.log.debug('任务-已暂停');
23
- break;
24
- case "suspend":
25
- // 主动中断
26
- $.log.debug('任务-已中断');
27
- break;
28
- case "time_end":
29
- $.log.debug('任务-已到期');
30
- break;
31
- case "completed":
32
- $.log.debug('任务-已完成', this.plugin().log.list().length);
33
- break;
34
- default:
35
- break;
36
- }
37
- };
@@ -1,26 +0,0 @@
1
- {
2
- // 任务标题
3
- "title": "示例任务",
4
- // 任务描述
5
- "description": "描述任务使用方法",
6
- // 任务名称,用于动态增删改查
7
- "name": "demo",
8
- // 状态 0未启用,1启用
9
- "state": 1,
10
- // 任务驱动的脚本文件
11
- "func_file": "./index.js",
12
- // 任务执行次数,执行次数达标后不再执行。0为不限次数,一直执行
13
- "num": 10,
14
- // 任务间隔时长,单位:毫秒
15
- "interval": 1000,
16
- // 任务启动等待时长,单位:毫秒
17
- "wait": 0,
18
- // 任务触发的时间,可设置的格式分别为: yyyy-MM-dd hh:mm:ss, MM-dd hh:mm:ss, dd hh:mm:ss, hh:mm:ss, hh:mm, mm 例如: 08:00, 则为每天8点触发
19
- "time": "",
20
- // 任务开始日期,例如:2020-10-01开始执行,为空则不限制
21
- "date_start": "",
22
- // 任务结束日期,例如:2020-10-07不再执行,为空则不限制
23
- "date_end": "",
24
- // 任务排序,决定多个任务的执行优先顺序
25
- "sort": 100
26
- }
@@ -1,4 +0,0 @@
1
- {
2
- "name": "服务端数据管理器",
3
- "script": "./index.js"
4
- }