Files
qinglong/脚本库/APP版/账密/阿里云盘签到/2025-04-28_sudojia_aliyundrive_75ec43e2.js
2026-05-24 05:33:05 +00:00

133 lines
4.4 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// # 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`
}