merge main

This commit is contained in:
linyuchen 2024-03-23 00:08:46 +08:00
commit 5cf45a452b
2 changed files with 60 additions and 42 deletions

View File

@ -30,18 +30,14 @@ async function onSettingWindowCreated(view: Element) {
const doc = parser.parseFromString([ const doc = parser.parseFromString([
'<div>', '<div>',
`<style>${StyleRaw}</style>`, `<style>${StyleRaw}</style>`,
`<setting-section> `<setting-section id="llonebot-error">
<setting-panel> <setting-panel><pre><code></code></pre></setting-panel>
<setting-list data-direction="column" class="new"> </setting-section>`,
<setting-item data-direction="row">
<setting-text class="llonebot-update-title">LLOneBot版本中</setting-text>
<setting-button data-type="secondary" class="llonebot-update-button"></setting-button>
</setting-item>
</setting-list>
</setting-panel>
<setting-section>`,
SettingList([ SettingList([
'<div id="llonebot-error" class="llonebot-error"></div>', SettingItem(
'<span id="llonebot-update-title">正在检查 LLOneBot 更新</span>', null,
SettingButton('请稍候', 'llonebot-update-button', 'secondary'),
),
]), ]),
SettingList([ SettingList([
SettingItem('启用 HTTP 服务', null, SettingItem('启用 HTTP 服务', null,
@ -98,7 +94,7 @@ async function onSettingWindowCreated(view: Element) {
`<div class="q-input" style="width:210px;"><input class="q-input__inner" data-config-key="token" type="text" value="${config.token}" placeholder="未设置" /></div>`, `<div class="q-input" style="width:210px;"><input class="q-input__inner" data-config-key="token" type="text" value="${config.token}" placeholder="未设置" /></div>`,
), ),
SettingItem( SettingItem(
'启用CQ码上报格式不启用则为消息段格式', '新消息上报格式',
'如客户端无特殊需求推荐保持默认设置,两者的详细差异可参考 <a href="javascript:LiteLoader.api.openExternal(\'https://github.com/botuniverse/onebot-11/tree/master/message#readme\');">OneBot v11 文档</a>', '如客户端无特殊需求推荐保持默认设置,两者的详细差异可参考 <a href="javascript:LiteLoader.api.openExternal(\'https://github.com/botuniverse/onebot-11/tree/master/message#readme\');">OneBot v11 文档</a>',
SettingSelect([ SettingSelect([
{text: '消息段', value: 'array'}, {text: '消息段', value: 'array'},
@ -182,18 +178,20 @@ async function onSettingWindowCreated(view: Element) {
'</div>', '</div>',
].join(''), "text/html"); ].join(''), "text/html");
let errorEle = <HTMLElement>doc.querySelector("#llonebot-error");
errorEle.style.display = 'none';
const showError = async () => { const showError = async () => {
setTimeout(async () => { await (new Promise((res) => setTimeout(() => res(true), 1000)));
let errMessage = await window.llonebot.getError();
console.log(errMessage) const errDom = doc.querySelector('#llonebot-error');
errMessage = errMessage.replace(/\n/g, '<br>') const errCodeDom = errDom.querySelector('code');
errorEle.innerHTML = errMessage; const errMsg = await window.llonebot.getError();
errorEle.style.display = errMessage ? 'flex' : 'none';
}, 1000) if (!errMsg) return;
errDom.classList.add('show');
errCodeDom.innerHTML = errMsg;
} }
showError().then() showError().then();
// 外链按钮 // 外链按钮
doc.querySelector('#open-github').addEventListener('click', () => { doc.querySelector('#open-github').addEventListener('click', () => {
window.LiteLoader.api.openExternal('https://github.com/LLOneBot/LLOneBot') window.LiteLoader.api.openExternal('https://github.com/LLOneBot/LLOneBot')
@ -335,33 +333,39 @@ async function onSettingWindowCreated(view: Element) {
}); });
// 更新逻辑 // 更新逻辑
async function checkVersionFunc(ResultVersion: CheckVersion) { async function checkVersionFunc(ResultVersion: CheckVersion) {
console.log(ResultVersion); const titleDom = view.querySelector<HTMLSpanElement>("#llonebot-update-title")!;
const buttonDom = view.querySelector<HTMLButtonElement>("#llonebot-update-button")!;
if (ResultVersion.version === "") { if (ResultVersion.version === "") {
view.querySelector(".llonebot-update-title").innerHTML = "检查更新失败"; titleDom.innerHTML = "检查更新失败";
view.querySelector(".llonebot-update-button").innerHTML = "点击重试"; buttonDom.innerHTML = "点击重试";
view.querySelector(".llonebot-update-button").addEventListener("click", async () => {
buttonDom.addEventListener("click", async () => {
window.llonebot.checkVersion().then(checkVersionFunc); window.llonebot.checkVersion().then(checkVersionFunc);
}); });
return; return;
} }
if (!ResultVersion.result) { if (!ResultVersion.result) {
view.querySelector(".llonebot-update-title").innerHTML = "当前已是最新版本 V" + ResultVersion.version; titleDom.innerHTML = "当前已是最新版本 v" + ResultVersion.version;
view.querySelector(".llonebot-update-button").innerHTML = "无需更新"; buttonDom.innerHTML = "无需更新";
} else { } else {
view.querySelector(".llonebot-update-title").innerHTML = "已检测到最新版本 V" + ResultVersion.version; titleDom.innerHTML = "已检测到最新版本 v" + ResultVersion.version;
view.querySelector(".llonebot-update-button").innerHTML = "点击更新"; buttonDom.innerHTML = "点击更新";
buttonDom.dataset.type = 'primary';
const update = async () => { const update = async () => {
view.querySelector(".llonebot-update-button").innerHTML = "正在更新中..."; buttonDom.innerHTML = "正在更新中...";
const result = await window.llonebot.updateLLOneBot(); const result = await window.llonebot.updateLLOneBot();
if (result) { if (result) {
view.querySelector(".llonebot-update-button").innerHTML = "更新完成请重启"; buttonDom.innerHTML = "";
view.querySelector(".llonebot-update-button").removeEventListener("click", update);
} else { } else {
view.querySelector(".llonebot-update-button").innerHTML = "更新失败前往仓库下载"; buttonDom.innerHTML = "更新失败,前往仓库下载";
view.querySelector(".llonebot-update-button").removeEventListener("click", update);
} }
buttonDom.removeEventListener("click", update);
} }
view.querySelector(".llonebot-update-button").addEventListener("click", update); buttonDom.addEventListener("click", update);
} }
} }
window.llonebot.checkVersion().then(checkVersionFunc); window.llonebot.checkVersion().then(checkVersionFunc);
@ -369,7 +373,6 @@ async function onSettingWindowCreated(view: Element) {
if (JSON.stringify(ob11Config) === JSON.stringify(config.ob11)) return; if (JSON.stringify(ob11Config) === JSON.stringify(config.ob11)) return;
config.ob11 = ob11Config; config.ob11 = ob11Config;
window.llonebot.setConfig(true, config); window.llonebot.setConfig(true, config);
}); });
} }

View File

@ -157,9 +157,24 @@ ob-setting-select::part(option-list) {
} }
#llonebot-error { #llonebot-error {
padding-top: 10px; display: none;
padding-bottom: 10px;
overflow: visible;
display: flex;
align-items: center;
} }
#llonebot-error setting-panel {
background: rgba(255, 0, 0, 0.5);
color: white;
}
#llonebot-error setting-panel pre {
margin: 0;
padding: 16px;
box-sizing: border-box;
}
#llonebot-error setting-panel pre code {
font-family: 'FiraCode Nerd Font', 'Fira Code', 'Cascadia Code', Consolas, 'Courier New', monospace;
}
#llonebot-error.show {
display: block;
}