diff --git a/token.sh b/token.sh new file mode 100644 index 0000000..facc3be --- /dev/null +++ b/token.sh @@ -0,0 +1,75 @@ +#!/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 +