#!/bin/bash # 恢复 iPhone 拍摄的在小窝上的部分照片 server="https://paul.ren/api" #server="https://home.paul.xin/api" token="eyJpZCI6MSwibmFtZSI6IlBhdWwiLCJyb2xlIjoiYWRtaW4iLCJpYXQiOjE2OTY0MTE4MjgsImV4cCI6MTY5NjQzMzQyOH0=@qlcS89fPf/NxAXtyvw8/95arZRkpQxQ+7i9LYgiZhPc=" # 创建文件夹 output mkdir -p output # 遍历当前文件夹下的所有 heic 文件 for file in *.{HEIC,heic}; do # 跳过不该执行的文件 if [[ "$file" == "." || "$file" == ".." || "$file" == "*.heic" ]]; then continue fi # 存储图片名到变量 filename=$(basename "$file") # 将文件名中的 .heic 替换为 .jpg echo "$filename\n"; new_filename=${filename/.HEIC/.jpg} new_filename=${new_filename/.heic/.jpg} # 发送 GET 请求获取 JSON 数据 response=$(curl --header "paul-token: $token" -s "$server/media/get/?origin_name=$new_filename") # 提取 id id=$(echo "$response" | jq -r '.data.id') # 如果没有 id,则跳过当前循环 if [ -z "$id" ]; then echo "匹配 $new_filename 失败\n" continue elif [[ "$id" == "null" ]]; then echo "匹配 $new_filename 失败\n" continue fi echo "匹配 $new_filename 成功,id 是 $id\n" # 存储图片名到变量 filename=$(basename "$file") # 判断图片是竖屏的还是横屏的 # 使用 identify 命令判断图片的宽度和高度 width=$(identify -format "%w" "$file") height=$(identify -format "%h" "$file") # 指定图片大小 if [ $width -ge $height ]; then new_size="2000x1500" else new_size="1500x2000" fi # 使用 ImageMagick 处理图片 magick "$file" -gravity center -resize "$new_size^" -extent "$new_size" -quality 80 output/$new_filename # 使用 exiftool 抹掉图片的 gps 信息,并设置作者名称为 Paul #exiftool -gps:all= -artist="Paul" -overwrite_original "output/$filename" exiftool -overwrite_original -gps:all= -artist="奇趣保罗" -CreatorTool= "output/$new_filename" # 提交该文件给服务器 curl --location "$server/media/update" \ --header "paul-token: $token" \ --form "id=$id" \ --form "photo=@output/$new_filename" \ --form 'IGNORE_UPDATE_TIME="1"' echo "\n\n" done