mirror of
https://github.com/alantang1977/X.git
synced 2024-11-05 14:13:09 +02:00
76 lines
4.1 KiB
Bash
76 lines
4.1 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
#获取工作路径
|
||
|
CURRENT_DIR=$(
|
||
|
cd $(dirname $0)
|
||
|
pwd
|
||
|
)
|
||
|
#读取token
|
||
|
token=$(cat $CURRENT_DIR/token.txt)
|
||
|
#设置默认Headers参数
|
||
|
Header="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36"
|
||
|
Rererer=https://www.aliyundrive.com/
|
||
|
#刷新token并获取drive_id、access_token
|
||
|
response=$(curl https://auth.aliyundrive.com/v2/account/token -X POST -H "User-Agent:$Header" -H "Content-Type:application/json" -H "Rererer:$Rererer" -d '{"refresh_token":"'$token'", "grant_type": "refresh_token"}')
|
||
|
drive_id=$(echo "$response" | sed -n 's/.*"default_drive_id":"\([^"]*\).*/\1/p')
|
||
|
new_token=$(echo "$response" | sed -n 's/.*"refresh_token":"\([^"]*\).*/\1/p')
|
||
|
access_token=$(echo "$response" | sed -n 's/.*"access_token":"\([^"]*\).*/\1/p')
|
||
|
if [ -z "$new_token" ]; then
|
||
|
echo "刷新Token失败"
|
||
|
exit 1
|
||
|
fi
|
||
|
echo -n ${new_token} >$CURRENT_DIR/token.txt
|
||
|
|
||
|
#签到
|
||
|
response=$(curl "https://member.aliyundrive.com/v1/activity/sign_in_list" -X POST -H "User-Agent:$Header" -H "Content-Type:application/json" -H "Authorization:Bearer $access_token" -d '{"grant_type":"refresh_token", "refresh_token":"'$new_token'"}')
|
||
|
success=$(echo $response | cut -f1 -d, | cut -f2 -d:)
|
||
|
if [ $success = "true" ]; then
|
||
|
echo "阿里签到成功"
|
||
|
fi
|
||
|
signday=$(echo "$response" | grep -o '"day":[0-9]\+' | cut -d':' -f2-)
|
||
|
status=$(echo "$response" | grep -o "\"status\":\"[^\"]*\"" | cut -d':' -f2- | tr -d '"')
|
||
|
isReward=$(echo "$response" | grep -o '"isReward":[^,}]\+' | cut -d':' -f2- | sed '1d')
|
||
|
col=1
|
||
|
for day in $signday; do
|
||
|
stat=$(echo $status | awk -v col="$col" '{print $col}')
|
||
|
reward=$(echo $isReward | awk -v col="$col" '{print $col}')
|
||
|
if [ $stat = "normal" ] && [ "$reward" = "false" ]; then
|
||
|
echo "正在领取第$day天奖励"
|
||
|
curl -s -H "User-Agent:$Header" -H "Authorization:Bearer $access_token" -H "Content-Type: application/json" -X POST -d '{"refresh_token":"'$token'", "grant_type": "refresh_token", "signInDay": "'$day'"}' "https://member.aliyundrive.com/v1/activity/sign_in_reward"
|
||
|
fi
|
||
|
col=$((col + 1))
|
||
|
done
|
||
|
|
||
|
#获取opentoken
|
||
|
response=$(curl "https://open.aliyundrive.com/oauth/users/authorize?client_id=76917ccccd4441c39457a04f6084fb2f&redirect_uri=https://alist.nn.ci/tool/aliyundrive/callback&scope=user:base,file:all:read,file:all:write&state=" -X POST -H "User-Agent:$Header" -H "Content-Type:application/json" -H "Rererer:$Rererer" -H "Authorization:Bearer $access_token" -d '{"authorize":"1", "scope": "user:base,file:all:read,file:all:write"}')
|
||
|
code=$(echo $response | sed -n 's/.*code=\([^"]*\).*/\1/p')
|
||
|
response=$(curl "https://api.nn.ci/alist/ali_open/code" -X POST -H "User-Agent:$Header" -H "Content-Type:application/json" -H "Rererer:$Rererer" -H "Authorization:Bearer $access_token" -d '{"code":"'$code'", "grant_type":"authorization_code"}')
|
||
|
opentoken=$(echo $response | sed -n 's/.*"refresh_token":"\([^"]*\).*/\1/p')
|
||
|
echo -n ${opentoken} >$CURRENT_DIR/open.txt
|
||
|
echo -n "${new_token};${opentoken}" >$CURRENT_DIR/alltok.txt
|
||
|
|
||
|
#删除文件
|
||
|
delete_File() {
|
||
|
response=$(curl -s -H "User-Agent:$Header" -H "Authorization:Bearer $access_token" -H "Content-Type: application/json" -X POST -d '{"drive_id": "'$drive_id'","parent_file_id": "root"}' "https://api.aliyundrive.com/adrive/v3/file/list")
|
||
|
if [ -z "$(echo "$response" | grep "items")" ]; then
|
||
|
echo "获取文件列表失败"
|
||
|
exit 1
|
||
|
fi
|
||
|
file_lines=$(echo "$response" | grep -o "\"file_id\":\"[^\"]*\"" | cut -d':' -f2- | tr -d '"')
|
||
|
type_lines=$(echo "$response" | grep -o "\"type\":\"[^\"]*\"" | cut -d':' -f2- | tr -d '"')
|
||
|
col=1
|
||
|
for file_id in $file_lines; do
|
||
|
type=$(echo $type_lines | awk -v col="$col" '{print $col}')
|
||
|
if [ $type = "file" ]; then
|
||
|
curl -s -H "User-Agent:$Header" -H "Authorization:Bearer $access_token" -H "Content-Type: application/json" -X POST -d '{"requests": [{"body": {"drive_id": "'$drive_id'", "file_id": "'$file_id'"}, "headers": {"Content-Type": "application/json"}, "id": "'$file_id'", "method": "POST", "url": "/file/delete"}], "resource": "file"}' "https://api.aliyundrive.com/v3/batch"
|
||
|
fi
|
||
|
col=$((col + 1))
|
||
|
done
|
||
|
}
|
||
|
|
||
|
INPUT=$1
|
||
|
case $INPUT in
|
||
|
delete_File) delete_File ;;
|
||
|
esac
|
||
|
|