Continue seeded Qinglong script collection
This commit is contained in:
132
脚本库/APP版/账密/阿里云盘签到/2025-04-28_sudojia_aliyundrive_75ec43e2.js
Normal file
132
脚本库/APP版/账密/阿里云盘签到/2025-04-28_sudojia_aliyundrive_75ec43e2.js
Normal file
@@ -0,0 +1,132 @@
|
||||
// # Source: https://github.com/sudojia/AutoTaskScript/blob/script/src/web/sudojia_aliyundrive.js
|
||||
// # Raw: https://raw.githubusercontent.com/sudojia/AutoTaskScript/script/src/web/sudojia_aliyundrive.js
|
||||
// # Repo: sudojia/AutoTaskScript
|
||||
// # Path: src/web/sudojia_aliyundrive.js
|
||||
// # UploadedAt: 2025-04-28T19:26:13+08:00
|
||||
// # SHA256: 75ec43e2a22bf9b15950ca462ac41bcfb78ba18983f400ec906670a29fd035c9
|
||||
// # Category: APP版/账密
|
||||
// # Evidence: username/password/mobile/login
|
||||
//
|
||||
|
||||
/**
|
||||
* 阿里云盘每日签到
|
||||
*
|
||||
* 移除了获取奖励, 目前仅支持签到
|
||||
* export ALI_REFRESH_TOKEN = 'xxxxx'
|
||||
* 多账号用 & 或换行
|
||||
*
|
||||
* @author Telegram@sudojia
|
||||
* @site https://blog.imzjw.cn
|
||||
* @date 2024/5/18
|
||||
*
|
||||
* const $ = new Env('阿里云盘签到')
|
||||
* cron: 35 10 * * *
|
||||
*/
|
||||
const initScript = require('../utils/initScript')
|
||||
const {$, notify, sudojia, checkUpdate} = initScript('阿里云盘签到');
|
||||
// 环境变量
|
||||
const refreshTokenList = process.env.ALI_REFRESH_TOKEN ? process.env.ALI_REFRESH_TOKEN.split(/[\n&]/) : [];
|
||||
// 消息推送
|
||||
let message = '';
|
||||
// 阿里云盘 API 配置
|
||||
const API_CONFIG = {
|
||||
"SIGN_IN_API": "https://member.aliyundrive.com/v1/activity/sign_in_list",
|
||||
"GET_REWARD_API": "https://member.aliyundrive.com/v1/activity/sign_in_reward?_rx-s=mobile",
|
||||
"ACCESS_TOKEN_API": "https://auth.aliyundrive.com/v2/account/token"
|
||||
}
|
||||
|
||||
!(async () => {
|
||||
await checkUpdate($.name, refreshTokenList);
|
||||
for (let i = 0; i < refreshTokenList.length; i++) {
|
||||
const index = i + 1;
|
||||
const refreshToken = refreshTokenList[i];
|
||||
console.log(`\n*****第[${index}]个${$.name}账号*****`);
|
||||
message += `📣====${$.name}账号[${index}]====📣\n`;
|
||||
await main(refreshToken);
|
||||
await $.wait(sudojia.getRandomWait(2300, 2800));
|
||||
}
|
||||
if (message) {
|
||||
await notify.sendNotify(`「${$.name}」`, `${message}`);
|
||||
}
|
||||
})().catch((e) => $.logErr(e)).finally(() => $.done());
|
||||
|
||||
async function main(refreshToken) {
|
||||
const accessToken = await getAccessToken(refreshToken);
|
||||
if (!accessToken) {
|
||||
console.log('获取access_token失败, refresh_token可能有误');
|
||||
return;
|
||||
}
|
||||
await $.wait(sudojia.getRandomWait(1200, 2000));
|
||||
const signInCount = await AliSignIn(refreshToken, accessToken);
|
||||
// await $.wait(1000);
|
||||
// await getReward(accessToken, signInCount);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 access_token
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function getAccessToken(refreshToken) {
|
||||
try {
|
||||
const params = {
|
||||
grant_type: 'refresh_token',
|
||||
refresh_token: refreshToken
|
||||
}
|
||||
const data = await sudojia.sendRequest(API_CONFIG.ACCESS_TOKEN_API, 'post', {}, params);
|
||||
if (!data.access_token) {
|
||||
console.log('获取access_token失败, refresh_token可能有误');
|
||||
process.exit(0);
|
||||
}
|
||||
message += `【用户昵称】${data.nick_name}(${data.user_name})\n`;
|
||||
return data.access_token;
|
||||
} catch (e) {
|
||||
$.logErr('获取access_token接口异常:', e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 签到
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function AliSignIn(refreshToken, accessToken) {
|
||||
try {
|
||||
const params = {
|
||||
grant_type: 'refresh_token',
|
||||
refresh_token: refreshToken
|
||||
}
|
||||
const headers = {
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': `Bearer ${accessToken}`
|
||||
}
|
||||
const data = await sudojia.sendRequest(API_CONFIG.SIGN_IN_API, 'post', headers, params);
|
||||
console.log(data.success ? '签到成功\n' : '签到失败\n');
|
||||
message += data.success ? '【签到状态】签到成功\n' : '【签到状态】签到失败\n'
|
||||
message += `【签到统计】已累计签到${data.result.signInCount}天\n\n`;
|
||||
// 返回签到天数
|
||||
return data.result.signInCount;
|
||||
} catch (e) {
|
||||
$.logErr('请求签到接口异常:', e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取签到奖励
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function getReward(accessToken, signInCount) {
|
||||
const params = {
|
||||
signInDay: signInCount
|
||||
}
|
||||
const headers = {
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': `Bearer ${accessToken}`
|
||||
}
|
||||
const data = await sudojia.sendRequest(API_CONFIG.GET_REWARD_API, 'post', headers, params);
|
||||
console.log(`奖励: ${data.result.notice}\n`);
|
||||
message += `【签到奖励】${data.result.notice}\n`
|
||||
}
|
||||
Reference in New Issue
Block a user