mm_os 3.3.1 → 4.0.1

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 (380) hide show
  1. package/LICENSE +21 -201
  2. package/README.md +498 -99
  3. package/README_EN.md +505 -0
  4. package/adapter/adapter.js +431 -0
  5. package/adapter/custom_persistence.js +660 -0
  6. package/adapter/mqtt.js +273 -0
  7. package/adapter/socket.js +113 -0
  8. package/adapter/web.js +67 -0
  9. package/adapter/websocket.js +146 -0
  10. package/com/api/com.json +5 -0
  11. package/{core/com → com}/api/config.tpl.json +8 -8
  12. package/com/api/drive.js +708 -0
  13. package/com/api/index.js +198 -0
  14. package/com/api/oauth.js +200 -0
  15. package/com/api/script.tpl.js +32 -0
  16. package/com/cmd/README.md +11 -0
  17. package/com/cmd/com.json +5 -0
  18. package/com/cmd/config.tpl.json +122 -0
  19. package/com/cmd/drive.js +1548 -0
  20. package/com/cmd/index.js +1066 -0
  21. package/com/cmd/msg.json +48 -0
  22. package/com/cmd/nlp.js +525 -0
  23. package/com/cmd/script.tpl.js +32 -0
  24. package/com/db/com.json +5 -0
  25. package/com/db/drive.js +1999 -0
  26. package/com/db/index.js +242 -0
  27. package/{core/com → com}/event/README.md +4 -4
  28. package/com/event/com.json +5 -0
  29. package/{core/com → com}/event/config.tpl.json +18 -18
  30. package/com/event/drive.js +59 -0
  31. package/com/event/index.js +409 -0
  32. package/com/event/script.tpl.js +23 -0
  33. package/com/mqtt/com.json +5 -0
  34. package/{core/com → com}/mqtt/config.tpl.json +3 -5
  35. package/com/mqtt/drive.js +676 -0
  36. package/com/mqtt/index.js +822 -0
  37. package/com/mqtt/mm_mqtt.js +425 -0
  38. package/com/mqtt/script.tpl.js +723 -0
  39. package/com/nav/com.json +5 -0
  40. package/com/nav/config.tpl.json +84 -0
  41. package/com/nav/drive.js +702 -0
  42. package/com/nav/index.js +231 -0
  43. package/{core/com → com}/nav/tpl/admin_pc/page_config.vue +280 -280
  44. package/{core/com → com}/nav/tpl/admin_pc/page_config_form.vue +194 -194
  45. package/com/nav/tpl/admin_pc/page_form.vue +180 -0
  46. package/com/nav/tpl/admin_pc/page_view.vue +124 -0
  47. package/com/nav/tpl/dev_pc/page_default.vue +247 -0
  48. package/com/nav/tpl/dev_pc/page_type.vue +313 -0
  49. package/com/nav/tpl/home_pc/page_default.vue +234 -0
  50. package/com/nav/tpl/home_pc/page_form.vue +137 -0
  51. package/com/nav/tpl/home_pc/page_list.vue +234 -0
  52. package/com/nav/tpl/home_pc/page_nav.vue +221 -0
  53. package/com/nav/tpl/home_pc/page_type.vue +234 -0
  54. package/com/nav/tpl/home_pc/page_view.vue +125 -0
  55. package/com/nav/tpl/home_phone/page_channel.vue +234 -0
  56. package/com/nav/tpl/home_phone/page_default.vue +234 -0
  57. package/com/nav/tpl/home_phone/page_form.vue +137 -0
  58. package/com/nav/tpl/home_phone/page_nav.vue +237 -0
  59. package/com/nav/tpl/home_phone/page_type.vue +234 -0
  60. package/com/nav/tpl/home_phone/page_view.vue +125 -0
  61. package/com/nav/viewmodel.js +446 -0
  62. package/com/param/com.json +5 -0
  63. package/{core/com → com}/param/config.tpl.json +7 -1
  64. package/com/param/drive.js +502 -0
  65. package/com/param/index.js +155 -0
  66. package/com/param/script.tpl.js +12 -0
  67. package/com/pendant/com.json +5 -0
  68. package/{core/com/component → com/pendant}/config.tpl.json +15 -13
  69. package/com/pendant/drive.js +204 -0
  70. package/com/pendant/index.js +441 -0
  71. package/com/pendant/pendant.html +16 -0
  72. package/com/pendant/script.tpl.js +18 -0
  73. package/com/socket/com.json +5 -0
  74. package/com/socket/config.tpl.json +12 -0
  75. package/com/socket/drive.js +651 -0
  76. package/com/socket/index.js +351 -0
  77. package/com/socket/script.tpl.js +41 -0
  78. package/com/sql/com.json +5 -0
  79. package/{core/com → com}/sql/config.tpl.json +13 -9
  80. package/com/sql/drive.js +1259 -0
  81. package/com/sql/index.js +150 -0
  82. package/com/sql/script.tpl.js +47 -0
  83. package/com/static/com.json +5 -0
  84. package/{core/com → com}/static/config.tpl.json +10 -6
  85. package/com/static/drive.js +194 -0
  86. package/com/static/index.js +226 -0
  87. package/com/static/script.tpl.js +28 -0
  88. package/com/task/com.json +5 -0
  89. package/{core/com → com}/task/config.tpl.json +4 -6
  90. package/com/task/drive.js +405 -0
  91. package/com/task/index.js +148 -0
  92. package/com/task/script.tpl.js +37 -0
  93. package/com/template/com.json +5 -0
  94. package/com/template/config.tpl.json +16 -0
  95. package/com/template/drive.js +80 -0
  96. package/com/template/index.js +141 -0
  97. package/com.js +156 -0
  98. package/common/README.md +2 -0
  99. package/common/handler/msg/handler.json +22 -0
  100. package/common/handler/msg/index.js +23 -0
  101. package/common/handler/player/handler.json +22 -0
  102. package/common/handler/player/index.js +287 -0
  103. package/common/handler/user/handler.json +22 -0
  104. package/common/handler/user/index.js +23 -0
  105. package/common/middleware/web_after/index.js +29 -0
  106. package/common/middleware/web_after/middleware.json +9 -0
  107. package/common/middleware/web_base/index.js +113 -0
  108. package/common/middleware/web_base/middleware.json +19 -0
  109. package/common/middleware/web_before/index.js +33 -0
  110. package/common/middleware/web_before/middleware.json +9 -0
  111. package/common/middleware/web_cors/index.js +87 -0
  112. package/common/middleware/web_cors/middleware.json +24 -0
  113. package/common/middleware/web_error/index.js +119 -0
  114. package/common/middleware/web_error/middleware.json +18 -0
  115. package/common/middleware/web_ip/index.js +15 -0
  116. package/common/middleware/web_ip/middleware.json +14 -0
  117. package/common/middleware/web_logger/index.js +156 -0
  118. package/common/middleware/web_logger/middleware.json +14 -0
  119. package/common/middleware/web_main/index.js +24 -0
  120. package/common/middleware/web_main/middleware.json +9 -0
  121. package/common/middleware/web_static/index.js +73 -0
  122. package/common/middleware/web_static/middleware.json +54 -0
  123. package/common/middleware/web_waf/index.js +385 -0
  124. package/common/middleware/web_waf/middleware.json +13 -0
  125. package/common/model/msg/index.js +88 -0
  126. package/common/model/msg/model.json +401 -0
  127. package/common/model/player/index.js +63 -0
  128. package/common/model/player/model.json +185 -0
  129. package/common/model/user/index.js +11 -0
  130. package/common/model/user/model.json +219 -0
  131. package/core/app/config.tpl.json +67 -0
  132. package/core/app/index.js +632 -0
  133. package/core/app/script.tpl.js +52 -0
  134. package/core/channel/index.js +899 -0
  135. package/core/channel/matcher.js +585 -0
  136. package/core/com/config.tpl.json +16 -0
  137. package/core/com/index.js +74 -0
  138. package/core/com/script.tpl.js +5 -0
  139. package/core/component/component.js +42 -0
  140. package/core/component/config.tpl.json +63 -0
  141. package/core/component/index.js +273 -0
  142. package/core/component/script.tpl.js +19 -0
  143. package/core/controller/config.tpl.json +14 -0
  144. package/core/controller/index.js +373 -0
  145. package/core/controller/script.tpl.js +27 -0
  146. package/core/factory/config.tpl.json +14 -0
  147. package/core/factory/entity.js +275 -0
  148. package/core/factory/index.js +241 -0
  149. package/core/factory/script.tpl.js +16 -0
  150. package/core/game/bat/index.js +137 -0
  151. package/core/game/bat/world.js +622 -0
  152. package/core/game/config.tpl.json +16 -0
  153. package/core/game/entity_admin.js +230 -0
  154. package/core/game/index.js +186 -0
  155. package/core/handler/config.tpl.json +22 -0
  156. package/core/handler/index.js +181 -0
  157. package/core/handler/script.tpl.js +23 -0
  158. package/core/logic/config.tpl.json +14 -0
  159. package/core/logic/index.js +59 -0
  160. package/core/logic/script.tpl.js +19 -0
  161. package/core/middleware/config.tpl.json +16 -0
  162. package/core/middleware/index.js +125 -0
  163. package/core/middleware/script.tpl.js +37 -0
  164. package/core/mod/config.tpl.json +22 -0
  165. package/core/mod/index.js +130 -0
  166. package/core/mod/script.tpl.js +34 -0
  167. package/core/model/config.tpl.json +219 -0
  168. package/core/model/index.js +272 -0
  169. package/core/model/model.js +27 -0
  170. package/core/model/script.tpl.js +20 -0
  171. package/core/notifier/config.tpl.json +14 -0
  172. package/core/notifier/index.js +77 -0
  173. package/core/notifier/script.tpl.js +20 -0
  174. package/core/plugin/config.tpl.json +24 -0
  175. package/core/plugin/index.js +232 -0
  176. package/core/plugin/script.tpl.js +51 -0
  177. package/core/pusher/config.tpl.json +14 -0
  178. package/core/pusher/index.js +161 -0
  179. package/core/pusher/script.tpl.js +20 -0
  180. package/core/room/bat/index.js +170 -0
  181. package/core/room/bat/room.js +524 -0
  182. package/core/room/config.tpl.json +20 -0
  183. package/core/room/index.js +249 -0
  184. package/core/room/room.js +61 -0
  185. package/core/scene/config.tpl.json +14 -0
  186. package/core/scene/index.js +466 -0
  187. package/core/scene/loop.js +1255 -0
  188. package/core/scene/map.js +28 -0
  189. package/core/scene/script.tpl.js +22 -0
  190. package/core/sender/config.tpl.json +14 -0
  191. package/core/sender/index.js +79 -0
  192. package/core/sender/script.tpl.js +20 -0
  193. package/core/service/config.tpl.json +14 -0
  194. package/core/service/index.js +100 -0
  195. package/core/service/script.tpl.js +25 -0
  196. package/core/store/config.tpl.json +26 -0
  197. package/core/store/index.js +1755 -0
  198. package/core/store/script.tpl.js +22 -0
  199. package/core/store/sql.js +1464 -0
  200. package/core/system/config.tpl.json +18 -0
  201. package/core/system/index.js +312 -0
  202. package/core/system/script.tpl.js +77 -0
  203. package/core/view/config.tpl.json +14 -0
  204. package/core/view/index.js +91 -0
  205. package/core/view/script.tpl.js +20 -0
  206. package/core/zone/bat/index.js +725 -0
  207. package/core/zone/config.tpl.json +54 -0
  208. package/core/zone/index.js +614 -0
  209. package/core/zone/script.tpl.js +10 -0
  210. package/core/zone/zone_bat.js +136 -0
  211. package/core//345/237/272/347/261/273/346/250/241/345/235/227/346/270/205/345/215/225.md +24 -0
  212. package/index.js +17 -333
  213. package/os.js +57 -0
  214. package/package.json +65 -55
  215. package/server.js +598 -0
  216. package/README.en.md +0 -36
  217. package/conf.json +0 -3
  218. package/core/base/mqtt/index.js +0 -1110
  219. package/core/base/mqtt/lib.js +0 -40
  220. package/core/base/web/index.js +0 -245
  221. package/core/com/api/com.json +0 -4
  222. package/core/com/api/drive.js +0 -668
  223. package/core/com/api/index.js +0 -108
  224. package/core/com/api/oauth.js +0 -158
  225. package/core/com/api/script.js +0 -32
  226. package/core/com/app/README.md +0 -3
  227. package/core/com/app/com.json +0 -4
  228. package/core/com/app/config.tpl.json +0 -16
  229. package/core/com/app/drive.js +0 -309
  230. package/core/com/app/index.js +0 -211
  231. package/core/com/app/script.js +0 -155
  232. package/core/com/cmd/com.json +0 -4
  233. package/core/com/cmd/config.tpl.json +0 -66
  234. package/core/com/cmd/drive.js +0 -513
  235. package/core/com/cmd/index.js +0 -354
  236. package/core/com/cmd/old/5w2h.js +0 -54
  237. package/core/com/cmd/old/drive.js +0 -423
  238. package/core/com/cmd/script.js +0 -11
  239. package/core/com/component/README.md +0 -3
  240. package/core/com/component/com.json +0 -4
  241. package/core/com/component/component.html +0 -16
  242. package/core/com/component/drive.js +0 -197
  243. package/core/com/component/index.js +0 -312
  244. package/core/com/component/script.js +0 -18
  245. package/core/com/db/com.json +0 -4
  246. package/core/com/db/drive.js +0 -1160
  247. package/core/com/db/index.js +0 -176
  248. package/core/com/event/com.json +0 -4
  249. package/core/com/event/drive.js +0 -133
  250. package/core/com/event/index.js +0 -345
  251. package/core/com/event/script.js +0 -26
  252. package/core/com/eventer/com.js +0 -477
  253. package/core/com/eventer/com.json +0 -4
  254. package/core/com/middleware/com.js +0 -154
  255. package/core/com/middleware/com.json +0 -4
  256. package/core/com/middleware/config.tpl.json +0 -8
  257. package/core/com/middleware/script.js +0 -9
  258. package/core/com/mqtt/com.json +0 -4
  259. package/core/com/mqtt/drive.js +0 -600
  260. package/core/com/mqtt/index.js +0 -572
  261. package/core/com/mqtt/mm_mqtt.js +0 -330
  262. package/core/com/mqtt/script.js +0 -604
  263. package/core/com/msg/com.js +0 -296
  264. package/core/com/msg/com.json +0 -4
  265. package/core/com/nav/com.json +0 -4
  266. package/core/com/nav/config.tpl.json +0 -75
  267. package/core/com/nav/drive.js +0 -549
  268. package/core/com/nav/index.js +0 -182
  269. package/core/com/nav/tpl/admin_pc/page_form.vue +0 -180
  270. package/core/com/nav/tpl/admin_pc/page_view.vue +0 -124
  271. package/core/com/nav/tpl/dev_pc/page_default.vue +0 -247
  272. package/core/com/nav/tpl/dev_pc/page_type.vue +0 -313
  273. package/core/com/nav/tpl/home_pc/page_default.vue +0 -234
  274. package/core/com/nav/tpl/home_pc/page_form.vue +0 -137
  275. package/core/com/nav/tpl/home_pc/page_list.vue +0 -234
  276. package/core/com/nav/tpl/home_pc/page_nav.vue +0 -221
  277. package/core/com/nav/tpl/home_pc/page_type.vue +0 -234
  278. package/core/com/nav/tpl/home_pc/page_view.vue +0 -125
  279. package/core/com/nav/tpl/home_phone/page_channel.vue +0 -234
  280. package/core/com/nav/tpl/home_phone/page_default.vue +0 -234
  281. package/core/com/nav/tpl/home_phone/page_form.vue +0 -137
  282. package/core/com/nav/tpl/home_phone/page_nav.vue +0 -237
  283. package/core/com/nav/tpl/home_phone/page_type.vue +0 -234
  284. package/core/com/nav/tpl/home_phone/page_view.vue +0 -125
  285. package/core/com/nav/viewmodel.js +0 -296
  286. package/core/com/param/drive.js +0 -366
  287. package/core/com/param/index.js +0 -80
  288. package/core/com/param/script.js +0 -12
  289. package/core/com/param/test.js +0 -98
  290. package/core/com/plugin/README.md +0 -3
  291. package/core/com/plugin/com.json +0 -4
  292. package/core/com/plugin/config.tpl.json +0 -26
  293. package/core/com/plugin/drive.js +0 -536
  294. package/core/com/plugin/index.js +0 -259
  295. package/core/com/plugin/script.js +0 -213
  296. package/core/com/rpc/com.json +0 -4
  297. package/core/com/rpc/drive.js +0 -160
  298. package/core/com/rpc/index.js +0 -87
  299. package/core/com/rpc/rpc.js +0 -118
  300. package/core/com/socket/com.json +0 -4
  301. package/core/com/socket/config.tpl.json +0 -14
  302. package/core/com/socket/drive.js +0 -403
  303. package/core/com/socket/index.js +0 -62
  304. package/core/com/socket/script.js +0 -42
  305. package/core/com/sql/drive.js +0 -1087
  306. package/core/com/sql/index.js +0 -83
  307. package/core/com/sql/script.js +0 -48
  308. package/core/com/static/com.json +0 -4
  309. package/core/com/static/drive.js +0 -220
  310. package/core/com/static/index.js +0 -149
  311. package/core/com/static/script.js +0 -28
  312. package/core/com/task/com.json +0 -4
  313. package/core/com/task/drive.js +0 -403
  314. package/core/com/task/index.js +0 -110
  315. package/core/com/task/script.js +0 -37
  316. package/core/com/timer/com.js +0 -217
  317. package/core/com/timer/com.json +0 -4
  318. package/core/com/tpl/com.js +0 -19
  319. package/core/com/tpl/com.json +0 -4
  320. package/lib/actions.js +0 -50
  321. package/lib/base.js +0 -361
  322. package/lib/com.js +0 -29
  323. package/lib/ref.js +0 -121
  324. package/middleware/cors/index.js +0 -119
  325. package/middleware/cors/middleware.json +0 -20
  326. package/middleware/csrf/index.js +0 -202
  327. package/middleware/csrf/middleware.json +0 -24
  328. package/middleware/ip_firewall/index.js +0 -476
  329. package/middleware/ip_firewall/middleware.json +0 -109
  330. package/middleware/mqtt_base/index.js +0 -10
  331. package/middleware/mqtt_base/middleware.json +0 -11
  332. package/middleware/security_audit/index.js +0 -543
  333. package/middleware/security_audit/middleware.json +0 -48
  334. package/middleware/waf/index.js +0 -343
  335. package/middleware/waf/middleware.json +0 -10
  336. package/middleware/waf_ddos/index.js +0 -520
  337. package/middleware/waf_ddos/middleware.json +0 -38
  338. package/middleware/waf_xss/index.js +0 -269
  339. package/middleware/waf_xss/middleware.json +0 -18
  340. package/middleware/web_after/index.js +0 -33
  341. package/middleware/web_after/middleware.json +0 -10
  342. package/middleware/web_base/index.js +0 -90
  343. package/middleware/web_base/middleware.json +0 -10
  344. package/middleware/web_before/index.js +0 -27
  345. package/middleware/web_before/middleware.json +0 -10
  346. package/middleware/web_check/index.js +0 -28
  347. package/middleware/web_check/middleware.json +0 -10
  348. package/middleware/web_main/index.js +0 -28
  349. package/middleware/web_main/middleware.json +0 -10
  350. package/middleware/web_proxy/index.js +0 -37
  351. package/middleware/web_proxy/middleware.json +0 -10
  352. package/middleware/web_render/index.js +0 -87
  353. package/middleware/web_render/middleware.json +0 -10
  354. package/middleware/web_socket/index.js +0 -34
  355. package/middleware/web_socket/middleware.json +0 -10
  356. package/middleware/web_static/index.js +0 -115
  357. package/middleware/web_static/middleware.json +0 -10
  358. /package/{core/com → com}/api/README.md +0 -0
  359. /package/{core/com → com}/db/README.md +0 -0
  360. /package/{core/com → com}/mqtt/README.md +0 -0
  361. /package/{core/com → com}/nav/README.md +0 -0
  362. /package/{core/com → com}/nav/tpl/admin_pc/page_channel.vue +0 -0
  363. /package/{core/com → com}/nav/tpl/admin_pc/page_default.vue +0 -0
  364. /package/{core/com → com}/nav/tpl/admin_pc/page_lang.vue +0 -0
  365. /package/{core/com → com}/nav/tpl/admin_pc/page_nav.vue +0 -0
  366. /package/{core/com → com}/nav/tpl/admin_pc/page_table.vue +0 -0
  367. /package/{core/com → com}/nav/tpl/admin_pc/page_type.vue +0 -0
  368. /package/{core/com → com}/nav/tpl/dev_pc/page_channel.vue +0 -0
  369. /package/{core/com → com}/nav/tpl/dev_pc/page_config.vue +0 -0
  370. /package/{core/com → com}/nav/tpl/dev_pc/page_form.vue +0 -0
  371. /package/{core/com → com}/nav/tpl/dev_pc/page_nav.vue +0 -0
  372. /package/{core/com → com}/nav/tpl/dev_pc/page_table.vue +0 -0
  373. /package/{core/com → com}/nav/tpl/home_pc/page_channel.vue +0 -0
  374. /package/{core/com → com}/nav/tpl/home_phone/page_list.vue +0 -0
  375. /package/{core/com → com}/param/README.md +0 -0
  376. /package/{core/com/cmd → com/pendant}/README.md +0 -0
  377. /package/{core/com → com}/socket/README.md +0 -0
  378. /package/{core/com → com}/sql/README.md +0 -0
  379. /package/{core/com → com}/static/README.md +0 -0
  380. /package/{core/com → com}/task/README.md +0 -0
