From 18326811547a4aa7a5be0ab1f0b7b3bff53e1834 Mon Sep 17 00:00:00 2001 From: zhenyan121 <3367366583@qq.com> Date: Sat, 7 Feb 2026 12:17:19 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=8E=B7=E5=8F=96=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E7=9A=84=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/get-anime-wallpaper.sh | 79 ++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100755 scripts/get-anime-wallpaper.sh diff --git a/scripts/get-anime-wallpaper.sh b/scripts/get-anime-wallpaper.sh new file mode 100755 index 0000000..24f4679 --- /dev/null +++ b/scripts/get-anime-wallpaper.sh @@ -0,0 +1,79 @@ +#!/bin/bash + +# ================= 基础配置 ================= +API_URL="https://t.alcy.cc/pc/" +#API_URL="https://www.dmoe.cc/random.php" +SAVE_DIR="$HOME/Pictures/Wallpapers/api-random-download" + +# 创建保存目录 +mkdir -p "$SAVE_DIR" + +# 设置 User-Agent +USER_AGENT="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" + +# ================= 参数解析 ================= +COUNT=${1:-1} # 默认 1 次 + +# 检查参数是否为正整数 +if ! [[ "$COUNT" =~ ^[1-9][0-9]*$ ]]; then + echo "❌ 用法: $0 [次数]" + echo " 示例: $0 → 执行1次" + echo " $0 5 → 执行5次" + exit 1 +fi + +# 检查 timg 是否安装 +if ! command -v timg &> /dev/null; then + echo "⚠️ 未找到 'timg' 命令,请先安装它来预览图片。" + echo "👉 Ubuntu/Debian: sudo apt install timg" + echo "👉 Arch: yay -S timg" + echo "👉 其他系统: https://github.com/hzeller/timg" + exit 1 +fi + +# ================= 主循环 ================= +for ((i=1; i<=COUNT; i++)); do + echo + echo "🔁 第 $i 次 —— 下载新壁纸中..." + + TMP_FILE="/tmp/wallpaper_preview_$(date +%s)_$i.jpg" + + # 下载到临时文件 + curl -L -A "$USER_AGENT" --connect-timeout 10 -m 120 -o "$TMP_FILE" "$API_URL" 2>/dev/null + + # 检查下载是否成功 + if [ $? -ne 0 ] || [ ! -f "$TMP_FILE" ] || [ $(wc -c < "$TMP_FILE") -lt 20480 ]; then + echo "❌ 第 $i 次下载失败或图片无效,跳过。" + rm -f "$TMP_FILE" 2>/dev/null + continue + fi + + # 在终端预览图片 + echo "🖼️ 正在终端预览第 $i 张图片... (按任意键继续)" + timg -g 80x40 "$TMP_FILE" + + # 询问用户是否保存 + read -p "💾 是否保存这张壁纸?[Y/n]: " choice + case "$choice" in + n|N|no|NO) + echo "🗑️ 已取消保存,临时文件已删除。" + rm -f "$TMP_FILE" + ;; + *) + # 生成正式文件名并移动 + FINAL_NAME="wall_$(date +%Y%m%d_%H%M%S)_$i.jpg" + FINAL_PATH="$SAVE_DIR/$FINAL_NAME" + mv "$TMP_FILE" "$FINAL_PATH" + echo "✅ 已保存: $FINAL_PATH" + ;; + esac + + # 如果不是最后一次,加个分隔线 + if [ $i -lt $COUNT ]; then + echo "──────────────────────────────────────" + fi +done + +echo +echo "🎉 完成!共尝试 $COUNT 次。" +