吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3980|回复: 54
收起左侧

[Java 转载] 一键领取阿里云盘奖励

[复制链接]
tunnel213 发表于 2023-12-31 22:48
本帖最后由 tunnel213 于 2023-12-31 23:57 编辑

本贴在“阿里云盘自动签到-自动更新token免部署-2023.12.16”(帖子链接:https://www.52pojie.cn/thread-1869673-1-1.html)的基础上修改而成,在此感谢原作者以及原帖中感谢的作者。

时间仓促,有时间再完善。欢迎大家提出意见建议。
[JavaScript] 纯文本查看 复制代码
var myDate = new Date(); // 创建一个表示当前时间的 Date 对象var data_time = myDate.toLocaleDateString(); // 获取当前日期的字符串表示
var date = `${new Date().getMonth() + 1}-${new Date().getDate().toString().padStart(2, '0')}`

// 功能需求:1.随机时间签到,确保签到;2.提示信息汇总;3.可选择是否领取奖励;4.提示是否满足第2奖励条件;
// 获取三个状态信息:签到(已签到,未签到),签到奖励(未获取,已获取,已领取),限时任务奖励(当日奖励)(未获取,已获取,已领取)
// 
//需要修改的地方1
var dengdai = 1
//意思是 等待多少分钟去登录 等待多少分钟去签到  默认1-15分钟之间 改了15就是1-X分钟之间 取随机的
var renwu = 1   //建议定时2个任务 就写1  定时3个任务就写2  定时任务-1或者-2都可以  他是从1到renwu之间 取一个随机数 
var zong = 6   //总任务  就是你有几个号你就写几  就行 默认10 也可以 如果多10行  就在10行以内 右键 插入行 
var getReward2 = false  //是否领取备份奖励  是写true  不领取写false
var getReward = false; // 是否领取签到奖励
function sleep(d) {
    for (var t = Date.now(); Date.now() - t <= d;); // 使程序暂停执行一段时间
}

function log(message) {
    console.log(message); // 打印消息到控制台
    // TODO: 将日志写入文件
}

var tokenColumn = "A"; // 设置列号变量为 "A"
var qiandaoColumn = "B"; // 设置列号变量为 "B"
var serverchanColumn = "C"; // 设置列号变量为 "C"
var pushplusColumn = "D"; // 设置列号变量为 "D"
var pushColumn = "E"; // 设置列号变量为 "E"
var logindateColumn = "F"; // 设置列号变量为 "F"
var signinresultColumn = "G"//签到的结果  设置列号变量为 "G"

for (let row = 1; row <= zong; row++) { // 循环遍历从第 1 行到第 10 行的数据
    var refresh_token = Application.Range(tokenColumn + row).Text; // 获取指定单元格的值
    var qiandao = Application.Range(qiandaoColumn + row).Text; // 获取指定单元格的值
    var servertoken = Application.Range(serverchanColumn + row).Text; // 获取指定单元格的值
    var pushtoken = Application.Range(pushplusColumn + row).Text; // 获取指定单元格的值
    var push = Application.Range(pushColumn + row).Text; // 获取指定单元格的值
    var ldate = Application.Range(logindateColumn + row).Text; // 获取指定单元格的值
    var signin = Application.Range(signinresultColumn + row).Text; // 获取签到结果
    var result3 = "未领取签到奖励"; // 获取奖励名称
    var result4 = "未领取签到奖励"; // 获取奖励描述
    var result5 = "未领取备份奖励";// 获取奖励名称

   if (refresh_token != "") { // 如果刷新令牌不为空
//        if (qiandao == "是") {//签到&领奖开关
//            console.log("signin:" + signin);console.log("date:" + date);
//            if (signin !== date + '已签到') {
                var randomInt = Math.floor(Math.random() * renwu) + 1
                //randomInt  中的3 可以修改  写3就是 从1到3取一个随机整数 比如2  当他 = 1 的时候 签到才会执行
                if (true) { //(randomInt === 1) {//等于1 就开始签到  不等于1 都不签到

                    //获取Bearer-token
                    var mtid = parseInt(Math.floor(Math.random() * 60000 * dengdai)) + 6000
                    mtid = 0;
                    var loginresult = "登录延迟" + parseFloat((mtid / 120000).toFixed(2)) + "分,即" +  parseFloat((mtid / 2000).toFixed(2)) + "秒"
                    // console.log("登录延迟" + parseFloat((mtid / 120000).toFixed(2)) + "分,即" + parseFloat((mtid / 2000).toFixed(2)) + "秒")
                    console.log(loginresult);
                    Time.sleep(mtid / 2)
                    let data = HTTP.post("https://auth.aliyundrive.com/v2/account/token",
                        JSON.stringify({
                            "grant_type": "refresh_token",
                            "refresh_token": refresh_token
                        })
                    )
                    data = data.json()
                    var access_token = data['access_token']
                    var phone = data["user_name"]
                    if (access_token == undefined) { // 如果报错
                        console.log("单元格【" + tokenColumn + row + "】token执行出错,请检查token或者API接口");
                        continue; // 跳过当前行的后续操作()
                    }
                    var mtid = parseInt(Math.floor(Math.random() * 60000 * dengdai / 2)) + 6000
                    mtid = 0; // 测试时用
                    var signresult = "签到延迟" + parseFloat((mtid / 60000).toFixed(2)) + "分,即" + parseFloat((mtid / 1000).toFixed(2)) + "秒"
                    // console.log("签到延迟" + parseFloat((mtid / 60000).toFixed(2)) + "分,即" + + parseFloat((mtid / 1000).toFixed(2)) + "秒")
                    console.log(signresult);
                    Time.sleep(mtid)
                    try {
                        // 签到
                        var access_token2 = 'Bearer ' + access_token; // 构建包含访问令牌的请求头
                        let data2 = HTTP.post("https://member.aliyundrive.com/v2/activity/sign_in_list",
                            JSON.stringify({ "_rx-s": "mobile" }),
                            { headers: { "Authorization": access_token2 } }
                        );
                        //console.log("data2:",data2.text());
                        data2 = data2.json(); // 将响应数据解析为 JSON 格式
                        var signin_count = data2['result']['signInCount']; // 获取签到次数
                        var result1 = "账号:" + phone + " - 签到成功";
                        var result2 = "本月累计签到 " + signin_count + " 天";
                        Application.Range(signinresultColumn + row).Value2=date+"已签到";
                        console.log(result1);
                        console.log(result2);
                        // 领取所有奖励
                        var i=0,signInInfos=data2['result']['signInInfos'],dayCount=signInInfos.length,url;
                        var j=0,dayRewardsCount=0,rewards,notGetRewardsCount=0,successRewardsCount=0;
                        //console.log("signInInfos",signInInfos.length);

                        for(i=0;i<dayCount;i++){
                          //console.log(signInInfos[i]);
                          rewards=signInInfos[i].rewards;
                          dayRewardsCount=rewards.length;
                          for(j=0;j<dayRewardsCount;j++){
                            if(rewards[j].type=='dailySignIn') {
                              //url="https://member.aliyundrive.com/v1/activity/sign_in_Reward";
                              url="https://member.aliyundrive.com/v1/activity/sign_in_reward";
                            } else if(rewards[j].type=='dailyTask') {
                              //url="https://member.aliyundrive.com/v2/activity/sign_in_task_getReward";
                              url="https://member.aliyundrive.com/v2/activity/sign_in_task_reward";
                            }else {
                              continue;
                            }
                            if(rewards[j].status=='finished'){
                              //console.log("rewards:",signInInfos[i]);
                              notGetRewardsCount++;
                              var mtid = parseInt(Math.floor(Math.random() * 60000 * dengdai / 2)) + 6000
                              var signresult = "领取奖励延迟" + parseFloat((mtid / 60000).toFixed(2)) + "分,即" + parseFloat((mtid / 1000).toFixed(2)) + "秒"
                              // console.log("签到延迟" + parseFloat((mtid / 60000).toFixed(2)) + "分,即" + + parseFloat((mtid / 1000).toFixed(2)) + "秒")
                              console.log(signresult);
                              //console.log("signInInfos[i].day",signInInfos[i].day);
                              Time.sleep(mtid)
                              let data3 = HTTP.post(
                                  url,
                                  JSON.stringify({ "signInDay": signInInfos[i].day }),
                                  { headers: { "Authorization": access_token2 } }
                              );
                              data3 = data3.json(); // 将响应数据解析为 JSON 格式
                              //console.log("data3:",data3);
                              //console.log("data3.success:",data3.success);
                              if(data3.success==true){
                                successRewardsCount++;
                              }

                              //result3 = data3["result"]["name"]; // 获取奖励名称
                              //result4 = data3["result"]["notice"]; // 获取奖励描述
                              //Application.Range(signinresultColumn + row).Value = date + '已签到'
                              //把签到结果 写入文档内
                              //console.log(result4)
                            }
                          }
                        }
                        console.log("未领取奖励数:",notGetRewardsCount);
                        console.log("成功领取奖励数:",successRewardsCount);
                    } catch (error) {
                        console.log("单元格【" + tokenColumn + row + "】签到出错,请检查API接口");
                        continue; // 跳过当前行的后续操作()
                    }
                    /*Time.sleep(3000)
                    if(getReward){
                        try {
                            // 领取奖励
                            let data3 = HTTP.post(
                                "https://member.aliyundrive.com/v1/activity/sign_in_getReward?_rx-s=mobile",
                                JSON.stringify({ "signInDay": signin_count }),
                                { headers: { "Authorization": access_token2 } }
                            );
                            data3 = data3.json(); // 将响应数据解析为 JSON 格式
                            result3 = data3["result"]["name"]; // 获取奖励名称
                            result4 = data3["result"]["notice"]; // 获取奖励描述
                            Application.Range(signinresultColumn + row).Value = date + '已签到'
                            //把签到结果 写入文档内
                            console.log(result4)
                        } catch (error) {
                            console.log("单元格【" + tokenColumn + row + "】领奖出错,请手动确认");
                            continue; // 跳过当前行的后续操作()
                        
                        }
                    } else {
                        console.log('不领取签到奖励')
                    }
                    if (getReward2 === true) {
                        // try {
                        // 备份的奖励  
                        var access_token2 = 'Bearer ' + access_token; // 构建包含访问令牌的请求头
                        let data5 = HTTP.post("https://member.aliyundrive.com/v2/activity/sign_in_task_getReward",
                            JSON.stringify({ "signInDay": signin_count }),
                            { headers: { "Authorization": access_token2 } }
                        );
                        data5 = data5.json(); // 将响应数据解析为 JSON 格式
                        // console.log('备份奖励', data5)
                        var success = data5['success']
                        if (success == true) {
                            result5 = data5["result"]["notice"]; // 获取奖励名称
                        } else {
                            result5 = data5["message"] // 失败原因
                        }

                        console.log(result5)
                        // } catch (error) {
                        //     console.log("单元格【" + tokenColumn + row + "】领取备份出错,请检查API接口");
                        //     continue; // 跳过当前行的后续操作()
                        // }
                    } else {
                        console.log('不领取备份奖励')
                    }


                    var loginnotice = "" //20天后自动刷新refresh_token
                    var ldate = Application.Range(logindateColumn + row).Text; // 获取指定单元格的值
                    if (ldate !== '') {
                        Application.Range(logindateColumn + row).NumberFormat = 'yyyy-mm-dd;@'
                        var formatlogindate = Application.Range(logindateColumn + row).Text
                        console.log(formatlogindate)
                        function formatDateTime(date) {
                            const year = date.getFullYear();
                            const month = date.getMonth() + 1;
                            const day = date.getDate();
                            return `${year}-${pad(month)}-${pad(day)} `;
                        }
                        function pad(num) {
                            return num.toString().padStart(2, '0');
                        }
                        const currentDate = new Date();
                        var formacurrentdate = formatDateTime(currentDate);
                        console.log(formacurrentdate)
                        function getDate(strDate) {
                            if (strDate == null || strDate === undefined) return null;
                            var date = new Date();
                            try {
                                if (strDate == undefined) {
                                    date = null;
                                } else if (typeof strDate == 'string') {
                                    strDate = strDate.replace(/:/g, '-');
                                    strDate = strDate.replace(/ /g, '-');
                                    var dtArr = strDate.split("-");
                                    if (dtArr.length >= 3 && dtArr.length < 6) {
                                        date = new Date(dtArr[0], dtArr[1], dtArr[2]);
                                    } else if (date.length > 8) {
                                        date = new Date(Date.UTC(dtArr[0], dtArr[1] - 1, dtArr[2], dtArr[3] - 8, dtArr[4], dtArr[5]));
                                    }
                                } else {
                                    date = null;
                                }
                                return date;
                            } catch (e) {
                                alert('格式化日期出现异常:' + e.message);
                            }
                        }
                        var timeslong = getDate(formacurrentdate).getTime() - getDate(formatlogindate).getTime();
                        console.log(timeslong)
                        if (timeslong > 1728000000) {//时间差单位毫秒
                            var loginnotice = "登录已超20天自动刷新refresh_token";

                            let my_token = HTTP.post("https://auth.aliyundrive.com/v2/account/token",
                                JSON.stringify({
                                    "grant_type": "refresh_token",
                                    "refresh_token": refresh_token
                                }));
                            my_token = my_token.json()["refresh_token"]
                            if (my_token) {
                                console.log("当前账号refresh_token刷新为", my_token);
                                Application.Range(tokenColumn + row).Value = my_token;
                                console.log("当前账号登录日期刷新为", formacurrentdate);
                                Application.Range(logindateColumn + row).Value = formacurrentdate
                            }
                        }
                    }


                    //推送
                    if (servertoken !== '' && push == "Serverchan") {//serverchan通道推送
                        const urls = "https://sctapi.ftqq.com/" + servertoken + ".send"
                        let response = HTTP.post(
                            urls,
                            {
                                title: result1,
                                desp: loginresult + '\n\n' + signresult + '\n\n' + '' + result2 + '\n\n' + result4 + '\n\n' + result5 + '\n\n' + loginnotice + '',
                            },
                            {
                                headers: {
                                    "Content-Type": "application/json",
                                },
                                timeout: 60000, // 设置超时时间
                            }
                        );
                        // 打印推送结果
                        console.log(response.text());
                    }

                    if (pushtoken !== '' && push == "Pushplus") {//pushplus通道推送
                        const urlp = "https://www.pushplus.plus/send"
                        let response = HTTP.post(
                            urlp,
                            {
                                "token": pushtoken,
                                "title": "阿里云盘-签到通知",
                                "content": result1 + '\n' + loginresult + '\n' + signresult + '\n' + '' + result2 + '\n' + result4 + '\n' + result5 + '\n' + loginnotice + '',
                                "channel": "wechat",
                                "template": "html"
                            },
                            {
                                headers: {
                                    "Content-Type": "application/json",
                                },
                                timeout: 60000, // 设置超时时间
                            }
                        );
                        // 打印推送结果
                        console.log("推送结果:"+response.text());
                    }*/


                } else {//randomInt 不等于1  不签到
                    console.log('取得随机值不是1,不签到')
                }

//            } else {//签到了
//                console.log(date + '已签到')
//            }
//        }//不需要签到
    }//令牌为空
    //无有效token
}

免费评分

参与人数 4吾爱币 +4 热心值 +4 收起 理由
wnzczh4987 + 1 + 1 我很赞同!
l1472963 + 1 + 1 啥区别啊,跟原来的
xiaolong666 + 1 + 1 谢谢@Thanks!
勤快的懒虫 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| tunnel213 发表于 2023-12-31 23:54

前面的操作参见帖子:https://www.52pojie.cn/thread-1869673-1-1.html;
复制我的代码到wps的AirScript脚本编辑器,直接运行;
windwar1 发表于 2024-1-1 13:52
熊猫咖啡 发表于 2023-12-31 23:48
lmt19841123 发表于 2023-12-31 23:48
怎么用啊?
sunny568914 发表于 2024-1-1 08:19
楼主能不能优化下推送合并
Corgibro 发表于 2024-1-1 08:21
阿里云盘的奖励是啥,注册完还没用过
lustig 发表于 2024-1-1 08:40
阿里云盘扩容?
twj007 发表于 2024-1-1 08:47
太复杂了,不会用。要不来点直接破解获得永久空间的就好了
wln0546 发表于 2024-1-1 08:49
支持楼主,加油
wan456 发表于 2024-1-1 09:23
复制代码到wps的AirScript脚本编辑器,就是用wps运行
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-28 19:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表