在写tampermonkey脚本的时候碰到无法给RPC Aria2发送下载任务,请求大佬帮忙解决。

查看 19|回复 1
作者:小不点的对象   
那个大佬能不能帮优化解决一下,在苹果safari浏览器可以用就行。

前一段时间首间更新了tampermonkey, 结果导致以前那个脚本丢掉了 ,     还是2年前写的,那个可以正常发送到RPC,
脚本端口是16800     密钥部分,我用XXXXXXX代替了。
[JavaScript] 纯文本查看 复制代码// ==UserScript==
// @name         Aria2 测试连接与添加任务
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  在任意网页中添加一个按钮,用于测试 Aria2 连接并提交下载任务。
// @AuThor       YourName
// @match        *://*/*
// @grant        GM_xmlhttpRequest
// @connect      localhost
// ==/UserScript==
(function() {
    'use strict';
    // 创建按钮元素
    const button = document.createElement("button");
    button.innerText = "测试 Aria2 并添加下载";
    button.style.position = "fixed";
    button.style.bottom = "20px";
    button.style.right = "20px";
    button.style.zIndex = "99999";
    button.style.backgroundColor = "#4CAF50";
    button.style.color = "white";
    button.style.padding = "12px 20px";
    button.style.border = "none";
    button.style.borderRadius = "5px";
    button.style.cursor = "pointer";
    button.style.fontSize = "14px";
    button.style.boxShadow = "0 4px 6px rgba(0,0,0,0.1)";
    // 将按钮添加到页面
    document.body.appendChild(button);
    // 按钮点击事件处理函数
    button.onclick = function() {
        testAria2Connection();
    };
    // 测试Aria2连接并添加下载任务的函数
    function testAria2Connection() {
        console.log("【Aria2测试】按钮点击事件触发");
        // 构建RPC请求数据
        const rpcData = {
            jsonrpc: "2.0",
            id: new Date().getTime(), // 使用时间戳作为ID
            method: "aria2.addUri",
            params: [
                "token:XXXXXXX", // 确保这里的token和Aria2配置中的token一致
                ["https://img0.baidu.com/it/u=3107514090,445525120&fm=253&fmt=auto&app=138&f=JPEG"]
            ]
        };
        console.log("【Aria2测试】发送请求数据:", rpcData);
        // 使用GM_xmlhttpRequest发送请求
        GM_xmlhttpRequest({
            method: "POST",
            url: "http://localhost:16800/jsonrpc", // 确保这里的URL是正确的
            headers: {
                "Content-Type": "application/json"
            },
            data: JSON.stringify(rpcData),
            onload: function(response) {
                console.log("【Aria2测试】收到响应:", response);
                if (response.status === 200) {
                    try {
                        const result = JSON.parse(response.responseText);
                        console.log("解析响应:", result);
                        if (result.error) {
                            console.error("Aria2 Error:", result.error.message);
                        } else {
                            console.log("任务已添加,GID:", result.result);
                        }
                    } catch (e) {
                        console.error("解析响应失败", e);
                    }
                } else {
                    console.error("HTTP 错误:", response.status, response.statusText);
                }
            },
            onerror: function(err) {
                console.error("请求失败:", err);
            }
        });
    }
})();

大佬, 测试

小不点的对象
OP
  

脚本内有一个图片的下载链接,,通过脚本触发测试,把这个链接发送到RPC Aria2下载就可以啦
您需要登录后才可以回帖 登录 | 立即注册

返回顶部