diff --git a/app/static/js/qas.addtask.user.js b/app/static/js/qas.addtask.user.js index 1c0367b..591613d 100644 --- a/app/static/js/qas.addtask.user.js +++ b/app/static/js/qas.addtask.user.js @@ -2,7 +2,7 @@ // @name QAS一键推送助手 // @namespace https://github.com/Cp0204/quark-auto-save // @license AGPL -// @version 0.3 +// @version 0.4 // @description 在夸克网盘分享页面添加推送到 QAS 的按钮 // @icon https://pan.quark.cn/favicon.ico // @author Cp0204 @@ -11,41 +11,53 @@ // @grant GM_setValue // @grant GM_xmlhttpRequest // @require https://cdn.jsdelivr.net/npm/sweetalert2@11 -// @downloadURL https://update.greasyfork.org/scripts/533201/QAS%E4%B8%80%E9%94%AE%E6%8E%A8%E9%80%81%E5%8A%A9%E6%89%8B.user.js -// @updateURL https://update.greasyfork.org/scripts/533201/QAS%E4%B8%80%E9%94%AE%E6%8E%A8%E9%80%81%E5%8A%A9%E6%89%8B.meta.js +// @downloadURL https://cdn.jsdelivr.net/gh/Cp0204/quark-auto-save@refs/heads/main/app/static/js/qas.addtask.user.js +// @updateURL https://cdn.jsdelivr.net/gh/Cp0204/quark-auto-save@refs/heads/main/app/static/js/qas.addtask.user.js // ==/UserScript== -(function() { +(function () { 'use strict'; let qas_base = GM_getValue('qas_base', ''); let qas_token = GM_getValue('qas_token', ''); + let default_pattern = GM_getValue('default_pattern', ''); + let default_replace = GM_getValue('default_replace', ''); // QAS 设置弹窗函数 function showQASSettingDialog(callback) { Swal.fire({ title: 'QAS 设置', + showCancelButton: true, html: ` - - + + + + + `, focusConfirm: false, preConfirm: () => { qas_base = document.getElementById('qas_base').value; qas_token = document.getElementById('qas_token').value; + default_pattern = document.getElementById('default_pattern').value; + default_replace = document.getElementById('default_replace').value; if (!qas_base || !qas_token) { - Swal.showValidationMessage('请填写 QAS 服务器和 Token'); + Swal.showValidationMessage('请填写 QAS 地址和 Token'); } - return { qas_base: qas_base, qas_token: qas_token } + return { qas_base: qas_base, qas_token: qas_token, default_pattern: default_pattern, default_replace: default_replace } } }).then((result) => { if (result.isConfirmed) { GM_setValue('qas_base', result.value.qas_base); GM_setValue('qas_token', result.value.qas_token); + GM_setValue('default_pattern', result.value.default_pattern); + GM_setValue('default_replace', result.value.default_replace); qas_base = result.value.qas_base; qas_token = result.value.qas_token; + default_pattern = result.value.default_pattern; + default_replace = result.value.default_replace; if (callback) { callback(); // 执行回调函数 } @@ -93,18 +105,18 @@ qasButton.type = 'button'; qasButton.className = 'ant-btn share-save'; qasButton.style.marginLeft = '10px'; - qasButton.innerHTML = '推送到QAS'; + qasButton.innerHTML = '创建QAS任务'; let taskname, shareurl, savepath; // 声明变量 // 获取数据函数 function getData() { const currentUrl = window.location.href; - taskname = currentUrl.lastIndexOf('-') > 0 ? decodeURIComponent(currentUrl.match(/.*\/[^-]+-(.+)$/)[1]) : document.querySelector('.author-name').textContent; + taskname = currentUrl.lastIndexOf('-') > 0 ? decodeURIComponent(currentUrl.match(/.*\/[^-]+-(.+)$/)[1]).replace('*101', '-') : document.querySelector('.author-name').textContent; shareurl = currentUrl; - let pathElement = document.querySelector('.path-name') + let pathElement = document.querySelector('.path-name'); savepath = pathElement ? pathElement.title.replace('全部文件', '').trim() : ""; - savepath += "/" + taskname + savepath += "/" + taskname; qasButton.title = `任务名称: ${taskname}\n分享链接: ${shareurl}\n保存路径: ${savepath}`; } @@ -119,11 +131,19 @@ qasButton.addEventListener('click', () => { getData(); // 点击时重新获取数据,确保最新 - const apiUrl = `http://${qas_base}/api/add_task?token=${qas_token}`; + // 检查 qas_base 是否包含 http 或 https,如果没有则添加 http:// + let qasApiBase = qas_base; + if (!qasApiBase.startsWith('http')) { + qasApiBase = 'http://' + qasApiBase; + } + const apiUrl = `${qasApiBase}/api/add_task?token=${qas_token}`; + const data = { "taskname": taskname, "shareurl": shareurl, "savepath": savepath, + "pattern": default_pattern, + "replace": default_replace, }; GM_xmlhttpRequest({ @@ -133,7 +153,7 @@ 'Content-Type': 'application/json' }, data: JSON.stringify(data), - onload: function(response) { + onload: function (response) { try { const jsonResponse = JSON.parse(response.responseText); if (jsonResponse.success) { @@ -142,7 +162,7 @@ html: ` 任务名称: ${taskname}

保存路径: ${savepath}

- 去 QAS 查看 + 去 QAS 查看 `, icon: 'success' }); @@ -161,7 +181,7 @@ }); } }, - onerror: function(error) { + onerror: function (error) { Swal.fire({ title: '任务创建失败', text: error,