Files
Agent-n8n/data/订单班文档资料/管理订单班图片.sh

260 lines
7.7 KiB
Bash
Raw Permalink Normal View History

#!/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