Collect seeded Qinglong script repositories
This commit is contained in:
803
脚本库/web版/账密/叮咚鱼塘/2025-08-25_ddmc_ddyt_8848c2ac.js
Normal file
803
脚本库/web版/账密/叮咚鱼塘/2025-08-25_ddmc_ddyt_8848c2ac.js
Normal file
@@ -0,0 +1,803 @@
|
||||
// # Source: https://github.com/imoki/sign_script/blob/main/polymerization/ddmc_ddyt.js
|
||||
// # Raw: https://raw.githubusercontent.com/imoki/sign_script/main/polymerization/ddmc_ddyt.js
|
||||
// # Repo: imoki/sign_script
|
||||
// # Path: polymerization/ddmc_ddyt.js
|
||||
// # UploadedAt: 2025-08-25T21:29:14+08:00
|
||||
// # SHA256: 8848c2ac8c9c09a61d016a63d4ebba5937c435dca08666179c5a2be34ed1df8f
|
||||
// # Category: web版/账密
|
||||
// # Evidence: web/H5关键词 + username/password/login
|
||||
//
|
||||
|
||||
/*
|
||||
name: "叮咚鱼塘"
|
||||
cron: 45 0 9 * * *
|
||||
脚本兼容: 金山文档(1.0),金山文档(2.0)
|
||||
更新时间:20241025
|
||||
环境变量名:无
|
||||
环境变量值:无
|
||||
备注:需要Cookie、seedId、propsId。
|
||||
"叮咚买菜"APP,然后用抓包软件进行抓包,分别在叮咚鱼塘中点击喂饲料,在果园中点击浇水,就能抓到含有Cookie、seedId和propsId的包。
|
||||
*/
|
||||
|
||||
var sheetNameSubConfig = "ddmc"; // 分配置表名称
|
||||
let sheetNameSubConfig2 = "ddmc_ddyt";
|
||||
var pushHeader = "【叮咚鱼塘】";
|
||||
var sheetNameConfig = "CONFIG"; // 总配置表
|
||||
var sheetNamePush = "PUSH"; // 推送表名称
|
||||
var sheetNameEmail = "EMAIL"; // 邮箱表
|
||||
var flagSubConfig = 0; // 激活分配置工作表标志
|
||||
var flagConfig = 0; // 激活主配置工作表标志
|
||||
var flagPush = 0; // 激活推送工作表标志
|
||||
var line = 21; // 指定读取从第2行到第line行的内容
|
||||
var message = ""; // 待发送的消息
|
||||
var messageArray = []; // 待发送的消息数据,每个元素都是某个账号的消息。目的是将不同用户消息分离,方便个性化消息配置
|
||||
var messageOnlyError = 0; // 0为只推送失败消息,1则为推送成功消息。
|
||||
var messageNickname = 0; // 1为推送位置标识(昵称/单元格Ax(昵称为空时)),0为不推送位置标识
|
||||
var messageHeader = []; // 存放每个消息的头部,如:单元格A3。目的是分离附加消息和执行结果消息
|
||||
var messagePushHeader = pushHeader; // 存放在总消息的头部,默认是pushHeader,如:【xxxx】
|
||||
var version = 1 // 版本类型,自动识别并适配。默认为airscript 1.0,否则为2.0(Beta)
|
||||
var separator = "##########MOKU##########" // 分割符,分割消息。可用于PUSH.js灵活推送
|
||||
var maxMessageLength = 400; // 设置最大长度,超过这个长度则分片发送
|
||||
var messageDistance = 100; // 消息距离,用于匹配100字符内最近的行
|
||||
|
||||
var jsonPush = [
|
||||
{ name: "bark", key: "xxxxxx", flag: "0" },
|
||||
{ name: "pushplus", key: "xxxxxx", flag: "0" },
|
||||
{ name: "ServerChan", key: "xxxxxx", flag: "0" },
|
||||
{ name: "email", key: "xxxxxx", flag: "0" },
|
||||
{ name: "dingtalk", key: "xxxxxx", flag: "0" },
|
||||
{ name: "discord", key: "xxxxxx", flag: "0" },
|
||||
]; // 推送数据,flag=1则推送
|
||||
var jsonEmail = {
|
||||
server: "",
|
||||
port: "",
|
||||
sender: "",
|
||||
authorizationCode: "",
|
||||
}; // 有效邮箱配置
|
||||
|
||||
// =================青龙适配开始===================
|
||||
|
||||
qlSwitch = 0
|
||||
|
||||
// =================青龙适配结束===================
|
||||
|
||||
// =================金山适配开始===================
|
||||
// airscript检测版本
|
||||
function checkVesion(){
|
||||
try{
|
||||
let temp = Application.Range("A1").Text;
|
||||
Application.Range("A1").Value = temp
|
||||
console.log("😶🌫️ 检测到当前airscript版本为1.0,进行1.0适配")
|
||||
}catch{
|
||||
console.log("😶🌫️ 检测到当前airscript版本为2.0,进行2.0适配")
|
||||
version = 2
|
||||
}
|
||||
}
|
||||
|
||||
// 推送相关
|
||||
// 获取时间
|
||||
function getDate(){
|
||||
let currentDate = new Date();
|
||||
currentDate = currentDate.getFullYear() + '/' + (currentDate.getMonth() + 1).toString() + '/' + currentDate.getDate().toString();
|
||||
return currentDate
|
||||
}
|
||||
|
||||
// 将消息写入CONFIG表中作为消息队列,之后统一发送
|
||||
function writeMessageQueue(message){
|
||||
// 当天时间
|
||||
let todayDate = getDate()
|
||||
flagConfig = ActivateSheet(sheetNameConfig); // 激活主配置表
|
||||
// 主配置工作表存在
|
||||
if (flagConfig == 1) {
|
||||
console.log("✨ 开始将结果写入主配置表");
|
||||
for (let i = 2; i <= 100; i++) {
|
||||
// 找到指定的表行
|
||||
if(Application.Range("A" + (i + 2)).Value == sheetNameSubConfig2){
|
||||
// 写入更新的时间
|
||||
Application.Range("F" + (i + 2)).Value = todayDate
|
||||
// 写入消息
|
||||
Application.Range("G" + (i + 2)).Value = message
|
||||
console.log("✨ 写入结果完成");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 总推送
|
||||
function push(message) {
|
||||
writeMessageQueue(message) // 将消息写入CONFIG表中
|
||||
// if (message != "") {
|
||||
// // message = messagePushHeader + message // 消息头最前方默认存放:【xxxx】
|
||||
// let length = jsonPush.length;
|
||||
// let name;
|
||||
// let key;
|
||||
// for (let i = 0; i < length; i++) {
|
||||
// if (jsonPush[i].flag == 1) {
|
||||
// name = jsonPush[i].name;
|
||||
// key = jsonPush[i].key;
|
||||
// if (name == "bark") {
|
||||
// bark(message, key);
|
||||
// } else if (name == "pushplus") {
|
||||
// pushplus(message, key);
|
||||
// } else if (name == "ServerChan") {
|
||||
// serverchan(message, key);
|
||||
// } else if (name == "email") {
|
||||
// email(message);
|
||||
// } else if (name == "dingtalk") {
|
||||
// dingtalk(message, key);
|
||||
// } else if (name == "discord") {
|
||||
// discord(message, key);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// } else {
|
||||
// console.log("🍳 消息为空不推送");
|
||||
// }
|
||||
}
|
||||
|
||||
// 推送bark消息
|
||||
function bark(message, key) {
|
||||
if (key != "") {
|
||||
message = messagePushHeader + message // 消息头最前方默认存放:【xxxx】
|
||||
message = encodeURIComponent(message)
|
||||
BARK_ICON = "https://s21.ax1x.com/2024/06/23/pkrUkfe.png"
|
||||
let url = "https://api.day.app/" + key + "/" + message + "/" + "?icon=" + BARK_ICON;
|
||||
// 若需要修改推送的分组,则将上面一行改为如下的形式
|
||||
// let url = 'https://api.day.app/' + bark_id + "/" + message + "?group=分组名";
|
||||
let resp = HTTP.get(url, {
|
||||
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
||||
});
|
||||
sleep(5000);
|
||||
}
|
||||
}
|
||||
|
||||
// 推送pushplus消息
|
||||
function pushplus(message, key) {
|
||||
if (key != "") {
|
||||
message = encodeURIComponent(message)
|
||||
// url = "http://www.pushplus.plus/send?token=" + key + "&content=" + message;
|
||||
url = "http://www.pushplus.plus/send?token=" + key + "&content=" + message + "&title=" + pushHeader; // 增加标题
|
||||
let resp = HTTP.fetch(url, {
|
||||
method: "get",
|
||||
});
|
||||
sleep(5000);
|
||||
}
|
||||
}
|
||||
|
||||
// 推送serverchan消息
|
||||
function serverchan(message, key) {
|
||||
if (key != "") {
|
||||
url =
|
||||
"https://sctapi.ftqq.com/" +
|
||||
key +
|
||||
".send" +
|
||||
"?title=" + messagePushHeader +
|
||||
"&desp=" +
|
||||
message;
|
||||
let resp = HTTP.fetch(url, {
|
||||
method: "get",
|
||||
});
|
||||
sleep(5000);
|
||||
}
|
||||
}
|
||||
|
||||
// email邮箱推送
|
||||
function email(message) {
|
||||
var myDate = new Date(); // 创建一个表示当前时间的 Date 对象
|
||||
var data_time = myDate.toLocaleDateString(); // 获取当前日期的字符串表示
|
||||
let server = jsonEmail.server;
|
||||
let port = parseInt(jsonEmail.port); // 转成整形
|
||||
let sender = jsonEmail.sender;
|
||||
let authorizationCode = jsonEmail.authorizationCode;
|
||||
|
||||
let mailer;
|
||||
mailer = SMTP.login({
|
||||
host: server,
|
||||
port: port,
|
||||
username: sender,
|
||||
password: authorizationCode,
|
||||
secure: true,
|
||||
});
|
||||
mailer.send({
|
||||
from: pushHeader + "<" + sender + ">",
|
||||
to: sender,
|
||||
subject: pushHeader + " - " + data_time,
|
||||
text: message,
|
||||
});
|
||||
// console.log("🍳 已发送邮件至:" + sender);
|
||||
console.log("🍳 已发送邮件");
|
||||
sleep(5000);
|
||||
}
|
||||
|
||||
// 邮箱配置
|
||||
function emailConfig() {
|
||||
console.log("🍳 开始读取邮箱配置");
|
||||
let length = jsonPush.length; // 因为此json数据可无序,因此需要遍历
|
||||
let name;
|
||||
for (let i = 0; i < length; i++) {
|
||||
name = jsonPush[i].name;
|
||||
if (name == "email") {
|
||||
if (jsonPush[i].flag == 1) {
|
||||
let flag = ActivateSheet(sheetNameEmail); // 激活邮箱表
|
||||
// 邮箱表存在
|
||||
// var email = {
|
||||
// 'email':'', 'port':'', 'sender':'', 'authorizationCode':''
|
||||
// } // 有效配置
|
||||
if (flag == 1) {
|
||||
console.log("🍳 开始读取邮箱表");
|
||||
for (let i = 2; i <= 2; i++) {
|
||||
// 从工作表中读取推送数据
|
||||
jsonEmail.server = Application.Range("A" + i).Text;
|
||||
jsonEmail.port = Application.Range("B" + i).Text;
|
||||
jsonEmail.sender = Application.Range("C" + i).Text;
|
||||
jsonEmail.authorizationCode = Application.Range("D" + i).Text;
|
||||
if (Application.Range("A" + i).Text == "") {
|
||||
// 如果为空行,则提前结束读取
|
||||
break;
|
||||
}
|
||||
}
|
||||
// console.log(jsonEmail)
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 推送钉钉机器人
|
||||
function dingtalk(message, key) {
|
||||
message = messagePushHeader + message // 消息头最前方默认存放:【xxxx】
|
||||
let url = "https://oapi.dingtalk.com/robot/send?access_token=" + key;
|
||||
let resp = HTTP.post(url, { msgtype: "text", text: { content: message } });
|
||||
// console.log(resp.text())
|
||||
sleep(5000);
|
||||
}
|
||||
|
||||
// 推送Discord机器人
|
||||
function discord(message, key) {
|
||||
message = messagePushHeader + message // 消息头最前方默认存放:【xxxx】
|
||||
let url = key;
|
||||
let resp = HTTP.post(url, { content: message });
|
||||
//console.log(resp.text())
|
||||
sleep(5000);
|
||||
}
|
||||
|
||||
// =================金山适配结束===================
|
||||
// =================共用开始===================
|
||||
// main() // 入口
|
||||
|
||||
// function main(){
|
||||
checkVesion() // 版本检测,以进行不同版本的适配
|
||||
|
||||
flagConfig = ActivateSheet(sheetNameConfig); // 激活推送表
|
||||
// 主配置工作表存在
|
||||
if (flagConfig == 1) {
|
||||
console.log("🍳 开始读取主配置表");
|
||||
let name; // 名称
|
||||
let onlyError;
|
||||
let nickname;
|
||||
for (let i = 2; i <= 100; i++) {
|
||||
// 从工作表中读取推送数据
|
||||
name = Application.Range("A" + i).Text;
|
||||
onlyError = Application.Range("C" + i).Text;
|
||||
nickname = Application.Range("D" + i).Text;
|
||||
if (name == "") {
|
||||
// 如果为空行,则提前结束读取
|
||||
break; // 提前退出,提高效率
|
||||
}
|
||||
if (name == sheetNameSubConfig) {
|
||||
if (onlyError == "是") {
|
||||
messageOnlyError = 1;
|
||||
console.log("🍳 只推送错误消息");
|
||||
}
|
||||
|
||||
if (nickname == "是") {
|
||||
messageNickname = 1;
|
||||
console.log("🍳 单元格用昵称替代");
|
||||
}
|
||||
|
||||
break; // 提前退出,提高效率
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
flagPush = ActivateSheet(sheetNamePush); // 激活推送表
|
||||
// 推送工作表存在
|
||||
if (flagPush == 1) {
|
||||
console.log("🍳 开始读取推送工作表");
|
||||
let pushName; // 推送类型
|
||||
let pushKey;
|
||||
let pushFlag; // 是否推送标志
|
||||
for (let i = 2; i <= line; i++) {
|
||||
// 从工作表中读取推送数据
|
||||
pushName = Application.Range("A" + i).Text;
|
||||
pushKey = Application.Range("B" + i).Text;
|
||||
pushFlag = Application.Range("C" + i).Text;
|
||||
if (pushName == "") {
|
||||
// 如果为空行,则提前结束读取
|
||||
break;
|
||||
}
|
||||
jsonPushHandle(pushName, pushFlag, pushKey);
|
||||
}
|
||||
// console.log(jsonPush)
|
||||
}
|
||||
|
||||
// 邮箱配置函数
|
||||
emailConfig();
|
||||
|
||||
flagSubConfig = ActivateSheet(sheetNameSubConfig); // 激活分配置表
|
||||
if (flagSubConfig == 1) {
|
||||
console.log("🍳 开始读取分配置表");
|
||||
|
||||
if(qlSwitch != 1){ // 金山文档
|
||||
for (let i = 2; i <= line; i++) {
|
||||
var cookie = Application.Range("A" + i).Text;
|
||||
var exec = Application.Range("B" + i).Text;
|
||||
if (cookie == "") {
|
||||
// 如果为空行,则提前结束读取
|
||||
break;
|
||||
}
|
||||
if (exec == "是") {
|
||||
execHandle(cookie, i);
|
||||
}
|
||||
}
|
||||
message = messageMerge()// 将消息数组融合为一条总消息
|
||||
push(message); // 推送消息
|
||||
}else{
|
||||
for (let i = 2; i <= line; i++) {
|
||||
var cookie = Application.Range("A" + i).Text;
|
||||
var exec = Application.Range("B" + i).Text;
|
||||
if (cookie == "") {
|
||||
// 如果为空行,则提前结束读取
|
||||
break;
|
||||
}
|
||||
if (exec == "是") {
|
||||
console.log("🧑 开始执行用户:" + "1" )
|
||||
execHandle(cookie, i);
|
||||
break; // 只取一个
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// }
|
||||
|
||||
// 激活工作表函数
|
||||
function ActivateSheet(sheetName) {
|
||||
let flag = 0;
|
||||
try {
|
||||
// 激活工作表
|
||||
let sheet = Application.Sheets.Item(sheetName);
|
||||
sheet.Activate();
|
||||
console.log("🥚 激活工作表:" + sheet.Name);
|
||||
flag = 1;
|
||||
} catch {
|
||||
flag = 0;
|
||||
console.log("🍳 无法激活工作表,工作表可能不存在");
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// 对推送数据进行处理
|
||||
function jsonPushHandle(pushName, pushFlag, pushKey) {
|
||||
let length = jsonPush.length;
|
||||
for (let i = 0; i < length; i++) {
|
||||
if (jsonPush[i].name == pushName) {
|
||||
if (pushFlag == "是") {
|
||||
jsonPush[i].flag = 1;
|
||||
jsonPush[i].key = pushKey;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 将消息数组融合为一条总消息
|
||||
function messageMerge(){
|
||||
// console.log(messageArray)
|
||||
let message = ""
|
||||
for(i=0; i<messageArray.length; i++){
|
||||
if(messageArray[i] != "" && messageArray[i] != null)
|
||||
{
|
||||
message += "\n" + messageHeader[i] + messageArray[i] + ""; // 加上推送头
|
||||
}
|
||||
}
|
||||
if(message != "")
|
||||
{
|
||||
console.log("✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨")
|
||||
console.log(message + "\n") // 打印总消息
|
||||
console.log("✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨")
|
||||
}
|
||||
return message
|
||||
}
|
||||
|
||||
function sleep(d) {
|
||||
for (var t = Date.now(); Date.now() - t <= d; );
|
||||
}
|
||||
|
||||
// 获取sign,返回小写
|
||||
function getsign(data) {
|
||||
var sign = Crypto.createHash("md5")
|
||||
.update(data, "utf8")
|
||||
.digest("hex")
|
||||
// .toUpperCase() // 大写
|
||||
.toString();
|
||||
return sign;
|
||||
}
|
||||
|
||||
// =================共用结束===================
|
||||
|
||||
// 具体的执行函数
|
||||
function execHandle(cookie, pos) {
|
||||
let messageSuccess = "";
|
||||
let messageFail = "";
|
||||
let messageName = "";
|
||||
// 推送昵称或单元格,还是不推送位置标识
|
||||
if (messageNickname == 1) {
|
||||
// 推送昵称或单元格
|
||||
messageName = Application.Range("C" + pos).Text;
|
||||
if(messageName == "")
|
||||
{
|
||||
messageName = "单元格A" + pos + "";
|
||||
}
|
||||
}
|
||||
|
||||
posLabel = pos-2 ; // 存放下标,从0开始
|
||||
messageHeader[posLabel] = "👨🚀 " + messageName
|
||||
|
||||
try {
|
||||
let seedId = Application.Range("F" + pos).Text;
|
||||
let propsId = Application.Range("G" + pos).Text;
|
||||
|
||||
// 获取任务taskCode
|
||||
let taskCode = []
|
||||
// 领取任务奖励
|
||||
let userTaskLogId = []
|
||||
|
||||
let url = [
|
||||
'https://sunquan.api.ddxq.mobi/api/v2/user/signin/',// 积分
|
||||
'https://farm.api.ddxq.mobi/api/v2/task/achieve?api_version=9.1.0&app_client_id=1&station_id=&stationId=&native_version=&app_version=10.15.0&OSVersion=15&CityId=0201&uid=&latitude=40.123389&longitude=116.345477&lat=40.123389&lng=116.345477&device_token=&gameId=1&taskCode=DAILY_SIGN', // 每日
|
||||
'https://farm.api.ddxq.mobi/api/v2/task/achieve?api_version=9.1.0&app_client_id=1&station_id=&stationId=&native_version=&app_version=10.1.2&OSVersion=15&CityId=0201&uid=&latitude=40.123389&longitude=116.345477&lat=40.123389&lng=116.345477&device_token=&gameId=1&taskCode=CONTINUOUS_SIGN', // 每日2
|
||||
'https://farm.api.ddxq.mobi/api/v2/props/feed?api_version=9.1.0&app_client_id=1&station_id=&stationId=&native_version&app_version=10.0.1&OSVersion=15&CityId=0201&uid=&latitude=40.123389&longitude=116.345477&lat=40.123389&lng=116.345477&device_token=&gameId=1&propsId=' + propsId + '&seedId=' + seedId + '&cityCode=0201&feedPro=0&triggerMultiFeed=1',// 喂饲料
|
||||
'https://farm.api.ddxq.mobi/api/v2/task/list?latitude=40.123389&longitude=116.345477&env=PE&station_id=&city_number=0201&api_version=9.44.0&app_client_id=3&native_version=10.15.0&h5_source=&page_type=2&gameId=1', // 获取任务taskCode
|
||||
'https://farm.api.ddxq.mobi/api/v2/task/achieve?api_version=9.1.0&app_client_id=1&station_id=&stationId=&native_version=&app_version=10.15.0&OSVersion=15&CityId=0201&uid=&latitude=40.123389&longitude=116.345477&lat=40.123389&lng=116.345477&device_token=&gameId=1&taskCode=', // 完成任务
|
||||
'https://farm.api.ddxq.mobi/api/v2/task/reward?api_version=9.1.0&app_client_id=1&station_id=&stationId=&native_version=&app_version=10.15.1&OSVersion=15&CityId=0201&uid=&latitude=40.123389&longitude=116.345477&lat=40.123389&lng=116.345477&device_token=&userTaskLogId=',// 领取任务奖励
|
||||
]
|
||||
|
||||
headers = {
|
||||
'Host': 'farm.api.ddxq.mobi',
|
||||
'Origin': 'https://game.m.ddxq.mobi',
|
||||
'Cookie': cookie,
|
||||
'Accept': '*/*',
|
||||
// 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 xzone/10.0.1 station_id/' + station_id + ' device_id/' + device_id,
|
||||
'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
|
||||
'Referer': 'https://game.m.ddxq.mobi/',
|
||||
};
|
||||
|
||||
headerintegral =
|
||||
{ // 积分
|
||||
'Host': 'sunquan.api.ddxq.mobi',
|
||||
'Cookie': cookie,
|
||||
'Referer': 'https://activity.m.ddxq.mobi/',
|
||||
'ddmc-city-number': '0201',
|
||||
'ddmc-api-version': '9.7.3',
|
||||
'Origin': 'https://activity.m.ddxq.mobi',
|
||||
'ddmc-build-version': '10.15.0',
|
||||
'ddmc-longitude': 114.345477,
|
||||
'ddmc-latitude': 40.123389,
|
||||
'ddmc-app-client-id': 3,
|
||||
'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
|
||||
'ddmc-channel': ' ',
|
||||
'Accept': '*/*',
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'ddmc-station-id': '',
|
||||
'ddmc-ip': '',
|
||||
},
|
||||
|
||||
dataintegral = {
|
||||
'api_version':'9.7.3',
|
||||
'app_client_id':3,
|
||||
'app_version':'2.14.5',
|
||||
'app_client_name':'activity',
|
||||
'station_id':'',
|
||||
'native_version':'10.15.0',
|
||||
'city_number':'0201',
|
||||
'device_token':'',
|
||||
'device_id':'',
|
||||
'latitude':'40.123389',
|
||||
'longitude':'116.345477',
|
||||
}
|
||||
// 积分签到
|
||||
resp = HTTP.fetch(url[0], {
|
||||
method: "post",
|
||||
headers: headerintegral,
|
||||
data : dataintegral
|
||||
});
|
||||
|
||||
if (resp.status == 200) {
|
||||
resp = resp.json();
|
||||
console.log(resp);
|
||||
code = resp["code"];
|
||||
msg = resp["msg"];
|
||||
if(code == 0){
|
||||
content = "🎉 " + "积分签到成功\n"
|
||||
messageSuccess += content
|
||||
console.log(content);
|
||||
}else{
|
||||
// {"msg":"出了点问题哦,请稍后再试吧","code":119000001,"timestamp":"2023-08-10 21:06:53","success":false,"exec_time":{}}
|
||||
// content += "帐号:" + messageName + msg + " ";
|
||||
content += "📢 " + msg + "\n";
|
||||
messageFail += content;
|
||||
console.log(content);
|
||||
}
|
||||
} else {
|
||||
console.log(resp.text());
|
||||
// content = "帐号:" + messageName + "积分签到失败 "
|
||||
content = "❌ " + "积分签到失败\n"
|
||||
messageFail += content;
|
||||
console.log(content);
|
||||
}
|
||||
|
||||
// 领饲料
|
||||
let flagSign = 0; // 标识是否领取饲料
|
||||
let tempmessageFail = ""; // 记录临时失败的消息
|
||||
// resp = HTTP.fetch(url[1], {
|
||||
// method: "get",
|
||||
// headers: headers,
|
||||
// });
|
||||
resp = HTTP.get(url[1], {headers: headers,});
|
||||
|
||||
if (resp.status == 200) {
|
||||
resp = resp.json();
|
||||
console.log(resp);
|
||||
code = resp["code"];
|
||||
msg = resp["msg"];
|
||||
if(code == 0){
|
||||
// messageSuccess += "帐号:" + messageName + "鱼塘签到成功 "
|
||||
flagSign = 1;
|
||||
console.log("🍳 帐号:" + messageName + "鱼塘签到成功 ");
|
||||
}else{
|
||||
// {"msg":"今日已完成任务,明日再来吧!","code":601,"timestamp":"2023-08-10 21:23:49","success":false,"exec_time":{}}
|
||||
// {"msg":"出了点问题哦,请稍后再试吧","code":119000001,"timestamp":"2023-08-10 21:06:53","success":false,"exec_time":{}}
|
||||
// messageFail += "帐号:" + messageName + msg + " ";
|
||||
console.log("🍳 帐号:" + messageName + msg + " ");
|
||||
}
|
||||
} else {
|
||||
console.log(resp.text());
|
||||
// messageFail += "帐号:" + messageName + "签到失败 ";
|
||||
console.log("🍳 帐号:" + messageName + "签到失败 ");
|
||||
}
|
||||
|
||||
// resp = HTTP.fetch(url[2], {
|
||||
// method: "get",
|
||||
// headers: headers,
|
||||
// });
|
||||
resp = HTTP.get(url[2], {headers: headers,});
|
||||
|
||||
if (resp.status == 200) {
|
||||
resp = resp.json();
|
||||
console.log(resp);
|
||||
code = resp["code"];
|
||||
msg = resp["msg"];
|
||||
if(code == 0 ){
|
||||
flagSign = 1;
|
||||
console.log("🍳 帐号:" + messageName + "鱼塘签到成功 ");
|
||||
}else{
|
||||
if(code == 601){
|
||||
// 此不为错误消息
|
||||
// {"msg":"今日已完成任务,明日再来吧!","code":601,"timestamp":"2024-06-13 20:30:28","success":false}
|
||||
flagSign = 1;
|
||||
console.log("🍳 帐号:" + messageName + msg + " ");
|
||||
}else{
|
||||
// content = "帐号:" + messageName + msg + " ";
|
||||
content = "❌ " + msg + "\n";
|
||||
tempmessageFail = content;
|
||||
console.log(content);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
console.log(resp.text());
|
||||
// content = "帐号:" + messageName + "签到失败 ";
|
||||
content = "❌ " + "签到失败\n";
|
||||
tempmessageFail = content;
|
||||
console.log(content);
|
||||
}
|
||||
|
||||
if(flagSign == 1){
|
||||
// content = "帐号:" + messageName + "鱼塘签到成功 "
|
||||
content = "🎉 " + "鱼塘签到成功\n"
|
||||
messageSuccess += content;
|
||||
}else{
|
||||
messageFail += tempmessageFail;
|
||||
}
|
||||
|
||||
// 获取任务列表
|
||||
// resp = HTTP.fetch(url[4], {
|
||||
// method: "get",
|
||||
// headers: headers,
|
||||
// });
|
||||
resp = HTTP.get(url[4], {headers: headers,});
|
||||
|
||||
if (resp.status == 200) {
|
||||
resp = resp.json();
|
||||
// console.log(resp);
|
||||
code = resp["code"];
|
||||
if(code == 0){
|
||||
console.log("🍳 正在获取taskCode ");
|
||||
userTasks = resp["data"]["userTasks"];
|
||||
for (let j = 0; j < userTasks.length; j++) {
|
||||
taskCode[j] = userTasks[j]["taskCode"]
|
||||
}
|
||||
console.log(taskCode)
|
||||
}else{
|
||||
console.log("🍳 获取taskCode失败 ");
|
||||
}
|
||||
} else {
|
||||
console.log(resp.text());
|
||||
console.log("🍳 获取taskCode失败 ");
|
||||
}
|
||||
|
||||
// taskCode = ["ANY_ORDER","BROWSE_GOODS","BUY_GOODS","CONTINUOUS_SIGN","DAILY_SIGN","FIRST_ORDER","HARD_BOX","INVITATION","LOTTERY","LUCK_DRAW","MULTI_ORDER","STEAL_FEED"]
|
||||
// 完成任务
|
||||
if(taskCode.length > 0){
|
||||
console.log("🍳 尝试完成任务...")
|
||||
for (let j = 0; j < taskCode.length; j++) {
|
||||
urlTask = url[5] + taskCode[j]
|
||||
// console.log(urlTask)
|
||||
try{
|
||||
// resp = HTTP.fetch(urlTask, {
|
||||
// method: "get",
|
||||
// headers: headers,
|
||||
// });
|
||||
resp = HTTP.get(urlTask, {headers: headers,});
|
||||
// console.log(resp.text())
|
||||
sleep(2000)
|
||||
}catch{
|
||||
console.log("🍳 忽略任务:" + taskCode[j])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 获取奖励id
|
||||
// resp = HTTP.fetch(url[4], {
|
||||
// method: "get",
|
||||
// headers: headers,
|
||||
// });
|
||||
resp = HTTP.get(url[4], {headers: headers,});
|
||||
|
||||
if (resp.status == 200) {
|
||||
resp = resp.json();
|
||||
// console.log(resp);
|
||||
code = resp["code"];
|
||||
if(code == 0){
|
||||
console.log("🍳 正在获取userTaskLogId ");
|
||||
userTasks = resp["data"]["userTasks"];
|
||||
let temp
|
||||
let num = 0
|
||||
for (let j = 0; j < userTasks.length; j++) {
|
||||
temp = userTasks[j]["userTaskLogId"]
|
||||
// console.log(typeof(temp))
|
||||
// console.log(temp.length) // 长度为18才是id
|
||||
if(typeof(temp) != "object"){ // || temp != "{}" || temp != "null" || temp != "" || temp != null
|
||||
userTaskLogId[num] = temp
|
||||
num += 1
|
||||
}
|
||||
}
|
||||
console.log(userTaskLogId)
|
||||
}else{
|
||||
console.log("🍳 获取userTaskLogId失败 ");
|
||||
}
|
||||
} else {
|
||||
console.log(resp.text());
|
||||
console.log("🍳 获取userTaskLogId失败 ");
|
||||
}
|
||||
|
||||
// 领取任务奖励
|
||||
if(userTaskLogId.length > 0){
|
||||
console.log("🍳 尝试领取任务奖励...")
|
||||
for (let j = 0; j < userTaskLogId.length; j++) {
|
||||
urlTask = url[6] + userTaskLogId[j]
|
||||
// console.log(urlTask)
|
||||
try{
|
||||
// resp = HTTP.fetch(urlTask, {
|
||||
// method: "get",
|
||||
// headers: headers,
|
||||
// });
|
||||
resp = HTTP.get(urlTask, {headers: headers,});
|
||||
// console.log(resp.text())
|
||||
sleep(2000)
|
||||
}catch{
|
||||
console.log("🍳 忽略任务:" + userTaskLogId[j])
|
||||
}
|
||||
}
|
||||
}else{
|
||||
console.log("🍳 没有可领取的奖励")
|
||||
}
|
||||
|
||||
// 喂饲料
|
||||
let amount = 10; // 记录剩余数目
|
||||
let amoutCount = 0; // 已喂饲料次数
|
||||
let flagAmount = 0; // 标志,1为饲料
|
||||
let countSeedId = 0; // 计算是不是每次浇花的剩余水量都一样,如果三次都一样,则认为seedid过期
|
||||
let lastamount = 0; // 记录上一次剩余水量
|
||||
while(amount >= 10){
|
||||
// resp = HTTP.fetch(url[3], {
|
||||
// method: "get",
|
||||
// headers: headers,
|
||||
// });
|
||||
resp = HTTP.get(url[3], {headers: headers,});
|
||||
|
||||
if (resp.status == 200) {
|
||||
resp = resp.json();
|
||||
// console.log(resp);
|
||||
code = resp["code"];
|
||||
msg = resp["msg"];
|
||||
if(code == 0){
|
||||
amount = resp["data"]["props"]["amount"];
|
||||
|
||||
// 用于判断seedId是否过期,也即浇水是否失败
|
||||
if(lastamount == amount){ // 和上次剩余水量一样,可能没浇水成功
|
||||
countSeedId += 1; // 记录相同次数
|
||||
}else{
|
||||
countSeedId = 0; // 水量不同,浇水成功,置零
|
||||
}
|
||||
lastamount = amount; // 记录水量,以便下一次循环使用
|
||||
if(countSeedId >=3){ // 浇了三次剩余水量都相同,则认为浇水失败,不再浇水,并提醒用户更换新的seedId值
|
||||
msg = "[❗❗❗提醒]seedId值可能过期,请抓包获取最新的值"
|
||||
messageFail += "[❗❗❗提醒]seedId值可能过期,请抓包获取最新的值"
|
||||
console.log("🍳 提前退出浇水,错误消息为:" + msg)
|
||||
amoutCount -= 3; // 减去浇水失败的次数
|
||||
break;
|
||||
}
|
||||
|
||||
flagAmount = 1;
|
||||
amoutCount += 1;
|
||||
console.log("🍳 喂饲料中... ,剩余饲料:" + amount)
|
||||
}else{
|
||||
console.log(resp);
|
||||
console.log("🍳 提前退出喂饲料,错误消息为:" + msg)
|
||||
amount = 0; // 直接置水为0 退出投喂
|
||||
}
|
||||
} else {
|
||||
console.log(resp.text());
|
||||
console.log("🍳 提前退出喂饲料")
|
||||
amount = 0; // 直接置水为0 退出投喂
|
||||
}
|
||||
|
||||
sleep(3000)
|
||||
}
|
||||
|
||||
if(flagAmount == 1){
|
||||
content = "🎉 " + "成功喂饲料" + amoutCount + "次\n"
|
||||
messageSuccess += content
|
||||
console.log(content);
|
||||
}else{
|
||||
// messageFail += "喂饲料日志:" + msg + " "; // 此错误消息无需推送
|
||||
console.log("📢 " + "喂饲料日志:" + msg + " ");
|
||||
}
|
||||
|
||||
|
||||
} catch {
|
||||
messageFail += "❌ " + messageName + "失败\n";
|
||||
}
|
||||
|
||||
sleep(2000);
|
||||
if (messageOnlyError == 1) {
|
||||
messageArray[posLabel] = messageFail;
|
||||
} else {
|
||||
if(messageFail != ""){
|
||||
messageArray[posLabel] = messageFail + " " + messageSuccess;
|
||||
}else{
|
||||
messageArray[posLabel] = messageSuccess;
|
||||
}
|
||||
}
|
||||
|
||||
if(messageArray[posLabel] != "")
|
||||
{
|
||||
console.log(messageArray[posLabel]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user