TravelContentCreator/scripts/example_database_usage.sh

91 lines
3.3 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 设置路径变量
BASE_DIR="/root/autodl-tmp/TravelContentCreator"
DB_PATH="$BASE_DIR/distribution.db"
LOG_DIR="$BASE_DIR/log/db_reports"
OUTPUT_DIR="$BASE_DIR/output/db_reports/$(date +"%Y%m%d_%H%M%S")"
# 创建必要的目录
mkdir -p "$LOG_DIR"
mkdir -p "$OUTPUT_DIR"
# 将日志同时输出到控制台和日志文件
LOG_FILE="$LOG_DIR/database_operations_$(date +"%Y%m%d_%H%M%S").log"
exec > >(tee -a "$LOG_FILE") 2>&1
echo "===== 开始内容分发数据库操作 ====="
echo "时间: $(date)"
echo "数据库路径: $DB_PATH"
echo "输出目录: $OUTPUT_DIR"
# 1. 初始化数据库(如果不存在)
echo -e "\n\n===== 初始化数据库 ====="
python scripts/distribution_database.py --db-path "$DB_PATH" init
# 2. 导入内容清单
echo -e "\n\n===== 导入内容清单 ====="
python scripts/distribution_database.py --db-path "$DB_PATH" import-contents \
--file "$BASE_DIR/output/2025-05-12_09-33-12/manifest_2025-05-12_09-33-12.csv"
# 3. 导入用户数据
echo -e "\n\n===== 导入用户数据 ====="
python scripts/distribution_database.py --db-path "$DB_PATH" import-users \
--file "$BASE_DIR/output/5.12 copy.csv" \
--email-column "达人邮箱" \
--username-column "小红书ID"
# 4. 导入现有分发记录
echo -e "\n\n===== 导入分发记录 ====="
# 假设有一个最近的分发记录CSV
LATEST_DIST_FILE=$(ls -t "$BASE_DIR"/output/*/distribution_*.csv | head -1)
if [ -n "$LATEST_DIST_FILE" ]; then
BATCH_ID="batch_$(date +"%Y%m%d")"
echo "导入分发记录: $LATEST_DIST_FILE (批次ID: $BATCH_ID)"
python scripts/distribution_database.py --db-path "$DB_PATH" import-distribution \
--file "$LATEST_DIST_FILE" \
--batch-id "$BATCH_ID"
else
echo "未找到分发记录文件,跳过导入"
fi
# 5. 查询特定产品的内容分发状态
echo -e "\n\n===== 查询产品分发状态 ====="
python scripts/distribution_database.py --db-path "$DB_PATH" query-content \
--product "五常大米" \
--output "$OUTPUT_DIR/五常大米_分发状态.csv"
# 6. 查询特定景点的内容分发状态
echo -e "\n\n===== 查询景点分发状态 ====="
python scripts/distribution_database.py --db-path "$DB_PATH" query-content \
--object "呼伦贝尔草原" \
--output "$OUTPUT_DIR/呼伦贝尔草原_分发状态.csv"
# 7. 查询特定用户接收的内容
echo -e "\n\n===== 查询用户接收内容 ====="
USER_EMAIL="example@example.com" # 替换为实际用户邮箱
python scripts/distribution_database.py --db-path "$DB_PATH" query-user \
--email "$USER_EMAIL" \
--output "$OUTPUT_DIR/用户${USER_EMAIL}_接收内容.csv"
# 8. 生成综合统计报告
echo -e "\n\n===== 生成统计报告 ====="
python scripts/distribution_database.py --db-path "$DB_PATH" report \
--output "$OUTPUT_DIR/分发统计报告.csv" \
--format "csv"
# 9. 生成JSON格式统计报告可用于可视化
echo -e "\n\n===== 生成JSON统计报告 ====="
python scripts/distribution_database.py --db-path "$DB_PATH" report \
--output "$OUTPUT_DIR/分发统计报告.json" \
--format "json"
echo -e "\n\n===== 内容分发数据库操作完成 ====="
echo "时间: $(date)"
echo "所有报告已保存到: $OUTPUT_DIR"
echo "日志已保存到: $LOG_FILE"
# 列出生成的报告文件
echo -e "\n生成的报告文件列表:"
find "$OUTPUT_DIR" -type f | sort