⚡️ 细节优化
This commit is contained in:
39
.github/ISSUE_TEMPLATE/bug_report.md
vendored
39
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -4,32 +4,41 @@ about: 创建一份报告来帮助我们改进
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**问题描述**
|
||||
请简要描述您遇到的问题。
|
||||
请简要描述您遇到的问题,并尽量避免透露可能的敏感信息,如API密钥、密码等。
|
||||
|
||||
**Yunzai版本**
|
||||
Miao-Yunzai
|
||||
|
||||
**Yenai-Plugin版本**
|
||||
latest version
|
||||
|
||||
**如何复现**
|
||||
请详细描述如何复现问题,步骤越详细越好。
|
||||
请详细描述如何复现问题,步骤越详细越好。这有助于我们快速定位问题。
|
||||
|
||||
1. 打开 '...'
|
||||
2. 点击 '....'
|
||||
3. 滚动到 '....'
|
||||
4. 出现错误
|
||||
1. **环境信息**
|
||||
- **操作系统**: 如Windows 10, macOS Mojave, Ubuntu 20.04等
|
||||
- **Node.js版本**: 输出结果 `node -v`
|
||||
- **项目版本/分支**: 如果适用,请提供git分支或项目的特定版本号
|
||||
- **依赖状态**: 是否最新安装所有依赖 (`npm install` 或 `yarn` 最近执行时间)
|
||||
|
||||
**期望结果**
|
||||
请简要描述您期望得到的结果。
|
||||
2. **复现步骤**
|
||||
- 第一步
|
||||
- 第二步
|
||||
- 请尽量详细地描述你的操作过程。
|
||||
|
||||
**实际结果**
|
||||
请简要描述您实际得到的结果。
|
||||
3. **预期行为**
|
||||
描述您期望在完成上述步骤后,系统应有的正确行为或输出。
|
||||
|
||||
4. **实际行为**
|
||||
描述系统实际的行为或输出。
|
||||
|
||||
5. **附加信息**
|
||||
- **错误日志**: 如果有的话,请附上相关错误日志或截图。
|
||||
- **特殊配置**: 是否有进行任何特别的插件配置或修改。
|
||||
- **复现频率**: 问题是否每次操作都会出现,还是偶尔出现?
|
||||
|
||||
**截图**
|
||||
如果可以,请提供相关截图以帮助解释您的问题。
|
||||
|
||||
**其他说明**
|
||||
如果您有任何其他信息或说明,请在这里添加。
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ export default new class {
|
||||
* @param {object} [options.params] - 请求的参数
|
||||
* @param {object} [options.headers] - 请求的HTTP头部
|
||||
* @param {boolean} [options.closeCheckStatus] - 是否关闭状态检查
|
||||
* @param {'buffer'|'json'|'text'|'arrayBuffer'|'formData'|'blob'}[options.statusCode] - 期望的返回数据,如果设置了该值,则返回响应数据的特定的方法(如json()、text()等)
|
||||
* @param {'buffer'|'json'|'text'|'arrayBuffer'|'formData'|'blob'}[options.responseType] - 期望的返回数据,如果设置了该值,则返回响应数据的特定的方法(如json()、text()等)
|
||||
* @param {boolean} [options.origError] 出现错误是否返回原始错误
|
||||
* @param {boolean} [options.outErrorLog] 出现错误是否在控制台打印错误日志,默认为true
|
||||
* @returns {Promise<Response|*>} - HTTP响应或响应数据
|
||||
@@ -77,7 +77,7 @@ export default new class {
|
||||
* @param {object} [options.params] - 请求的参数
|
||||
* @param {object} [options.headers] - 请求的HTTP头部
|
||||
* @param {boolean} [options.closeCheckStatus] - 是否关闭状态检查
|
||||
* @param {'buffer'|'json'|'text'|'arrayBuffer'|'formData'|'blob'} [options.statusCode] - 期望的返回数据,如果设置了该值,则返回响应数据的特定的方法(如json()、text()等)
|
||||
* @param {'buffer'|'json'|'text'|'arrayBuffer'|'formData'|'blob'} [options.responseType] - 期望的返回数据,如果设置了该值,则返回响应数据的特定的方法(如json()、text()等)
|
||||
* @param {boolean} [options.origError] 出现错误是否返回原始错误
|
||||
* @param {boolean} [options.outErrorLog] 出现错误是否在控制台打印错误日志,默认为true
|
||||
* @returns {Promise<Response|*>} - HTTP响应或响应数据
|
||||
@@ -226,8 +226,9 @@ export default new class {
|
||||
if (!options.closeCheckStatus) {
|
||||
res = checkStatus(res)
|
||||
}
|
||||
if (options.statusCode) {
|
||||
return res[options.statusCode]()
|
||||
const responseType = options.responseType || options.statusCode
|
||||
if (responseType) {
|
||||
return res[responseType]()
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ export default async function getFastFetch(e) {
|
||||
if (!isFeatureVisible(e.isPro)) return ""
|
||||
let ret = await execSync("bash plugins/yenai-plugin/resources/state/state.sh")
|
||||
if (ret.error) {
|
||||
e.reply(`❎ 请检查是否使用git bash启动Yunzai-bot\n错误信息:${ret.stderr}`)
|
||||
logger.error(`[Yenai-Plugin][状态]Error FastFetch 请检查是否使用git bash启动Yunzai-bot,错误信息:${ret.stderr}`)
|
||||
return ""
|
||||
}
|
||||
return ret.stdout.trim()
|
||||
|
||||
@@ -3,20 +3,32 @@ import requset from "../../lib/request/request.js"
|
||||
import { createAbortCont } from "./utils.js"
|
||||
export async function getBackground() {
|
||||
const { backdrop, backdropDefault } = Config.state
|
||||
if (!isValidUrl(backdrop)) {
|
||||
if (!backdrop?.startsWith("http")) {
|
||||
return backdrop
|
||||
}
|
||||
let { controller, clearTimeout } = await createAbortCont(5000)
|
||||
try {
|
||||
const startTime = Date.now()
|
||||
|
||||
const buffer = await requset.get(backdrop, {
|
||||
statusCode: "arrayBuffer",
|
||||
signal: controller.signal,
|
||||
outErrorLog: false
|
||||
})
|
||||
|
||||
const endTime = Date.now()
|
||||
|
||||
const elapsedTime = endTime - startTime
|
||||
|
||||
const fileSizeInBytes = buffer.byteLength
|
||||
const fileSizeInKB = (fileSizeInBytes / 1024).toFixed(2)
|
||||
|
||||
logger.info(`[Yenai-Plugin][状态]背景图片请求成功 ${fileSizeInKB}KB ${elapsedTime}ms`)
|
||||
|
||||
const buffBase64 = arrayBufferToBase64(buffer)
|
||||
return `data:image/jpeg;base64,${buffBase64}`
|
||||
} catch (err) {
|
||||
logger.error(`Error requset state background image: ${err.message}`)
|
||||
logger.error(`[Yenai-Plugin][状态]背景图请求失败,使用默认背景图“${backdropDefault}”,错误原因: ${err.message}`)
|
||||
const Plugin_Path = "../../../../../plugins/yenai-plugin"
|
||||
return `${Plugin_Path}/resources/state/img/${backdropDefault}`
|
||||
} finally {
|
||||
@@ -27,7 +39,3 @@ export async function getBackground() {
|
||||
function arrayBufferToBase64(arrayBuffer) {
|
||||
return Buffer.from(arrayBuffer).toString("base64")
|
||||
}
|
||||
function isValidUrl(str) {
|
||||
const urlRegex = /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w.-]+)+[\w\-._~:/?#[\]@!$&'()*+,;=.]+$/
|
||||
return urlRegex.test(str)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user