diff --git a/resource/schemas/NexusPHP/common.js b/resource/schemas/NexusPHP/common.js index b3b05115e..4b3d7f874 100644 --- a/resource/schemas/NexusPHP/common.js +++ b/resource/schemas/NexusPHP/common.js @@ -120,23 +120,21 @@ String.prototype.getQueryString = function(name, split) { } this.showAllContentMenus(event.originalEvent, success, error); }, - onDrop: this.isNexusPHP() - ? (data, event, success, error) => { - console.log(data); - let url = this.getDroperURL(data.url); - console.log(url); - this.showContentMenusForUrl( - { - url, - title: data.title, - link: data.url - }, - event.originalEvent, - success, - error - ); - } - : undefined + onDrop: (data, event, success, error) => { + console.log(data); + let url = this.getDroperURL(data.url); + console.log(url); + this.showContentMenusForUrl( + { + url, + title: data.title, + link: data.url + }, + event.originalEvent, + success, + error + ); + } }); // 复制下载链接 @@ -165,24 +163,22 @@ String.prototype.getQueryString = function(name, split) { error(); }); }, - onDrop: this.isNexusPHP() - ? (data, event, success, error) => { - if (checkPasskey && !PTService.site.passkey) { - error(this.t("needPasskey")); - return; - } - let url = this.getDroperURL(data.url); - url && - PTService.call(PTService.action.copyTextToClipboard, url) - .then(result => { - console.log("命令执行完成", result); - success(); - }) - .catch(() => { - error(); - }); - } - : undefined + onDrop: (data, event, success, error) => { + if (checkPasskey && !PTService.site.passkey) { + error(this.t("needPasskey")); + return; + } + let url = this.getDroperURL(data.url); + url && + PTService.call(PTService.action.copyTextToClipboard, url) + .then(result => { + console.log("命令执行完成", result); + success(); + }) + .catch(() => { + error(); + }); + } }); // 检查是否有下载管理权限 @@ -432,40 +428,13 @@ String.prototype.getQueryString = function(name, split) { siteURL += "/"; } - if (PTService.site.schema == "NexusPHP") { - if (!url.getQueryString) { - PTService.showNotice({ - msg: - "系统依赖函数(getQueryString)未正确加载,请尝试刷新页面或重新启用插件。" - }); - return null; - } - - if (url.indexOf("download.php") == -1) { - let id = url.getQueryString("id"); - if (id) { - // 如果站点没有配置禁用https,则默认添加https链接 - url = - siteURL + - "download.php?id=" + - id + - (PTService.site.passkey - ? "&passkey=" + PTService.site.passkey - : "") + - (PTService.site.disableHttps ? "" : "&https=1"); - } else { - url = ""; - } - } - } else { - if (url && url.substr(0, 2) === "//") { - url = `${location.protocol}://${url}`; - } else if (url && url.substr(0, 4) !== "http") { - if (url.substr(0, 1) == "/") { - url = url.substr(1); - } - url = `${siteURL}${url}`; + if (url && url.substr(0, 2) === "//") { + url = `${location.protocol}${url}`; + } else if (url && url.substr(0, 4) !== "http") { + if (url.substr(0, 1) == "/") { + url = url.substr(1); } + url = `${siteURL}${url}`; } return url; diff --git a/resource/schemas/NexusPHP/torrents.js b/resource/schemas/NexusPHP/torrents.js index d7738a44d..b721d77e0 100644 --- a/resource/schemas/NexusPHP/torrents.js +++ b/resource/schemas/NexusPHP/torrents.js @@ -72,6 +72,44 @@ ) ); } + + /** + * 获取有效的拖放地址 + * @param {*} url + */ + getDroperURL(url) { + let siteURL = PTService.site.url; + if (siteURL.substr(-1) != "/") { + siteURL += "/"; + } + + if (!url.getQueryString) { + PTService.showNotice({ + msg: + "系统依赖函数(getQueryString)未正确加载,请尝试刷新页面或重新启用插件。" + }); + return null; + } + + if (url.indexOf("download.php") === -1) { + let id = url.getQueryString("id"); + if (id) { + // 如果站点没有配置禁用https,则默认添加https链接 + url = + siteURL + + "download.php?id=" + + id + + (PTService.site.passkey + ? "&passkey=" + PTService.site.passkey + : "") + + (PTService.site.disableHttps ? "" : "&https=1"); + } else { + url = ""; + } + } + + return url; + } } new App().init(); })(jQuery); diff --git a/src/content/index.ts b/src/content/index.ts index 92e99537c..34633e7c5 100644 --- a/src/content/index.ts +++ b/src/content/index.ts @@ -771,7 +771,17 @@ class PTPContent { if (data && data.url) { onDrop.call(this, data, e, onSuccess, onError); } - } catch (error) {} + } catch (error) { + // 错误时,尝试直接使用文本内容 + let data = e.originalEvent.dataTransfer.getData("text/plain"); + if (data) { + data = { + url: data + }; + + onDrop.call(this, data, e, onSuccess, onError); + } + } }); // 离开拖放时