@@ -1,354 +0,0 @@
1
- const Index = require('mm_machine').Index;
2
- const Drive = require('./drive');
3
-
4
- /**
5
- * Cmd导航类
6
- * @extends {Index}
7
- * @class
8
- */
9
- class Cmd extends Index {
10
- /**
11
- * 构造函数
12
- * @param {Object} scope 作用域
13
- * @param {String} title 标题
14
- * @constructor
15
- */
16
- constructor(scope, title) {
17
- super(scope, __dirname);
18
- this.Drive = Drive;
19
- this.type = "cmd";
20
- this.title = title;
21
- this.list_before = [];
22
- this.list_check = [];
23
- this.list_main = [];
24
- this.list_render = [];
25
- this.list_after = [];
26
- // 默认启用热更新
27
- this.mode = 3;
28
-
29
- /**
30
- * 配置参数
31
- */
32
- this.config = {
33
- table: "wechat_message",
34
- key: "message_id",
35
- // 聊天间隔时长,单位:秒,600秒为10分钟
36
- interval: 600
37
- };
38
- }
39
- }
40
-
41
- /**
42
- * 设置配置
43
- * @param {Object} config 配置参数
44
- */
45
- Cmd.prototype.set_config = function(config) {
46
- Object.assign(this.config, config);
47
- }
48
-
49
- /**
50
- * 执行指令
51
- * @param {Object} msg 消息对象
52
- * @param {Object} db 数据库对象
53
- * @param {Object} list 数据库对象
54
- * @return {Object} 返回值
55
- */
56
- Cmd.prototype.run_cmd_sub = async function(msg, db, tense = 'main') {
57
- var list = this['list_' + tense];
58
- if (!list) {
59
- return
60
- }
61
- var ret;
62
- for (var i = 0, o; o = list[i++];) {
63
- if (o.config.state === 1) {
64
- ret = await o.run(msg, db);
65
- if (ret) {
66
- db.ret = ret;
67
- // 如果匹配指令则将该消息定义为使用该指令
68
- msg.cmd = o.config.name;
69
- if (o.config.end) {
70
- break;
71
- }
72
- }
73
- }
74
- }
75
- return ret;
76
- }
77
-
78
-
79
-
80
- // // 获取当前未结束的会话记录
81
- // var log = await db.getObj(query);
82
- // // 如果不存在未结束会话,则创建新会话记录
83
- // if (!log) {
84
- // var bl = await db.add(msg);
85
- // if (bl) {
86
- // log = await db.getObj(query);
87
- // if (log) {
88
- // log.time_create = new Date().toStr('yyyy-MM-dd hh:mm:ss');
89
- // }
90
- // } else {
91
- // $.log.error('添加微信消息到wechat_message表失败!', log);
92
- // return null;
93
- // }
94
- // } else if (log.content_last !== msg.content) {
95
- // // 判断是否重复会话内容,如果未重复则添加新内容
96
- // log.content += '\r\n' + msg.content;
97
- // }
98
- // log.content_last = msg.content;
99
- // db.msg = log;
100
-
101
- // var lt = this.list_before;
102
- // for (var i = 0, o; o = lt[i++];) {
103
- // if (o.config.state === 1) {
104
- // ret = await o.run_cmd(msg, db);
105
- // if (ret) {
106
- // break;
107
- // }
108
- // }
109
- // }
110
- // if (!ret) {
111
- // // 判断会话记录是否锁定了指令, 如果存在则继续执行该指令程序
112
- // if (msg_log.cmd) {
113
- // // 检索指令驱动是否存在
114
- // var drive = this.list.getObj({
115
- // config: {
116
- // name: msg_log.cmd
117
- // }
118
- // });
119
-
120
- // if (drive) {
121
- // // 如果存在则执行指令
122
- // ret = await drive.run(msg, db);
123
- // } else {
124
- // // 如果不存在则结束会话, 并创建新会话
125
- // db.msg.end = 1;
126
- // var bl = await db.add(msg);
127
- // if (bl) {
128
- // msg_log = await db.getObj(query);
129
- // if (msg_log) {
130
- // msg_log.time_create =;
131
- // }
132
- // db.msg = msg_log;
133
- // }
134
- // }
135
- // }
136
-
137
- // if (db.msg.keyword) {
138
- // // 添加消息
139
- // msg.content = db.msg.keyword + "\r\n" + msg.content;
140
- // }
141
- // }
142
-
143
- /**
144
- * 获取上下文
145
- * @param {Object} msg 消息
146
- * @param {Object} db 数据管理器
147
- * @return {Object}
148
- */
149
- Cmd.prototype.get_context = async function(msg, db) {
150
- var cg = this.config;
151
- var now = new Date();
152
- var query = {
153
- from_user: msg.from_user,
154
- to_user: msg.to_user,
155
- group: msg.group,
156
- type: msg.type,
157
- time_create_max: now.addSeconds(cg.interval).toStr('yyyy-MM-dd hh:mm:ss')
158
- };
159
- var db1 = db.new(cg.table, cg.key);
160
- var log = await db1.getObj(query, '`time_create` desc');
161
- if(log && !log.end)
162
- {
163
- return log;
164
- }
165
- return null;
166
- }
167
-
168
- /**
169
- * 合并消息
170
- * @param {Object} msg
171
- * @param {Array} log
172
- */
173
- Cmd.prototype.merge_msg = function(msg, log) {
174
- var m = Object.assign({}, msg, log);
175
- m.content = log.content + "\r\n" + msg.content;
176
- m.content_last = msg.content;
177
- return m;
178
- }
179
-
180
- /**
181
- * 保存消息
182
- * @param {Object} msg 消息
183
- * @param {Object} db 数据管理器
184
- */
185
- Cmd.prototype.save_msg = async function(msg, db) {
186
- var cg = this.config;
187
- var db1 = db.new(cg.table, cg.key);
188
- var ret = db.ret;
189
- if (ret) {
190
- if (typeof(ret) == "object") {
191
- ret = JSON.stringify(ret);
192
- }
193
- msg.result = ret;
194
- }
195
- if (msg[cg.key]) {
196
- var qy = {};
197
- qy[cg.key] = msg[cg.key];
198
- return await db1.set(qy, msg);
199
- } else {
200
- return await db1.add(msg);
201
- }
202
- }
203
-
204
- /**
205
- * 执行指令
206
- * @param {Object} msg 消息
207
- * @param {Object} db 数据管理器
208
- * @return {Object|String}
209
- */
210
- Cmd.prototype.run = async function(msg, db) {
211
- // 判断是否含有消息和消息正文
212
- if (!msg || !msg.content) {
213
- return;
214
- }
215
- db.table = this.config.table;
216
- db.key = this.config.key;
217
- msg.stage = 1;
218
-
219
- // 1.先执行前时态指令
220
- var ret = await this.run_cmd_sub(msg, db, 'before');
221
- db.ret = ret;
222
- // console.log("执行前", ret);
223
- // 2.先执行验证时态指令,如果通过则返回空,否则返回验证失败结果。
224
- var ret_check = await this.run_cmd_sub(msg, db, 'check');
225
- // console.log("执行检查", ret_check);
226
- if (ret_check || ret_check === "") {
227
- ret = ret_check;
228
- } else {
229
- // 3-1.先判断本次内容是否为指令,如果是则执行指令。
230
- var ret_main = await this.run_cmd_sub(msg, db, 'main');
231
- console.log("执行", ret_main);
232
- if (ret_main) {
233
- ret = ret_main;
234
- }
235
- if (!ret) {
236
- // 3-2.如果本次内容非指令,则先获取历史未完成的指令。拼接本次内容,并执行指令。
237
- var log = await this.get_context(msg, db);
238
- if (log) {
239
- msg = this.merge_msg(msg, log);
240
- ret_main = await this.run_cmd_sub(msg, db, 'main');
241
- console.log("合并执行", ret_main);
242
- if (ret_main) {
243
- ret = ret_main;
244
- }
245
- }
246
- }
247
- }
248
-
249
- // 4.执行后时态指令
250
- var ret_after = await this.run_cmd_sub(msg, db, 'after');
251
- if (ret_after) {
252
- ret = ret_after;
253
- // console.log("执行后", ret);
254
- }
255
- if (ret) {
256
- db.ret = ret;
257
- }
258
-
259
- // 5.记录本次消息
260
- await this.save_msg(msg, db);
261
- return ret;
262
- };
263
-
264
- /**
265
- * 执行排序
266
- */
267
- Cmd.prototype.sort = async function() {
268
- this.list.sort(function(o1, o2) {
269
- var p1 = o1.sort;
270
- var p2 = o2.sort;
271
- return p2 - p1;
272
- });
273
- this.sort_tense();
274
- };
275
-
276
- /**
277
- * 排序时态
278
- */
279
- Cmd.prototype.sort_tense = async function() {
280
- this.list_before.clear();
281
- this.list_check.clear();
282
- this.list_main.clear();
283
- this.list_render.clear();
284
- this.list_after.clear();
285
-
286
- var lt = this.list;
287
- for (var i = 0; i < lt.length; i++) {
288
- var o = lt[i];
289
- switch (o.config.tense) {
290
- case "before":
291
- this.list_before.push(o);
292
- break;
293
- case "check":
294
- this.list_check.push(o);
295
- break;
296
- case "render":
297
- this.list_render.push(o);
298
- break;
299
- case "after":
300
- this.list_after.push(o);
301
- break;
302
- default:
303
- this.list_main.push(o);
304
- break;
305
- }
306
- }
307
- };
308
-
309
- /**
310
- * 下达指令
311
- * @param {String} name 名称
312
- * @param {Number} state 状态
313
- * @param {Array} ...params 参数集合
314
- */
315
- Cmd.prototype.cmd = async function(name, state, ...params) {
316
- var obj = this.get(name);
317
- if (!obj) {
318
- return "error: program does not exist";
319
- }
320
- return await obj.exec("cmd", state, ...params);
321
- }
322
-
323
- /* 导出指令 */
324
- exports.Cmd = Cmd;
325
-
326
- /**
327
- * Cmd事件池
328
- */
329
- if (!$.pool.cmd) {
330
- $.pool.cmd = {};
331
- }
332
-
333
- /**
334
- * Cmd管理器,用于创建缓存
335
- * @param {String} scope 作用域
336
- * @param {string} title 标题
337
- * @return {Object} 返回一个缓存类
338
- */
339
- function cmd_admin(scope, title) {
340
- if (!scope) {
341
- scope = $.val.scope + '';
342
- }
343
- var obj = $.pool.cmd[scope];
344
- if (!obj) {
345
- $.pool.cmd[scope] = new Cmd(scope, title);
346
- obj = $.pool.cmd[scope];
347
- }
348
- return obj;
349
- }
350
-
351
- /**
352
- * @module 导出Cmd管理器
353
- */
354
- $.cmd_admin = cmd_admin;
@@ -1,54 +0,0 @@
1
- // 条件(待开发)
2
- "condition": {
3
- // 什么时候
4
- "when": {
5
- "datetime": "{0}",
6
- },
7
- // 什么地点
8
- "where": {
9
- // 省份
10
- "province": "{0}",
11
- // 城市
12
- "city": "{0}",
13
- // 管辖区
14
- "area": "{0}",
15
- // 详细地址
16
- "address": ""
17
- },
18
- // 什么地点
19
- "who": {
20
- // 发话人
21
- "fromUser": "{0}",
22
- // 听话人
23
- "toUser": "{0}",
24
- // 牵涉人员
25
- "involve": [],
26
- // 机器人
27
- "robot": "{0}"
28
- },
29
- // 做什么
30
- "what": "",
31
- // 为什么(一般为空)
32
- "why": "",
33
- // 怎么做
34
- "how": [
35
- /**
36
- {
37
- // 行为名称(当询问为空时,也是回调函数名称)
38
- name: "not number",
39
- // 执行标识
40
- title: "缺少快递单号",
41
- // 执行的先后顺序
42
- sort: 10,
43
- // 缺少参数的判断方法
44
- not_match: "/[a-zA-Z0-9_]+/g",
45
- // 询问用户,加强条件用
46
- question: "快递单号多少?",
47
- // 校验方法名称,通过函数判断
48
- func_name: "",
49
- }
50
- */
51
- ],
52
- // 做到什么程度(传函数名, 成功表示满足条件, 不成功表示不满足)
53
- "how much": {}
54
- }