mm_os 2.6.4 → 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.
Files changed (30) hide show
  1. package/core/com/plugin/drive.js +14 -0
  2. package/core/com/plugin/index.js +109 -0
  3. package/package.json +59 -58
  4. package/static/file/image/user/1/2024_12_10_11_05_52.png +0 -0
  5. package/static/file/image/user/1/2024_12_10_11_06_22.png +0 -0
  6. package/static/file/image/user/1/2024_12_11_11_04_04.png +0 -0
  7. package/static/file/image/user/1/2024_12_11_11_04_18.png +0 -0
  8. package/static/file/image/user/1/2024_12_11_11_05_28.png +0 -0
  9. package/static/file/image/user/1/2024_12_11_11_06_09.png +0 -0
  10. package/static/file/image/user/1/2024_12_19_15_52_28.png +0 -0
  11. package/static/file/image/user/1/2024_12_20_15_51_59.png +0 -0
  12. package/static/file/image/user/1458/2024_12_04_17_38_11.png +0 -0
  13. package/static/file/image/user/1460/2024_12_04_17_42_04.png +0 -0
  14. package/static/file/image/user/1604/2024_12_04_17_40_06.png +0 -0
  15. package/static/file/image/user/1649/2024_12_04_17_36_28.png +0 -0
  16. package/static/file/image/user/1678/2024_12_04_17_39_57.png +0 -0
  17. package/static/file/image/user/1726/2024_12_04_17_35_15.png +0 -0
  18. package/static/file/image/user/1755/2024_12_04_17_33_54.png +0 -0
  19. package/static/file/image/user/1756/2024_12_04_17_32_30.png +0 -0
  20. package/static/file/image/user/1869/2024_12_07_08_55_53.png +0 -0
  21. package/static/file/image/user/1871/2024_12_04_17_43_37.png +0 -0
  22. package/static/file/image/user/1885/2024_12_04_17_30_17.png +0 -0
  23. package/static/file/image/user/1890/2024_12_07_08_56_09.png +0 -0
  24. package/static/file/image/user/2/2024_12_04_17_42_15.png +0 -0
  25. package/static/file/image/user/2137/2024_12_04_17_35_39.png +0 -0
  26. package/static/file/image/user/2192/2024_12_04_17_37_56.png +0 -0
  27. package/static/file/image/user/29/2024_12_11_10_03_46.png +0 -0
  28. package/static/file/image/user/29/2024_12_20_10_16_13.png +0 -0
  29. package/static/file/image/user/29/2024_12_20_10_19_09.png +0 -0
  30. package/static/file/image/user/968/2024_12_20_16_18_55.png +0 -0
@@ -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;
@@ -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/package.json CHANGED
@@ -1,58 +1,59 @@
1
- {
2
- "name": "mm_os",
3
- "version": "2.6.4",
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_redis": "^1.4.2",
49
- "mm_ret": "^1.3.9",
50
- "mm_session": "^1.4.8",
51
- "mm_statics": "^1.4.8",
52
- "mm_tpl": "^2.3.9",
53
- "mm_xml": "^1.1.6",
54
- "mosca": "^2.8.3",
55
- "mqtt": "^5.10.3",
56
- "publish": "^0.6.0"
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
+ }