UNPKG

mm_os

Version:

这是超级美眉服务端框架,用于快速构建应用程序。

213 lines (207 loc) 7.12 kB
/** * @fileOverview {0} * @author <a href="作者主页地址">插件作者</a> * @version 1.0 */ /** * 插件对象 */ module.exports = { /** * 安装,把插件安装到系统中,在安装时执行 * @param {Object} option 配置参数 * @param {String} option.path 插件安装路径 * @param {Object} option.config 插件配置信息 * @param {String} option.version 插件版本号 * @return {String} 成功返回null,否则返回错误提示。常见错误:路径不存在、版本不兼容、依赖缺失等 */ install(option) { var msg = null; // 此处常用于更新文件和导入数据库等操作。通常为一次操作 return msg; }, /** * 加载插件,当脚本被引入时会执行 * @param {Object} option 配置参数 * @return {String} 成功返回null, 否则返回错误提示。常见错误:依赖模块加载失败、模块冲突等 */ load(option) { var msg = null; // 此处通常用于require加载其他相关模块(不在脚本文件中直接require模块,可提高启动速度,可根据插件优先级优先加载模块) return msg; }, /** * 初始化插件,设置全局变量、路由规则和定时任务等 * @param {Object} option 配置参数 * @return {String} 成功返回null, 否则返回错误提示。常见错误:配置格式错误、路由冲突等 */ init(option) { var msg = null; // 此处主要用于重置全局变量和配置,更新路由和更新定时任务等操作 return msg; }, /** * 启动插件,开启路由监听和定时任务 * @param {Object} option 配置参数 * @return {String} 成功返回null,否则返回错误提示。常见错误:端口被占用、服务启动超时等 */ start(option) { var msg = null; // 此处主要用于开启路由和定时任务 return msg; }, /** * 重启插件,在配置更改或插件更新时执行 * @param {Object} option 配置参数 * @return {String} 成功返回null,否则返回错误提示。常见错误:重启超时、服务未完全停止等 */ restart(option) { var msg = null; this.stop(); this.start(); return msg; }, /** * 暂停插件,临时停止路由和定时任务的执行 * @param {Object} option 配置参数 * @return {String} 成功返回null,否则返回错误提示。常见错误:有未完成的任务、停止超时等 */ stop(option) { var msg = null; // 此处主要用于关闭路由和定时任务 return msg; }, /** * 结束插件,清理路由、定时任务和连接 * @param {Object} option 配置参数 * @return {String} 成功返回null,否则返回错误提示。常见错误:资源释放失败、清理超时等 */ end(option) { var msg = null; // 主要用于移除注册的路由、 定时任务连接 return msg; }, /** * 卸载已加载的模块,释放内存资源 * @param {Object} option 配置参数 * @return {String} 成功返回null,否则返回错误提示。常见错误:模块正在使用、依赖关系阻止卸载等 */ unload(option) { var msg = null; // 主要用于移除加载的模块,释放内存(卸载require的模块,降低系统运行内存) return msg; }, /** * 插件版本更新,包括下载、安装和重启 * @param {Object} option 配置参数 * @return {String} 成功返回null, 否则返回错误提示。常见错误:网络问题、版本冲突、空间不足等 */ update(option) { var msg = null; // 下载最新版本,重新安装、重新加载并初始化,如果本身程序属于启动状态,将重新启动 this.install(option); if (this.config.state == 1) { this.load(option); this.init(option); this.start(option); } return msg; }, /** * 卸载插件,完全移除插件及其相关资源 * @param {Object} option 配置参数 * @return {String} 成功返回null,否则返回错误提示。常见错误:文件删除失败、数据库清理失败等 */ uninstall(option) { var msg = null; // 此处从系统中完全删除程序及其所有相关文件和配置。卸载后,该插件不会在系统中留下任何痕迹‌ return msg; }, /** * 配置更新后的处理函数 * @param {Object} options 更新后的配置对象 */ update_options_after(options) { if (this.config.state) { this.restart(); } }, /** * 获取插件使用帮助信息 * @param {String} item 查询的功能项,如"install"、"api"等 * @return {Object} 返回帮助信息对象 * @example * // 获取安装相关帮助 * help("install") * // 返回: {title: "安装说明", steps: ["步骤1...", "步骤2..."], examples: [...]} */ help(item) { var tip = ""; switch (item) { case "run": break; default: break; } return tip; }, /** * 插件主程序,处理核心业务逻辑 * @param {Object} param1 业务参数对象 * @param {Object} param2 配置参数对象 * @return {Object} 返回执行结果对象 {code: 0, msg: "success", data: {}} * @example * main({action: "process", data: {id: 1}}, {options: {async: true}}) * // 返回: {code: 0, msg: "处理成功", data: {result: "..."}} */ main(param1, param2) { var ret = null; return ret; }, /** * 执行命令行指令 * @param {String} content 指令内容,格式为"命令 参数1 参数2..." * @return {String} 执行结果文本 * @example * cmd("status --detail") * // 返回: "运行状态: 正常\n内存使用: 80MB\n已运行时间: 2h" */ cmd(content) { var ret = ""; return ret; }, /** * 插件API接口,供其他插件调用 * @param {Object} ctx HTTP上下文对象 * @param {String} ctx.method 请求方法 * @param {Object} ctx.query 查询参数 * @param {Object} ctx.body 请求体数据 * @param {Object} db 数据库管理器实例 * @return {Object} 返回API执行结果 {code: 200, data: {}, msg: ""} * @example * api({method: "GET", query: {id: 1}}, db) * // 返回: {code: 200, data: {name: "test"}, msg: "success"} */ api(ctx, db) { var ret = ""; return ret; }, /** * 聊天消息处理函数,用于机器人开发 * @param {String} from_user 发送消息用户的唯一标识 * @param {String} to_user 接收消息用户的唯一标识 * @param {String} content 消息内容 * @param {String} group 群组ID,个人聊天时为空 * @param {Number} type 会话类型: 1-永久会话/群、2-临时会话/群 * @param {String} msg_type 消息类型: event-事件消息、message-普通消息(默认) * @param {Object} db 数据管理器实例 * @return {String} 回复消息内容 * @example * chat("user1", "user2", "你好", "", 1, "message", db) * // 返回: "你好,我是智能助手,有什么可以帮你的吗?" */ async chat(from_user, to_user, group, content, type, msg_type, db) { var ret = ""; return ret; } };