diff --git a/docs/Events.md b/docs/Events.md index 2ccde17..f69cb01 100644 --- a/docs/Events.md +++ b/docs/Events.md @@ -55,4 +55,36 @@ callback : Function > 此事件无法在手表协议上触发 +#### `onGroupRedbagLuckyKing`-群红包运气王提示 + +> 此事件无法在手表协议上触发 + +#### `onGroupMenberHonorChange`-群成员荣誉变更提示 + +> 此事件无法在手表协议上触发 + +#### `onGroupMenberTitleChange`-群成员头衔变更 + +#### `onGroupCardChange`-群成员名片更新 + +> 此事件不保证时效性, 仅在收到消息时校验卡片 + +#### `onReceiveOfflineFile`-接收到离线文件 + +#### `onClientStatusChange`-其他客户端在线状态变更 + +#### `onEssenceMessageChange`-精华消息变更 + +### 请求上报 + +#### `onAddFriendRequest`-加好友请求 + +#### `onAddGroupRequest`-加群请求/邀请 + +### 元事件上报 + +#### `onHeartBeat`-心跳包 + +#### `onLifeCycle`-生命周期 + diff --git a/docs/GuideEvents.md b/docs/GuideEvents.md new file mode 100644 index 0000000..8e11914 --- /dev/null +++ b/docs/GuideEvents.md @@ -0,0 +1 @@ +咕咕咕 \ No newline at end of file diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 6f1f5b1..1c11a6a 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -10,7 +10,10 @@ - [插件接口](interface.md) * [事件系统](Events.md) * [消息上报](Events.md#消息上报) - * [通知上报](Events.md#通知失败) + * [通知上报](Events.md#通知上报) + * [请求上报](Events.md#请求上报) + * [元事件上报](Events.md#元事件上报) + * [频道事件](GuideEvents.md) * [API](API.md) * [Bot帐号](API.md#bot帐号) * [好友消息](API.md#好友信息) diff --git a/xianyubb-bot/app.js b/xianyubb-bot/app.js new file mode 100644 index 0000000..ce0233e --- /dev/null +++ b/xianyubb-bot/app.js @@ -0,0 +1,77 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.bot = exports.log = void 0; +const fs = require("fs"); +const api_1 = require("./src/api"); +const keypress = require("keypress"); +const path = require("path"); +const Path = "./config/config.json"; +function mkdir() { + if (!fs.existsSync(Path)) { + fs.mkdirSync("./config"); + fs.writeFileSync(Path, JSON.stringify({ + address: "127.0.0.1", + port: 8080 + })); + } + if (!fs.existsSync("./plugins")) { + fs.mkdirSync("./plugins"); + } +} +mkdir(); +function log(...param) { + console.log(param); +} +exports.log = log; +const data_ = JSON.parse(fs.readFileSync(Path).toString()); +exports.bot = new api_1.Bot(`ws://${data_.address}:${data_.port}`); +exports.bot.bot.onopen = () => { + console.log("连接成功"); +}; +console.log("正在启动xianyubb-bot"); +console.log("正在连接go-cqhttp..."); +exports.bot.bot.on("error", (error) => { + console.error("WebSocket连接错误:", error); + console.log("正在尝试重连..."); + exports.bot = new api_1.Bot(`ws://${data_.address}:${data_.port}`); + exports.bot.bot.on("error", (err) => { + console.error("WebSocket重接错误:", error); + exit(); + }); +}); +// 监听连接关闭事件 +exports.bot.bot.on("close", (code, reason) => { + console.log("WebSocket已关闭,状态码:", code, "原因:", reason.toString()); + // 在连接关闭时执行适当的处理逻辑 + // 例如,可以尝试重新连接WebSocket +}); +function exit() { + console.log("点击任意键退出"); + // 开启键盘输入的监听 + keypress(process.stdin); + // 监听键盘按键事件 + process.stdin.on("keypress", (ch, key) => { + // 只要有键盘按键,就退出程序 + process.exit(); + }); + // 开启标准输入流的输入 + process.stdin.setRawMode(true); + process.stdin.resume(); +} +exports.bot.bot.onopen = () => { + console.log("连接成功"); + console.log("正在加载插件"); + const pluginsDir = './plugins'; // plugins文件夹路径 + let pluginarr = []; + fs.readdirSync(pluginsDir).forEach(file => { + var _a; + const pluginPath = path.join(pluginsDir, file); + if (path.extname(pluginPath) === '.js') { + (_a = path.resolve(pluginPath), Promise.resolve().then(() => require(_a))).then(() => { + let a = pluginarr.push(file); + console.log("已加载插件: " + a + "个"); + }); + } + }); +}; +//# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/xianyubb-bot/app.js.map b/xianyubb-bot/app.js.map new file mode 100644 index 0000000..ed1b093 --- /dev/null +++ b/xianyubb-bot/app.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app.js","sourceRoot":"","sources":["app.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/xianyubb-bot/package-lock.json b/xianyubb-bot/package-lock.json index 358b010..fb5653c 100644 --- a/xianyubb-bot/package-lock.json +++ b/xianyubb-bot/package-lock.json @@ -1,12 +1,12 @@ { "name": "xianyubb-bot", - "version": "0.0.0", + "version": "0.1.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "xianyubb-bot", - "version": "0.0.0", + "version": "0.1.2", "dependencies": { "keypress": "^0.2.1", "uuid": "^9.0.0" diff --git a/xianyubb-bot/src/Events.js b/xianyubb-bot/src/Events.js new file mode 100644 index 0000000..4e2816f --- /dev/null +++ b/xianyubb-bot/src/Events.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.echo = exports.wsevent = exports.bot = void 0; +const events_1 = require("events"); +exports.bot = new events_1.EventEmitter(); +exports.wsevent = new events_1.EventEmitter(); +exports.echo = new events_1.EventEmitter(); +//# sourceMappingURL=Events.js.map \ No newline at end of file diff --git a/xianyubb-bot/src/Events.js.map b/xianyubb-bot/src/Events.js.map new file mode 100644 index 0000000..32c3c14 --- /dev/null +++ b/xianyubb-bot/src/Events.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Events.js","sourceRoot":"","sources":["Events.ts"],"names":[],"mappings":";;;AACA,mCAAsC;AAiJzB,QAAA,GAAG,GAAa,IAAI,qBAAY,EAAE,CAAA;AAClC,QAAA,OAAO,GAAmB,IAAI,qBAAY,EAAE,CAAA;AAC5C,QAAA,IAAI,GAAiB,IAAI,qBAAY,EAAE,CAAA"} \ No newline at end of file diff --git a/xianyubb-bot/src/Events.ts b/xianyubb-bot/src/Events.ts index f0cd33b..279b9d2 100644 --- a/xianyubb-bot/src/Events.ts +++ b/xianyubb-bot/src/Events.ts @@ -31,6 +31,17 @@ export interface BotEvent extends EventEmitter { emit(Event: "onGroupBan", msg: data.GroupBan): any emit(Event: "onFriendAdd", msg: data.FrienAdd): any emit(Event: "onNotify", msg: data.Notify): any + emit(Event: "onGroupRedbagLuckyKing", msg: data.GroupRedbagLuckyKing): any + emit(Event: "onGroupMenberHonorChange", msg: data.GroupMenberHonorChange): any + emit(Event: "onGroupMenberTitleChange", msg: data.GroupMenberTitleChange): any + emit(Event: "onGroupCardChange", msg: data.GroupCardChange): any + emit(Event: "onReceiveOfflineFile", msg: data.ReceiveOfflineFile): any + emit(Event: "onClientStatusChange", msg: data.ClientStatusChange): any + emit(Event: "onEssenceMessageChange", msg: data.EssenceMessageChange): any + emit(Event: "onAddFriendRequest", msg: data.AddFriendRequest): any + emit(Event: "onAddGroupRequest", msg: data.AddGroupRequest): any + emit(Event: "onHeartBeat", msg: data.HeartBeat): any + emit(Event: "onLifeCycle", msg: data.LifeCycle):any emit(Event: "echo", msg: data.Returnecho): any @@ -45,6 +56,17 @@ export interface BotEvent extends EventEmitter { on(Event: "onGroupBan", listener: (msg: data.GroupBan) => void): any on(Event: "onFriendAdd", listener:(msg: data.FrienAdd)=>void): any on(Event: "onNotify", listener: (msg: data.Notify) => void): any + on(Event: "onGroupRedbagLuckyKing", listener:(msg: data.GroupRedbagLuckyKing)=>void): any + on(Event: "onGroupMenberHonorChange", listener:(msg: data.GroupMenberHonorChange)=>void): any + on(Event: "onGroupMenberTitleChange", listener:(msg: data.GroupMenberTitleChange)=>void): any + on(Event: "onGroupCardChange", listener:(msg: data.GroupCardChange)=>void): any + on(Event: "onReceiveOfflineFile", listener:(msg: data.ReceiveOfflineFile)=>void): any + on(Event: "onClientStatusChange", listener:(msg: data.ClientStatusChange)=>void): any + on(Event: "onEssenceMessageChange", listener:(msg: data.EssenceMessageChange)=>void): any + on(Event: "onAddFriendRequest", listener:(msg: data.AddFriendRequest)=>void): any + on(Event: "onAddGroupRequest", listener:(msg: data.AddGroupRequest)=>void): any + on(Event: "onHeartBeat", listener:(msg: data.HeartBeat)=>void): any + on(Event: "onLifeCycle", listener: (msg: data.LifeCycle)=>void): any on(Event: "echo", listener: (msg: data.Returnecho) => void): any @@ -59,6 +81,17 @@ export interface BotEvent extends EventEmitter { addListener(Event: "onGroupBan", listener: (msg: data.GroupBan) => void): this addListener(Event: "onFriendAdd", listener: (msg: data.FrienAdd) => void): this addListener(Event: "onNotify", listener: (msg: data.Notify) => void): this + addListener(Event: "onGroupRedbagLuckyKing", listener: (msg: data.GroupRedbagLuckyKing) => void):this + addListener(Event: "onGroupMenberHonorChange", listener: (msg: data.GroupMenberHonorChange) => void): this + addListener(Event: "onGroupMenberTitleChange", listener: (msg: data.GroupMenberTitleChange) => void): this + addListener(Event: "onGroupCardChange", listener: (msg: data.GroupCardChange) => void): this + addListener(Event: "onReceiveOfflineFile", listener: (msg: data.ReceiveOfflineFile) => void): this + addListener(Event: "onClientStatusChange", listener: (msg: data.ClientStatusChange) => void): this + addListener(Event: "onEssenceMessageChange", listener: (msg: data.EssenceMessageChange) => void): this + addListener(Event: "onAddFriendRequest", listener: (msg: data.AddFriendRequest) => void): this + addListener(Event: "onAddGroupRequest", listener: (msg: data.AddGroupRequest) => void): this + addListener(Event: "onHeartBeat", listener: (msg: data.HeartBeat) => void): this + addListener(Event: "onLifeCycle", listener: (msg: data.LifeCycle) => void): this addListener(Event: "echo", listener: (msg: data.Returnecho) => void): this removeAllListeners(Event: "onReceiveGroupMessage"): any; @@ -72,6 +105,17 @@ export interface BotEvent extends EventEmitter { removeAllListeners(Event: "onGroupBan"): any removeAllListeners(Event: "onFriendAdd"): any removeAllListeners(Event: "onNotify"): any + removeAllListeners(Event: "onGroupRedbagLuckyKing"): any + removeAllListeners(Event: "onGroupMenberHonorChange"): any + removeAllListeners(Event: "onGroupMenberTitleChange"): any + removeAllListeners(Event: "onGroupCardChange"): any + removeAllListeners(Event: "onReceiveOfflineFile"): any + removeAllListeners(Event: "onClientStatusChange"): any + removeAllListeners(Event: "onEssenceMessageChange"): any + removeAllListeners(Event: "onAddFriendRequest"): any + removeAllListeners(Event: "onAddGroupRequest"): any + removeAllListeners(Event: "onHeartBeat"): any + removeAllListeners(Event: "onLifeCycle"): any removeAllListeners(Event: "echo"): any; @@ -86,6 +130,17 @@ export interface BotEvent extends EventEmitter { once(Event: "onGroupBan", listener: (msg: data.GroupBan) => void): any once(Event: "onFriendAdd", listener: (msg: data.FrienAdd) => void):any once(Event: "onNotify", listener: (msg: data.Notify) => void): any + once(Event: "onGroupRedbagLuckyKing", listener: (msg: data.GroupRedbagLuckyKing) => void): any + once(Event: "onGroupMenberHonorChange", listener: (msg: data.GroupMenberHonorChange) => void): any + once(Event: "onGroupMenberTitleChange", listener: (msg: data.GroupMenberTitleChange) => void): any + once(Event: "onGroupCardChange", listener: (msg: data.GroupCardChange) => void): any + once(Event: "onReceiveOfflineFile", listener: (msg: data.ReceiveOfflineFile) => void): any + once(Event: "onClientStatusChange", listener: (msg: data.ClientStatusChange) => void): any + once(Event: "onEssenceMessageChange", listener: (msg: data.EssenceMessageChange) => void): any + once(Event: "onAddFriendRequest", listener: (msg: data.AddFriendRequest) => void): any + once(Event: "onAddGroupRequest", listener: (msg: data.AddGroupRequest) => void): any + once(Event: "onHeartBeat", listener: (msg: data.HeartBeat) => void): any + once(Event: "onLifeCycle", listener: (msg: data.LifeCycle) => void): any once(Event: "echo", listener: (msg: data.Returnecho) => void): any; } diff --git a/xianyubb-bot/src/api.js b/xianyubb-bot/src/api.js new file mode 100644 index 0000000..2b7891c --- /dev/null +++ b/xianyubb-bot/src/api.js @@ -0,0 +1,460 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Bot = void 0; +const ws_1 = require("ws"); +const events = require("./Events"); +const data_1 = require("./data"); +const uuid = require("uuid"); +class Bot { + constructor(ws) { + this.bot = new ws_1.WebSocket(ws); + this.BotEvents = events.bot; + this.WebSocketEvents = events.wsevent; + this.echoEvent = events.echo; + this.bot.onopen = (events) => { + this.connect(); + }; + this.bot.onmessage = (events) => { + this.Afterconnect(JSON.parse(events.data.toString())); + }; + } + connect() { + this.WebSocketEvents.emit("connect"); + } + Afterconnect(msg) { + this.WebSocketEvents.emit("message", msg); + (0, data_1.default)(msg, (type, data) => { + if (type === 'echo') + events.echo.emit(data.uuid, data); + this.BotEvents.emit(type, data); + }); + } + /** + * 获取登录号信息 + */ + get_login_info() { + return new Promise((reslove) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + reslove(data); + }); + this.bot.send(JSON.stringify({ + action: "get_login_info", + echo: echo + })); + }); + } + /** + * 设置登录号资料 (该api没有响应数据) + * @param nickname 名称 + * @param company 公司 + * @param email 邮箱 + * @param college 学校 + * @param personal_note 个人说明 + */ + set_qq_profile(nickname, company, email, college, personal_note) { + return new Promise((reslove) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + reslove(data); + }); + this.bot.send(JSON.stringify({ + action: "set_qq_profile", + params: { + nickname: nickname, + company: company, + email: email, + college: college, + personal_note: personal_note + }, + echo: echo + })); + }); + } + /** + * 获取企点账号信息 (该API只有企点协议可用) + */ + qidian_get_account_info() { + return new Promise((reslove) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + reslove(data); + }); + this.bot.send(JSON.stringify({ + action: "qidian_get_account_info", + echo: echo + })); + }); + } + /** + * 获取在线机型 (有关例子可从 https://github.com/Mrs4s/go-cqhttp/pull/872#issuecomment-831180149 找到) + * @param model + */ + _get_model_show(model) { + return new Promise((reslove) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + reslove(data); + }); + this.bot.send(JSON.stringify({ + action: "_get_model_show", + params: { + model: model + }, + echo: echo + })); + }); + } + /** + * 设置在线机型 (有关例子可从 https://github.com/Mrs4s/go-cqhttp/pull/872#issuecomment-831180149 找到) + * 该 API 没有响应数据 + * @param model + * @param model_show + */ + _set_model_show(model, model_show) { + return new Promise((reslove) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + reslove(data); + }); + this.bot.send(JSON.stringify({ + action: "_set_model_show", + params: { + model: model, + model_show: model_show + }, + echo: echo + })); + }); + } + /** + * 获取当前账号在线客户端列表 + * @param no_cache 是否无视缓存 + */ + get_online_clients(no_cache) { + return new Promise((reslove) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + reslove(data); + }); + this.bot.send(JSON.stringify({ + action: "get_online_clients", + params: { + no_cache: no_cache + }, + echo: echo + })); + }); + } + /** + * 获取陌生人信息 + * @param user_id QQ 号 + * @param no_cache 默认值:false 是否不使用缓存(使用缓存可能更新不及时, 但响应更快) + */ + get_stranger_info(user_id, no_cache = false) { + return new Promise((reslove) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + reslove(data); + }); + this.bot.send(JSON.stringify({ + action: " get_stranger_info", + params: { + user_id: user_id, + no_cache: no_cache + }, + echo: echo + })); + }); + } + /** + * 获取好友列表 + * 该 API 无需参数 + */ + get_friend_list() { + return new Promise((reslove) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + reslove(data); + }); + this.bot.send(JSON.stringify({ + action: "get_friend_list", + echo: echo + })); + }); + } + /** + * 获取单向好友列表 + * 该 API 无需参数 + */ + get_unidirectional_friend_list() { + return new Promise((reslove) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + reslove(data); + }); + this.bot.send(JSON.stringify({ + action: "get_unidirectional_friend_list", + echo: echo + })); + }); + } + /** + * 删除好友 + * 该 API 无响应数据 + * @param user_id 好友 QQ 号 + */ + delete_friend(user_id) { + return new Promise((reslove) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + reslove(data); + }); + this.bot.send(JSON.stringify({ + action: "delete_friend", + params: { + user_id: user_id + }, + echo: echo + })); + }); + } + /** + * 删除单向好友 + * 该 API 无响应数据 + * @param user_id 好友 QQ 号 + */ + delete_unidirectional_friend(user_id) { + return new Promise((reslove) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + reslove(data); + }); + this.bot.send(JSON.stringify({ + action: "delete_unidirectional_friend", + params: { + user_id: user_id + }, + echo: echo + })); + }); + } + /** + * 发送群消息 + * @param group_id 群号 + * @param msg 发送的信息 + * @param auto_escape 消息内容是否作为纯文本发送 ( 即不解析 CQ 码 ) , 只在 message 字段是字符串时有效 + */ + send_group_msg(group_id, msg, auto_escape) { + return new Promise((reslove) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + reslove(data); + }); + this.bot.send(JSON.stringify({ + action: "send_group_msg", + params: { + group_id: group_id, + message: msg, + auto_escape: auto_escape, + }, + echo: echo, + })); + }); + } + /** + * 发送私聊消息 + * @param user_id QQ号 + * @param msg 发送的信息 + * @param auto_escape 消息内容是否作为纯文本发送 ( 即不解析 CQ 码 ) , 只在 message 字段是字符串时有效 + */ + send_private_msg(user_id, msg, auto_escape) { + return new Promise((resolve) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + resolve(data); + }); + this.bot.send(JSON.stringify({ + action: "send_private_msg", + params: { + user_id: user_id, + message: msg, + auto_escape: auto_escape, + }, + echo: echo, + })); + }); + } + /** + * 发送消息 + * @param message 要发送的内容 + * @param message_type 消息类型, 支持 private、group , 分别对应私聊、群组, 如不传入, 则根据传入的 *_id 参数判断 + * @param user_id 对方 QQ 号 ( 消息类型为 private 时需要 ) + * @param group_id 群号 ( 消息类型为 group 时需要 ) + * @param auto_escape 消息内容是否作为纯文本发送 ( 即不解析 CQ 码 ) , 只在 message 字段是字符串时有效 + */ + send_msg(message, message_type, user_id, group_id, auto_escape = false) { + return new Promise((resolve) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + resolve(data); + }); + this.bot.send(JSON.stringify({ + action: "send_msg", + params: { + message_type: message_type, + group_id: group_id, + user_id: user_id, + message: message, + auto_escape: auto_escape, + }, + echo: echo, + })); + }); + } + /** + * 获取消息 + * @param message_id 消息id + */ + get_msg(message_id) { + return new Promise((resolve) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + resolve(data); + }); + this.bot.send(JSON.stringify({ + action: "get_msg", + params: { + message_id: message_id, + }, + echo: echo, + })); + }); + } + /** + * 撤回消息 + * 该 API 无响应数据 + * @param message_id 消息id + */ + delete_msg(message_id) { + return new Promise((resolve) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + resolve(data); + }); + this.bot.send(JSON.stringify({ + action: "delete_msg", + params: { + message_id: message_id, + }, + echo: echo, + })); + }); + } + /** + * 标记消息已读 + * 该 API 无响应数据 + * @param message_id 消息id + */ + nark_msg_as_resd(message_id) { + return new Promise((resolve) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + resolve(data); + }); + this.bot.send(JSON.stringify({ + action: "mark_msg_as_read", + params: { + message_id: message_id, + }, + echo: echo, + })); + }); + } + /** + * 获取合并转发内容 + * 字段 message_id 对应合并转发中的 id 字段 + * @param message_id 消息id + */ + get_forward_msg(message_id) { + return new Promise((resolve) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + resolve(data); + }); + this.bot.send(JSON.stringify({ + action: "get_forward_msg", + params: { + message_id: message_id, + }, + echo: echo, + })); + }); + } + /** + * 发送合并转发 ( 群聊 ) + * @param group_id 群号 + * @param message 自定义转发消息, 具体看 https://docs.go-cqhttp.org/cqcode + */ + send_group_forward_msg(group_id, message) { + return new Promise((resolve) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + resolve(data); + }); + this.bot.send(JSON.stringify({ + action: "send_group_forward_msg", + params: { + group_id: group_id, + message: message, + }, + echo: echo, + })); + }); + } + /** + * 发送合并转发 ( 好友 ) + * @param user_id 好友QQ号 + * @param message 自定义转发消息, 具体看 https://docs.go-cqhttp.org/cqcode + */ + send_private_forward_msg(user_id, message) { + return new Promise((resolve) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + resolve(data); + }); + this.bot.send(JSON.stringify({ + action: "send_private_forward_msg", + params: { + user_id: user_id, + message: message, + }, + echo: echo, + })); + }); + } + /** + * 获取群消息历史记录 + * 不提供起始序号将默认获取最新的消息 + * @param group_id 群号 + * @param message_seq 起始消息序号, 可通过 get_msg 获得 + */ + get_group_msg_history(group_id, message_seq) { + return new Promise((resolve) => { + const echo = uuid.v4(); + this.echoEvent.once(echo, (data) => { + resolve(data); + }); + this.bot.send(JSON.stringify({ + action: "get_group_msg_history", + params: { + group_id: group_id, + message: message_seq, + }, + echo: echo, + })); + }); + } +} +exports.Bot = Bot; +//# sourceMappingURL=api.js.map \ No newline at end of file diff --git a/xianyubb-bot/src/api.js.map b/xianyubb-bot/src/api.js.map new file mode 100644 index 0000000..996781c --- /dev/null +++ b/xianyubb-bot/src/api.js.map @@ -0,0 +1 @@ +{"version":3,"file":"api.js","sourceRoot":"","sources":["api.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/xianyubb-bot/src/data.js b/xianyubb-bot/src/data.js new file mode 100644 index 0000000..7e90df3 --- /dev/null +++ b/xianyubb-bot/src/data.js @@ -0,0 +1,240 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.notice = void 0; +const message = (data, callback) => { + switch (data.message_type) { + case "group": + const GroupMessage = { + message_id: data.message_id, + sub_type: data.sub_type, + font: data.font, + user_id: data.user_id, + message: data.message, + group_id: data.group_id, + raw_message: data.raw_message, + sender: data.sender, + anonymous: data.anonymous, + target_id: data.target_id, + }; + callback("onReceiveGroupMessage", GroupMessage); + break; + case "private": + const PrivateMessage = { + user_id: data.user_id, + sub_type: data.sub_type, + message_id: data.message_id, + message: data.message, + raw_message: data.raw_message, + font: data.font, + sender: data.sender, + target_id: data.target_id + }; + callback("onReceivePrivateMessage", PrivateMessage); + break; + } +}; +const notice = (data, callback) => { + switch (data.notice_type) { + case "friend_recall": + const PrivateDeleteMsg = { + user_id: data.user_id, + message_id: data.message_id + }; + callback("onPrivateDeleteMsg", PrivateDeleteMsg); + break; + case "group_recall": + const GroupDeleteMsg = { + group_id: data.group_id, + operator_id: data.operator_id, + user_id: data.user_id, + message_id: data.message_id, + }; + callback("onGroupDeleteMsg", GroupDeleteMsg); + break; + case "group_increase": + const GroupMenberAdd = { + sub_type: data.sub_type, + group_id: data.group_id, + user_id: data.user_id, + operator_id: data.operator_id + }; + callback("onGroupMenberAdd", GroupMenberAdd); + break; + case "group_decrease": + const GroupMenberDecrease = { + sub_type: data.sub_type, + group_id: data.group_id, + operator_id: data.operator_id, + user_id: data.user_id + }; + callback("onGroupMenberDecrease", GroupMenberDecrease); + break; + case "group_admin": + const GroupAdminChange = { + user_id: data.user_id, + group_id: data.group_id, + sub_type: data.sub_type + }; + callback("onGroupAdminChange", GroupAdminChange); + break; + case "group_upload": + const GroupFileUpload = { + group_id: data.group_id, + file: data.file, + user_id: data.user_id + }; + callback("onGroupFileUpload", GroupFileUpload); + break; + case "group_ban": + const GroupBan = { + user_id: data.user_id, + group_id: data.group_id, + operator_id: data.operator_id, + sub_type: data.sub_type, + duration: data.duration + }; + callback("onGroupBan", GroupBan); + break; + case "friend_add": + const FriendAdd = { + user_id: data.user_id, + }; + callback("onFriendAdd", FriendAdd); + break; + case "notify": + switch (data.sub_type) { + case "poke": + const Notify = { + group_id: data.group_id, + target_id: data.target_id, + user_id: data.user_id, + sender_id: data.sender_id + }; + callback("onNotify", Notify); + break; + case "lucky_king": + const GroupRedbagLuckyKing = { + group_id: data.group_id, + user_id: data.user_id, + target_id: data.target_id + }; + callback("onGroupRedbagLuckyKing", GroupRedbagLuckyKing); + break; + case "honor": + const GroupMenberHonorChange = { + group_id: data.group_id, + user_id: data.user_id, + honor_type: data.honor_type + }; + callback("onGroupMenberHonorChange", GroupMenberHonorChange); + break; + case "title": + const GroupMenberTitleChange = { + group_id: data.group_id, + user_id: data.user_id, + title: data.title + }; + callback("onGroupMenberTitleChange", GroupMenberTitleChange); + break; + } + break; + case "group_card": + const GroupCardChange = { + group_id: data.group_id, + user_id: data.user_id, + card_new: data.card_new, + card_old: data.card_old + }; + callback("onGroupCardChange", GroupCardChange); + break; + case "offline_file": + const ReceiveOfflineFile = { + user_id: data.user_id, + file: data.file + }; + callback("onReceiveOfflineFile", ReceiveOfflineFile); + break; + case "client_status": + const ClientStatusChange = { + client: data.client, + online: data.online, + }; + callback("onClientStatusChange", ClientStatusChange); + break; + case "essencs": + const EssenceMessageChange = { + sender_id: data.sender_id, + group_id: data.group_id, + sub_type: data.sub_type, + operator_id: data.operator_id, + message_id: data.message_id, + }; + callback("onEssenceMessageChange", EssenceMessageChange); + break; + } +}; +exports.notice = notice; +const request = (data, callback) => { + switch (data.request_type) { + case "friend": + const AddFriendRequest = { + user_id: data.user_id, + comment: data.comment, + flag: data.flag + }; + callback("onAddFriendRequest", AddFriendRequest); + break; + case "group": + const AddGroupRequest = { + group_id: data.group_id, + user_id: data.user_id, + comment: data.comment, + flag: data.flag, + sub_type: data.sub_type + }; + callback("onAddGroupRequest", AddGroupRequest); + break; + } +}; +const metaevent = (data, callback) => { + switch (data.meta_event_type) { + case "heartbeat": + const HeartBeat = { + status: data.status, + interval: data.interval + }; + callback("onHeartBeat", HeartBeat); + break; + case "lifecycle": + const LifeCycle = { + sub_type: data.sub_type + }; + callback("onLifeCycle", LifeCycle); + break; + } +}; +exports.default = (msg, callback) => { + if (msg.post_type) { + switch (msg.post_type) { + case "message": + message(msg, callback); + break; + case "notice": + (0, exports.notice)(msg, callback); + break; + case "request": + request(msg, callback); + break; + case "meta_event": + metaevent(msg, callback); + break; + } + } + else if (msg.echo) { + callback('echo', { + uuid: msg.echo, + data: msg.data + }); + } +}; +//# sourceMappingURL=data.js.map \ No newline at end of file diff --git a/xianyubb-bot/src/data.js.map b/xianyubb-bot/src/data.js.map new file mode 100644 index 0000000..e773f59 --- /dev/null +++ b/xianyubb-bot/src/data.js.map @@ -0,0 +1 @@ +{"version":3,"file":"data.js","sourceRoot":"","sources":["data.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/xianyubb-bot/src/data.ts b/xianyubb-bot/src/data.ts index f8867d4..b48dac4 100644 --- a/xianyubb-bot/src/data.ts +++ b/xianyubb-bot/src/data.ts @@ -1,4 +1,3 @@ - export interface Data { time: number, self_id: number, @@ -135,74 +134,117 @@ export interface Notice extends Data { card_new: string, card_old: string, client: any, - online:boolean + online: boolean } -export interface File{ - id:string, +export interface File { + id: string, name: string, size: number, url: string, - busi:number + busi: number } -export interface PrivateDeleteMsg{ - user_id:number - message_id:number +export interface PrivateDeleteMsg { + user_id: number + message_id: number } export interface GroupDeleteMsg { group_id: number, - operator_id:number + operator_id: number user_id: number message_id: number } export interface GroupMenberAdd { - sub_type:string - user_id:number + sub_type: string + user_id: number group_id: number, operator_id: number, } export interface GroupMenberDecrease { - sub_type:string + sub_type: string group_id: number, operator_id: number, - user_id:number + user_id: number } -export interface GroupAdminChange{ +export interface GroupAdminChange { sub_type: string, group_id: number, - user_id:number + user_id: number } -export interface GroupFileUpload{ +export interface GroupFileUpload { group_id: number, user_id: number, - file:File + file: File } -export interface GroupBan{ +export interface GroupBan { sub_type: string, group_id: number, operator_id: number, user_id: number, - duration:number + duration: number } -export interface FrienAdd{ - user_id:number +export interface FrienAdd { + user_id: number } -export interface Notify{ - sub_type: string, +export interface Notify { sender_id: number, user_id: number, target_id: number - group_id:number + group_id: number +} + +export interface GroupRedbagLuckyKing { + group_id: number, + user_id: number, + target_id: number +} + +export interface GroupMenberHonorChange { + group_id: number, + user_id: number, + honor_type: string +} + +export interface GroupMenberTitleChange { + group_id: number, + user_id: number, + title: string +} + +export interface GroupCardChange { + group_id: number, + user_id: number, + card_new: string, + card_old: string, +} + +export interface ReceiveOfflineFile { + user_id: number, + file: File +} + +export interface ClientStatusChange { + client: any, + online: boolean +} + +export interface EssenceMessageChange { + sub_type: string, + group_id: number, + sender_id: number, + operator_id: number, + message_id: number } + export const notice = (data: Notice, callback: (Events: string, msg: any) => void) => { switch (data.notice_type) { case "friend_recall": @@ -217,13 +259,13 @@ export const notice = (data: Notice, callback: (Events: string, msg: any) => voi group_id: data.group_id, operator_id: data.operator_id, user_id: data.user_id, - message_id:data.message_id, + message_id: data.message_id, } callback("onGroupDeleteMsg", GroupDeleteMsg) break case "group_increase": const GroupMenberAdd: GroupMenberAdd = { - sub_type:data.sub_type, + sub_type: data.sub_type, group_id: data.group_id, user_id: data.user_id, operator_id: data.operator_id @@ -272,18 +314,167 @@ export const notice = (data: Notice, callback: (Events: string, msg: any) => voi callback("onFriendAdd", FriendAdd) break case "notify": - const Notify: Notify = { - sub_type: data.sub_type, + switch (data.sub_type) { + case "poke": + const Notify: Notify = { + group_id: data.group_id, + target_id: data.target_id, + user_id: data.user_id, + sender_id: data.sender_id + } + callback("onNotify", Notify) + break; + case "lucky_king": + const GroupRedbagLuckyKing: GroupRedbagLuckyKing = { + group_id: data.group_id, + user_id: data.user_id, + target_id: data.target_id + } + callback("onGroupRedbagLuckyKing", GroupRedbagLuckyKing) + break + case "honor": + const GroupMenberHonorChange: GroupMenberHonorChange = { + group_id: data.group_id, + user_id: data.user_id, + honor_type: data.honor_type + } + callback("onGroupMenberHonorChange", GroupMenberHonorChange) + break; + case "title": + const GroupMenberTitleChange: GroupMenberTitleChange = { + group_id: data.group_id, + user_id: data.user_id, + title: data.title + } + callback("onGroupMenberTitleChange", GroupMenberTitleChange) + break + } + break + case "group_card": + const GroupCardChange: GroupCardChange = { group_id: data.group_id, - target_id: data.target_id, user_id: data.user_id, - sender_id: data.sender_id + card_new: data.card_new, + card_old: data.card_old + } + callback("onGroupCardChange", GroupCardChange) + break; + case "offline_file": + const ReceiveOfflineFile: ReceiveOfflineFile = { + user_id: data.user_id, + file: data.file } - callback("onNotify", Notify) + callback("onReceiveOfflineFile", ReceiveOfflineFile) break; + case "client_status": + const ClientStatusChange: ClientStatusChange = { + client: data.client, + online: data.online, + } + callback("onClientStatusChange", ClientStatusChange) + break; + case "essencs": + const EssenceMessageChange: EssenceMessageChange = { + sender_id: data.sender_id, + group_id: data.group_id, + sub_type: data.sub_type, + operator_id: data.operator_id, + message_id: data.message_id, + } + callback("onEssenceMessageChange", EssenceMessageChange) + break } } // request消息 +export interface Request extends Data { + request_type: string, + user_id: number, + comment: string, + flag: string, + sub_type: string, + group_id: number, +} + +export interface AddFriendRequest { + user_id: number, + comment: string, + flag: string +} + +export interface AddGroupRequest { + user_id: number, + group_id: number, + comment: string, + sub_type: string, + flag: string +} + +const request = (data: Request, callback: (Events: string, msg: any) => void) => { + switch (data.request_type) { + case "friend": + const AddFriendRequest: AddFriendRequest = { + user_id: data.user_id, + comment: data.comment, + flag: data.flag + } + callback("onAddFriendRequest", AddFriendRequest) + break; + case "group": + const AddGroupRequest: AddGroupRequest = { + group_id: data.group_id, + user_id: data.user_id, + comment: data.comment, + flag: data.flag, + sub_type: data.sub_type + } + callback("onAddGroupRequest", AddGroupRequest) + break + } +} + +// meta_event +export interface MetaEvent extends Data { + meta_event_type: string, + status: Status, + interval: number, + sub_type: string +} + +export interface Status { + app_initialized: boolean, + app_enabled: boolean, + plugins_good: boolean, + app_good: boolean, + online: boolean, + stat: boolean +} + +export interface HeartBeat { + status: Status, + interval: number +} + +export interface LifeCycle { + sub_type: string +} + +const metaevent = (data: MetaEvent, callback: (Events: string, msg: any) => void) => { + switch (data.meta_event_type) { + case "heartbeat": + const HeartBeat: HeartBeat = { + status: data.status, + interval:data.interval + } + callback("onHeartBeat", HeartBeat) + break + case "lifecycle": + const LifeCycle: LifeCycle = { + sub_type:data.sub_type + } + callback("onLifeCycle", LifeCycle) + break + } +} // echo export interface Returnecho { @@ -301,6 +492,12 @@ export default (msg: any, callback: (Events: string, data: any) => void) => { case "notice": notice(msg, callback) break + case "request": + request(msg, callback) + break; + case "meta_event": + metaevent(msg, callback) + break } } else if (msg.echo) { callback('echo', { diff --git a/xianyubb-bot/src/plugins.js b/xianyubb-bot/src/plugins.js new file mode 100644 index 0000000..7b53121 --- /dev/null +++ b/xianyubb-bot/src/plugins.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Plugins = void 0; +class Plugins { + constructor(name, description, version, otherinformation) { + this.name = name; + this.description = description; + this.version = version; + this.otherinformation = otherinformation; + console.log("加载插件: " + this.name + "\n版本: " + this.version + "\n描述: " + this.description + "\n其他信息: " + JSON.stringify(this.otherinformation)); + } +} +exports.Plugins = Plugins; +//# sourceMappingURL=plugins.js.map \ No newline at end of file diff --git a/xianyubb-bot/src/plugins.js.map b/xianyubb-bot/src/plugins.js.map new file mode 100644 index 0000000..f7d025a --- /dev/null +++ b/xianyubb-bot/src/plugins.js.map @@ -0,0 +1 @@ +{"version":3,"file":"plugins.js","sourceRoot":"","sources":["plugins.ts"],"names":[],"mappings":";;;AACA,MAAa,OAAO;IAKlB,YAAY,IAAY,EAAE,WAAmB,EAAE,OAAiB,EAAE,gBAAwB;QACxF,IAAI,CAAC,IAAI,GAAE,IAAI,CAAC;QAChB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAC,IAAI,CAAC,IAAI,GAAC,QAAQ,GAAC,IAAI,CAAC,OAAO,GAAC,QAAQ,GAAC,IAAI,CAAC,WAAW,GAAC,UAAU,GAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAClI,CAAC;CACF;AAZD,0BAYC"} \ No newline at end of file