mm_os 2.6.3 → 2.6.5
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/core/com/plugin/drive.js +14 -0
- package/core/com/plugin/index.js +109 -0
- package/core/com/plugin/log.js +13 -0
- package/demo/app/test/plugin/main/api_demo_client/test/index.js +1 -0
- package/package.json +59 -58
- package/static/file/image/user/1/2024_12_10_11_05_52.png +0 -0
- package/static/file/image/user/1/2024_12_10_11_06_22.png +0 -0
- package/static/file/image/user/1/2024_12_11_11_04_04.png +0 -0
- package/static/file/image/user/1/2024_12_11_11_04_18.png +0 -0
- package/static/file/image/user/1/2024_12_11_11_05_28.png +0 -0
- package/static/file/image/user/1/2024_12_11_11_06_09.png +0 -0
- package/static/file/image/user/1/2024_12_19_15_52_28.png +0 -0
- package/static/file/image/user/1/2024_12_20_15_51_59.png +0 -0
- package/static/file/image/user/1458/2024_12_04_17_38_11.png +0 -0
- package/static/file/image/user/1460/2024_12_04_17_42_04.png +0 -0
- package/static/file/image/user/1604/2024_12_04_17_40_06.png +0 -0
- package/static/file/image/user/1649/2024_12_04_17_36_28.png +0 -0
- package/static/file/image/user/1678/2024_12_04_17_39_57.png +0 -0
- package/static/file/image/user/1726/2024_12_04_17_35_15.png +0 -0
- package/static/file/image/user/1755/2024_12_04_17_33_54.png +0 -0
- package/static/file/image/user/1756/2024_12_04_17_32_30.png +0 -0
- package/static/file/image/user/1869/2024_12_07_08_55_53.png +0 -0
- package/static/file/image/user/1871/2024_12_04_17_43_37.png +0 -0
- package/static/file/image/user/1885/2024_12_04_17_30_17.png +0 -0
- package/static/file/image/user/1890/2024_12_07_08_56_09.png +0 -0
- package/static/file/image/user/2/2024_12_04_17_42_15.png +0 -0
- package/static/file/image/user/2137/2024_12_04_17_35_39.png +0 -0
- package/static/file/image/user/2192/2024_12_04_17_37_56.png +0 -0
- package/static/file/image/user/29/2024_12_11_10_03_46.png +0 -0
- package/static/file/image/user/29/2024_12_20_10_16_13.png +0 -0
- package/static/file/image/user/29/2024_12_20_10_19_09.png +0 -0
- package/static/file/image/user/968/2024_12_20_16_18_55.png +0 -0
package/core/com/plugin/drive.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const compressing = require('compressing');
|
|
1
2
|
const Item = require('mm_machine').Item;
|
|
2
3
|
const Log = require('./log.js');
|
|
3
4
|
const conf = require('mm_config');
|
|
@@ -445,4 +446,17 @@ Drive.prototype.run_chat = async function(from_user, to_user, content, group, ty
|
|
|
445
446
|
return ret;
|
|
446
447
|
};
|
|
447
448
|
|
|
449
|
+
/**
|
|
450
|
+
* 压缩主题模板
|
|
451
|
+
*/
|
|
452
|
+
Drive.prototype.zip = async function(zip_dir = "/static/file/zip/") {
|
|
453
|
+
var dir = this.filename.dirname();
|
|
454
|
+
var file = ("./" + this.config.name + '.zip').fullname(zip_dir);
|
|
455
|
+
var done = await compressing.zip.compressDir(dir, file);
|
|
456
|
+
if (file.hasFile()) {
|
|
457
|
+
return file;
|
|
458
|
+
}
|
|
459
|
+
return null;
|
|
460
|
+
}
|
|
461
|
+
|
|
448
462
|
module.exports = Drive;
|
package/core/com/plugin/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const compressing = require('compressing');
|
|
1
2
|
const Index = require('mm_machine').Index;
|
|
2
3
|
const Drive = require('./drive');
|
|
3
4
|
|
|
@@ -92,6 +93,114 @@ Plugin.prototype.load = function(path) {
|
|
|
92
93
|
}
|
|
93
94
|
};
|
|
94
95
|
|
|
96
|
+
/**
|
|
97
|
+
* 压缩插件
|
|
98
|
+
* @param {Object} name 插件名称
|
|
99
|
+
* @returns {Boolean} 返回压缩路径
|
|
100
|
+
*/
|
|
101
|
+
Plugin.prototype.zip = async function(name) {
|
|
102
|
+
var plus = this.get(name);
|
|
103
|
+
if (plus) {
|
|
104
|
+
return await plus.zip();
|
|
105
|
+
}
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* 解压插件
|
|
111
|
+
* @param {Object} file 插件压缩文件
|
|
112
|
+
* @returns {Boolean} 返回解压结果
|
|
113
|
+
*/
|
|
114
|
+
Plugin.prototype.unzip = async function(file) {
|
|
115
|
+
var dir = "/cache/plugin".fullname();
|
|
116
|
+
dir.addDir();
|
|
117
|
+
var ret;
|
|
118
|
+
try {
|
|
119
|
+
await compressing.zip.uncompress(file, dir);
|
|
120
|
+
ret = {
|
|
121
|
+
file,
|
|
122
|
+
dir
|
|
123
|
+
};
|
|
124
|
+
} catch (err) {
|
|
125
|
+
$.log.error("插件解压失败!", err);
|
|
126
|
+
}
|
|
127
|
+
return ret;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* 卸载插件
|
|
132
|
+
* @param {String} name 插件名称
|
|
133
|
+
* @returns {String} 返回卸载路径
|
|
134
|
+
*/
|
|
135
|
+
Plugin.prototype.uninstall = async function(name) {
|
|
136
|
+
var plus = this.get(name);
|
|
137
|
+
if (plus) {
|
|
138
|
+
await plus.run('uninstall');
|
|
139
|
+
var obj = this.del(name, true);
|
|
140
|
+
if (obj) {
|
|
141
|
+
var file = obj.filename;
|
|
142
|
+
// 删除目录
|
|
143
|
+
file.dirname().delDir();
|
|
144
|
+
return file
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* 复制目录
|
|
152
|
+
* @param {String} dir_src 原路径
|
|
153
|
+
* @param {String} dir 新路径
|
|
154
|
+
* @returns {Object} 返回复制结果
|
|
155
|
+
*/
|
|
156
|
+
Plugin.prototype.copy_dir = function(dir_src, dir) {
|
|
157
|
+
return new Promise((resolve, reject) => {
|
|
158
|
+
$.dir.copy(dir_src, dir, () => {
|
|
159
|
+
resolve({
|
|
160
|
+
dir_src,
|
|
161
|
+
dir
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* 安装插件
|
|
169
|
+
* @param {String} file 插件压缩文件
|
|
170
|
+
* @returns {Object} 返回解压结果
|
|
171
|
+
*/
|
|
172
|
+
Plugin.prototype.install = async function(file) {
|
|
173
|
+
var ret = await this.unzip(file);
|
|
174
|
+
if (ret) {
|
|
175
|
+
var dirs = $.dir.get(ret.dir);
|
|
176
|
+
if (dirs.length) {
|
|
177
|
+
var dir_src = dirs[0];
|
|
178
|
+
var file = "./plugin.json".fullname(dir_src);
|
|
179
|
+
var config = file.loadJson();
|
|
180
|
+
if (config) {
|
|
181
|
+
var app = config.app || 'sys';
|
|
182
|
+
var name = config.name;
|
|
183
|
+
if (name) {
|
|
184
|
+
var dir = `/app/${app}/plugin/${name}`;
|
|
185
|
+
await this.copy_dir(dir_src, dir);
|
|
186
|
+
dir_src.delDir();
|
|
187
|
+
var cs = $.pool.plugin[app];
|
|
188
|
+
if (cs) {
|
|
189
|
+
await cs.update();
|
|
190
|
+
await cs.exec(name, 'install');
|
|
191
|
+
}
|
|
192
|
+
return {
|
|
193
|
+
app,
|
|
194
|
+
name,
|
|
195
|
+
dir_src,
|
|
196
|
+
dir
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
95
204
|
module.exports = Plugin;
|
|
96
205
|
|
|
97
206
|
|
package/core/com/plugin/log.js
CHANGED
|
@@ -24,6 +24,19 @@ Log.prototype.init = function(config) {
|
|
|
24
24
|
this.config.filename.addDir();
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
/**
|
|
28
|
+
* 清空日志
|
|
29
|
+
* @returns {String} 返回日志内容
|
|
30
|
+
*/
|
|
31
|
+
Log.prototype.clear = function() {
|
|
32
|
+
var file = this.config.filename;
|
|
33
|
+
if(file.hasFile()){
|
|
34
|
+
file.delFile();
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
|
|
27
40
|
/**
|
|
28
41
|
* 加载日志
|
|
29
42
|
* @returns {String} 返回日志内容
|
package/package.json
CHANGED
|
@@ -1,58 +1,59 @@
|
|
|
1
|
-
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "mm_os",
|
|
3
|
+
"version": "2.6.5",
|
|
4
|
+
"description": "这是超级美眉服务端框架,用于快速构建应用程序。",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "cross-env NODE_ENV=test node ./demo/index.js",
|
|
8
|
+
"start": "node --trace-warnings ./demo/index.js",
|
|
9
|
+
"dev": "cross-env NODE_ENV=development nodemon ./demo/index.js"
|
|
10
|
+
},
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "https://gitee.com/qiuwenwu91/mm_os.git"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"超级美眉",
|
|
17
|
+
"游戏",
|
|
18
|
+
"系统",
|
|
19
|
+
"物联网",
|
|
20
|
+
"服务端",
|
|
21
|
+
"框架",
|
|
22
|
+
"函数式",
|
|
23
|
+
"公众号",
|
|
24
|
+
"MM",
|
|
25
|
+
"game",
|
|
26
|
+
"iot",
|
|
27
|
+
"server",
|
|
28
|
+
"framework"
|
|
29
|
+
],
|
|
30
|
+
"author": "邱文武",
|
|
31
|
+
"license": "ISC",
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"koa": "^2.15.3",
|
|
34
|
+
"koa-body": "^6.0.1",
|
|
35
|
+
"koa-compress": "^5.1.1",
|
|
36
|
+
"koa-send": "^5.0.1",
|
|
37
|
+
"koa-websocket": "^7.0.0",
|
|
38
|
+
"mm_check": "^1.4.9",
|
|
39
|
+
"mm_excel": "^1.2.0",
|
|
40
|
+
"mm_expand": "^1.7.7",
|
|
41
|
+
"mm_html": "^1.1.6",
|
|
42
|
+
"mm_koa_proxy": "^1.0.0",
|
|
43
|
+
"mm_logs": "^1.1.6",
|
|
44
|
+
"mm_machine": "^1.8.1",
|
|
45
|
+
"mm_mongodb": "^1.4.2",
|
|
46
|
+
"mm_mqtt": "^1.0.6",
|
|
47
|
+
"mm_mysql": "^1.8.6",
|
|
48
|
+
"mm_os": "^2.6.4",
|
|
49
|
+
"mm_redis": "^1.4.2",
|
|
50
|
+
"mm_ret": "^1.3.9",
|
|
51
|
+
"mm_session": "^1.4.8",
|
|
52
|
+
"mm_statics": "^1.4.8",
|
|
53
|
+
"mm_tpl": "^2.3.9",
|
|
54
|
+
"mm_xml": "^1.1.6",
|
|
55
|
+
"mosca": "^2.8.3",
|
|
56
|
+
"mqtt": "^5.10.3",
|
|
57
|
+
"publish": "^0.6.0"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|