脚本猫,后台脚本,获取 另一个 函数内 Promise 返回值
// ==UserScript==
// @name Pt_Sign
// @namespace pt_Sign2
// @version 0.2.0
// @description sign
// @author 24-4-30
// @grant GM_xmlhttpRequest
// @grant GM_notification
// @grant GM_log
// @connect test.com
// @crontab * * once * *
// ==/UserScript==
// 定时 脚本
// 签到 函数,网址,网站名字
function sign(url,website_name) {
return new Promise((resolve, reject) => {
// 定义目标URL
let targetUrl = url;
// 发送GET请求
GM_xmlhttpRequest({
method: 'GET',
url: targetUrl,
onload: function(response) {
// 请求成功,显示返回的内容
// console.log(website_name + ' 返回的内容:');
// 网页 返回 文本
let webtext = response.responseText;
// 判断 成功 字符串, || 是逻辑或(OR)运算符, btschool 魔力值
if(webtext.indexOf('到已得') != -1 || webtext.indexOf('魔力值') != -1 ) {
GM_notification(website_name + ' 签到 完成');
resolve( website_name + "_sign ok");
// 执行成功,并 返回值 ,返回到 主函数
} else {
// 签到错误
console.log(website_name + "~~~~~~~~~" +webtext);
GM_notification(website_name + ' 签到 失败');
reject(website_name + "_sign fail");
// 执行失败,并 返回值 ,返回到 主函数
}
},
onerror: function(error) {
// 请求失败,显示错误信息
console.error(website_name + ' 请求失败:', error);
// 弹出提示框
GM_notification(website_name + ' 请求失败:', error);
reject(website_name + "_sign error");
// 执行失败,并返回错误原因
}
});
});
}
return new Promise(async (resolve, reject) => {
try {
// 签到
const end = await sign('https://test.com/index.php?action=addbonus', 'web name');
GM_log("sign");
resolve("sign -ok:",end);
} catch (error) {
//GM_log(error);
reject("sign -error: " + error);
}
});