Skip to content
This repository has been archived by the owner on May 22, 2024. It is now read-only.

Commit

Permalink
fix: #73 新增签到领取奖励接口
Browse files Browse the repository at this point in the history
  • Loading branch information
mrabit committed Apr 22, 2023
1 parent f7a357d commit da4240d
Showing 1 changed file with 55 additions and 13 deletions.
68 changes: 55 additions & 13 deletions autoSignin.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@ const { initInstance, getEnv, updateCkEnv } = require('./qlApi.js')
const notify = require('./sendNotify')

const updateAccesssTokenURL = 'https://auth.aliyundrive.com/v2/account/token'
const signinURL = 'https://member.aliyundrive.com/v1/activity/sign_in_list'
const signinURL =
'https://member.aliyundrive.com/v1/activity/sign_in_list?_rx-s=mobile'
const rewardURL =
'https://member.aliyundrive.com/v1/activity/sign_in_reward?_rx-s=mobile'

// 使用 refresh_token 更新 access_token
function updateAccesssToken(queryBody, remarks) {
Expand Down Expand Up @@ -37,21 +40,23 @@ function updateAccesssToken(queryBody, remarks) {
})
}

//签到
function sign_in(queryBody, access_token, remarks) {
//签到列表
function sign_in(access_token, remarks) {
const sendMessage = [remarks]
return axios(signinURL, {
method: 'POST',
data: queryBody,
data: {
isReward: false
},
headers: {
Authorization: 'Bearer ' + access_token,
Authorization: access_token,
'Content-Type': 'application/json'
}
})
.then(d => d.data)
.then(json => {
.then(async json => {
if (!json.success) {
sendMessage.push('签到失败')
sendMessage.push('签到失败', json.message)
return Promise.reject(sendMessage.join(', '))
}

Expand All @@ -62,16 +67,32 @@ function sign_in(queryBody, access_token, remarks) {

sendMessage.push(`本月累计签到 ${signInCount} 天`)

// 当天签到是否有奖励
if (
currentSignInfo.reward &&
(currentSignInfo.reward.name || currentSignInfo.reward.description)
// 未领取奖励列表
const rewards = signInLogs.filter(
v => v.status === 'normal' && !v.isReward
)

if (rewards.length) {
for await (reward of rewards) {
const signInDay = reward.day
try {
const rewardInfo = await getReward(access_token, signInDay)
sendMessage.push(
`第${signInDay}天奖励领取成功: 获得${rewardInfo.name || ''}${
rewardInfo.description || ''
}`
)
} catch (e) {
sendMessage.push(`第${signInDay}天奖励领取失败:`, e)
}
}
} else if (currentSignInfo.isReward) {
sendMessage.push(
`本次签到获得${currentSignInfo.reward.name || ''}${
`今日签到获得${currentSignInfo.reward.name || ''}${
currentSignInfo.reward.description || ''
}`
)
}

return sendMessage.join(', ')
})
Expand All @@ -82,6 +103,26 @@ function sign_in(queryBody, access_token, remarks) {
})
}

// 领取奖励
function getReward(access_token, signInDay) {
return axios(rewardURL, {
method: 'POST',
data: { signInDay },
headers: {
authorization: access_token,
'Content-Type': 'application/json'
}
})
.then(d => d.data)
.then(json => {
if (!json.success) {
return Promise.reject(json.message)
}

return json.result
})
}

// 获取环境变量
async function getRefreshToken() {
let instance = null
Expand Down Expand Up @@ -125,6 +166,7 @@ async function getRefreshToken() {
grant_type: 'refresh_token',
refresh_token: refreshToken.value || refreshToken
}

try {
const { nick_name, refresh_token, access_token } =
await updateAccesssToken(queryBody, remarks)
Expand All @@ -150,7 +192,7 @@ async function getRefreshToken() {
await updateCkEnv(instance, params)
}

const sendMessage = await sign_in(queryBody, access_token, remarks)
const sendMessage = await sign_in(access_token, remarks)
console.log(sendMessage)
console.log('\n')
message.push(sendMessage)
Expand Down

0 comments on commit da4240d

Please sign in to comment.