#!/bin/bash # 订单班图片资源管理脚本 v3.0 # 此脚本提供统一的入口来管理订单班的图片资源 # 作者: Claude # 日期: $(date +%Y-%m-%d) # 设置颜色输出 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # 项目路径 PROJECT_DIR="/Users/xiaoqi/Documents/Dev/Project/2025-09-08_n8nDEMO演示" SCRIPTS_DIR="${PROJECT_DIR}/scripts" DATA_DIR="${PROJECT_DIR}/data/订单班文档资料" # 打印标题 print_banner() { clear echo -e "${BLUE}============================================================${NC}" echo -e "${BLUE} 订单班图片资源管理系统 v3.0${NC}" echo -e "${BLUE}============================================================${NC}" echo } # 显示主菜单 show_menu() { echo -e "${GREEN}请选择操作:${NC}" echo " 1) 🔧 管理订单班图片(完整功能)" echo " 2) 🚀 快速修复URL编码问题" echo " 3) 📊 验证所有订单班状态" echo " 4) 🔍 检查特定订单班" echo " 5) 💾 备份订单班数据" echo " 6) 🎯 高级图片链接修复(推荐)" echo " 7) 📝 查看使用说明" echo " 8) ❌ 退出" echo } # 执行管理脚本 run_manage_script() { echo -e "${YELLOW}启动订单班图片管理工具...${NC}" cd "$PROJECT_DIR" python3 "${SCRIPTS_DIR}/manage_order_images.py" } # 快速修复URL编码 quick_fix_urls() { echo -e "${YELLOW}开始快速修复URL编码问题...${NC}" echo echo "请选择修复范围:" echo " 1) 修复所有订单班" echo " 2) 选择特定订单班" echo read -p "请输入选项 (1-2): " choice cd "$PROJECT_DIR" if [ "$choice" = "1" ]; then python3 "${SCRIPTS_DIR}/fix_image_paths.py" elif [ "$choice" = "2" ]; then echo echo "可选订单班: 食品,环保,财经商贸,视觉设计,能源,交通物流,智能制造,文旅,化工,大健康,智能开发,土木" echo read -p "请输入订单班名称(用逗号分隔): " orders python3 "${SCRIPTS_DIR}/fix_image_paths.py" "$orders" fi } # 验证所有订单班 validate_all() { echo -e "${YELLOW}验证所有订单班状态...${NC}" cd "$PROJECT_DIR" # 统计信息 echo for dir in "$DATA_DIR"/*; do if [ -d "$dir" ] && [ "$(basename "$dir")" != ".DS_Store" ]; then order_name=$(basename "$dir") if [ -d "$dir/notion文稿/image" ]; then jpg_count=$(find "$dir/notion文稿/image" -name "*.jpg" 2>/dev/null | wc -l) png_count=$(find "$dir/notion文稿/image" -name "*.png" 2>/dev/null | wc -l) total=$((jpg_count + png_count)) echo -e " ${GREEN}$order_name${NC}: $total 张图片 (JPG:$jpg_count, PNG:$png_count)" else echo -e " ${RED}$order_name${NC}: 无图片目录" fi fi done # 检查URL编码 echo echo -e "${YELLOW}检查URL编码问题...${NC}" url_count=$(grep -r '%[0-9A-F][0-9A-F]' "$DATA_DIR" --include="*.md" 2>/dev/null | grep -E '\.(jpg|jpeg|png)' | wc -l) if [ $url_count -gt 0 ]; then echo -e " ${RED}⚠️ 发现 $url_count 个URL编码路径${NC}" echo " 建议运行选项2进行快速修复" else echo -e " ${GREEN}✅ 没有URL编码问题${NC}" fi } # 检查特定订单班 check_order() { echo -e "${YELLOW}检查特定订单班...${NC}" echo echo "可选订单班:" ls -1 "$DATA_DIR" | grep -v ".DS_Store" echo read -p "请输入订单班名称: " order_name order_dir="$DATA_DIR/$order_name" if [ ! -d "$order_dir" ]; then echo -e "${RED}错误: 订单班 '$order_name' 不存在${NC}" return fi echo echo -e "${BLUE}=== $order_name 详细信息 ===${NC}" # 检查图片 if [ -d "$order_dir/notion文稿/image" ]; then echo "图片统计:" echo " JPG: $(find "$order_dir/notion文稿/image" -name "*.jpg" 2>/dev/null | wc -l)" echo " PNG: $(find "$order_dir/notion文稿/image" -name "*.png" 2>/dev/null | wc -l)" echo " JPEG: $(find "$order_dir/notion文稿/image" -name "*.jpeg" 2>/dev/null | wc -l)" fi # 检查Markdown文件 if [ -d "$order_dir/notion文稿" ]; then echo echo "Markdown文件:" ls -1 "$order_dir/notion文稿"/*.md 2>/dev/null | head -5 fi # 检查URL编码 echo echo "URL编码检查:" url_count=$(grep -r '%[0-9A-F][0-9A-F]' "$order_dir" --include="*.md" 2>/dev/null | grep -E '\.(jpg|jpeg|png)' | wc -l) if [ $url_count -gt 0 ]; then echo -e " ${RED}发现 $url_count 个URL编码路径${NC}" else echo -e " ${GREEN}没有URL编码问题${NC}" fi } # 备份数据 backup_data() { echo -e "${YELLOW}开始备份订单班数据...${NC}" timestamp=$(date +%Y%m%d_%H%M%S) backup_dir="${PROJECT_DIR}/backups/backup_${timestamp}" echo "创建备份目录: $backup_dir" mkdir -p "$backup_dir" echo "复制数据文件..." cp -r "$DATA_DIR" "$backup_dir/" echo -e "${GREEN}✅ 备份完成!${NC}" echo "备份位置: $backup_dir" } # 运行高级图片修复 run_advanced_restoration() { echo -e "${YELLOW}启动高级图片链接修复工具...${NC}" echo echo -e "${GREEN}此工具使用智能算法:${NC}" echo " • 分析备份文件恢复原始映射" echo " • 按类别和序号智能匹配" echo " • 模糊匹配未映射的文件" echo " • 自动修复断开的图片链接" echo cd "$PROJECT_DIR" python3 "${SCRIPTS_DIR}/advanced_image_restoration.py" } # 显示使用说明 show_help() { echo -e "${BLUE}=== 使用说明 ===${NC}" echo echo "本脚本提供以下功能:" echo echo "1. ${GREEN}管理订单班图片${NC}" echo " - 提供完整的图片管理功能" echo " - 支持选择特定订单班进行处理" echo " - 包含验证、修复、备份等功能" echo echo "2. ${GREEN}快速修复URL编码${NC}" echo " - 修复图片路径中的URL编码问题" echo " - 移除不必要的 ./ 前缀" echo " - 支持批量或单独处理" echo echo "3. ${GREEN}验证状态${NC}" echo " - 显示所有订单班的图片统计" echo " - 检查URL编码问题" echo " - 快速了解整体状态" echo echo "4. ${GREEN}备份功能${NC}" echo " - 创建带时间戳的完整备份" echo " - 保护数据安全" echo echo -e "${YELLOW}提示:${NC}" echo "- 建议在执行修复前先进行备份" echo "- 如发现URL编码问题,使用选项2快速修复" echo "- 所有Python脚本位于 scripts/ 目录" echo read -p "按Enter键继续..." } # 主程序 main() { print_banner while true; do show_menu read -p "请输入选项 (1-8): " choice case $choice in 1) run_manage_script ;; 2) quick_fix_urls ;; 3) validate_all ;; 4) check_order ;; 5) backup_data ;; 6) run_advanced_restoration ;; 7) show_help ;; 8) echo -e "${GREEN}再见!${NC}" exit 0 ;; *) echo -e "${RED}无效选项,请重新选择${NC}" ;; esac echo read -p "按Enter键返回主菜单..." clear print_banner done } # 运行主程序 main