UNPKG

mirai-js

Version:

QQ robot development framework based on Mirai-api-http.

86 lines (73 loc) 2.09 kB
"use strict"; const { errCodeMap } = require('../../util/errCode'); const axios = require('axios').default; const { URL } = require('../../polyfill/URL'); const errorHandler = require('../../util/errorHandler'); const path = require('path'); const { isBrowserEnv } = require('../../util/isBrowserEnv'); const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser'; /** * @description 获取群文件列表 * @param {string} baseUrl mirai-api-http server 的地址 * @param {string} sessionKey 会话标识 * @param {string} id 文件夹id, 空串为根目录 * @param {string} path 文件夹路径, 文件夹允许重名, 不保证准确, 准确定位使用 id * @param {number} group 群号 * @param {boolern} withDownloadInfo 是否携带下载信息,额外请求,无必要不要携带 * @param {number} offset 分页偏移 * @param {number} size 分页大小 * @returns {Object[]} 结构 array[...{ id, name, path, parent, contact, isFile, isDirectory, downloadInfo }] */ module.exports = async ({ baseUrl, sessionKey, id, path, group /*, qq 字段保留 */ , withDownloadInfo, offset, size }) => { try { // 拼接 url const url = new URL('/file/list', baseUrl).toString(); // 请求 const responseData = await axios.get(url, { params: { sessionKey, id, path, target: group, group, withDownloadInfo, offset, size } }); try { var { data: { msg: message, code, data } } = responseData; } catch (error) { throw new Error('请求返回格式出错,请检查 mirai-console'); } // 抛出 mirai 的异常,到 catch 中处理后再抛出 if (code in errCodeMap) { throw new Error(message); } return data; } catch (error) { console.error(`mirai-js: error ${locationStr}`); errorHandler(error); } };