var
myDate =
new
Date();
var
data_time = myDate.toLocaleDateString();
var
date = `${
new
Date().getMonth() + 1}-${
new
Date().getDate().toString().padStart(2,
'0'
)}`
var
dengdai = 2
var
renwu = 2
var
zong = 10
var
backups =
true
function
sleep(d) {
for
(
var
t = Date.now(); Date.now() - t <= d;);
}
function
log(message) {
console.log(message);
}
var
tokenColumn =
"A"
;
var
qiandaoColumn =
"B"
;
var
serverchanColumn =
"C"
;
var
pushplusColumn =
"D"
;
var
pushColumn =
"E"
;
var
logindateColumn =
"F"
;
var
signinresult =
"G"
for
(
let
row = 1; row <= zong; row++) {
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(signinresult + row).Text;
if
(refresh_token !=
""
) {
if
(qiandao ==
"是"
) {
if
(signin !== date +
'已签到'
) {
var
randomInt = Math.floor(Math.random() * renwu) + 1
if
(randomInt === 1) {
var
mtid = parseInt(Math.floor(Math.random() * 60000 * dengdai)) + 6000
var
loginresult =
"登录延迟"
+ parseFloat((mtid / 120000).toFixed(2)) +
"分,即"
+ + parseFloat((mtid / 2000).toFixed(2)) +
"秒"
console.log(
"登录延迟"
+ parseFloat((mtid / 120000).toFixed(2)) +
"分,即"
+ + parseFloat((mtid / 2000).toFixed(2)) +
"秒"
)
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
var
signresult =
"签到延迟"
+ parseFloat((mtid / 60000).toFixed(2)) +
"分,即"
+ + parseFloat((mtid / 1000).toFixed(2)) +
"秒"
console.log(
"签到延迟"
+ parseFloat((mtid / 60000).toFixed(2)) +
"分,即"
+ + parseFloat((mtid / 1000).toFixed(2)) +
"秒"
)
Time.sleep(mtid)
try
{
var
access_token2 =
'Bearer '
+ access_token;
let
data2 = HTTP.post(
"https://member.aliyundrive.com/v1/activity/sign_in_list"
,
JSON.stringify({
"_rx-s"
:
"mobile"
}),
{ headers: {
"Authorization"
: access_token2 } }
);
data2 = data2.json();
var
signin_count = data2[
'result'
][
'signInCount'
];
var
result1 =
"账号:"
+ phone +
" - 签到成功"
;
var
result2 =
"本月累计签到 "
+ signin_count +
" 天"
;
console.log(result1)
}
catch
(error) {
console.log(
"单元格【"
+ tokenColumn + row +
"】签到出错,请检查API接口"
);
continue
;
}
Time.sleep(3000)
try
{
let
data3 = HTTP.post(
"https://member.aliyundrive.com/v1/activity/sign_in_reward?_rx-s=mobile"
,
JSON.stringify({
"signInDay"
: signin_count }),
{ headers: {
"Authorization"
: access_token2 } }
);
data3 = data3.json();
var
result3 = data3[
"result"
][
"name"
];
var
result4 = data3[
"result"
][
"notice"
];
Application.Range(signinresult + row).Value = date +
'已签到'
console.log(result4)
}
catch
(error) {
console.log(
"单元格【"
+ tokenColumn + row +
"】领奖出错,请手动确认"
);
continue
;
}
if
(backups ===
true
) {
var
access_token2 =
'Bearer '
+ access_token;
let
data5 = HTTP.post(
"https://member.aliyundrive.com/v2/activity/sign_in_task_reward"
,
JSON.stringify({
"signInDay"
: signin_count }),
{ headers: {
"Authorization"
: access_token2 } }
);
data5 = data5.json();
var
success = data5[
'success'
]
if
(success ==
true
) {
var
result5 = data5[
"result"
][
"notice"
];
}
else
{
var
result5 = data5[
"message"
]
}
console.log(result5)
}
else
{
console.log(
'不领取备份奖励'
)
}
var
loginnotice =
""
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"
) {
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"
) {
const urlp =
"https://www.pushplus.plus/send"
let
response = HTTP.post(
urlp,
{
"token"
: pushtoken,
"title"
:
"阿里云盘-签到通知"
,
"content"
: loginresult +
'\n'
+ signresult +
'\n'
+
''
+ result1 +
'\n'
+ result2 +
'\n'
+ result4 +
'\n'
+ result5 +
'\n'
+ loginnotice +
''
,
"channel"
:
"wechat"
,
"template"
:
"html"
},
{
headers: {
"Content-Type"
:
"application/json"
,
},
timeout: 60000,
}
);
console.log(response.text());
}
}
else
{
console.log(
'取得随机值不是1,不签到'
)
}
}
else
{
console.log(date +
'已签到'
)
}
}
}
}