#!/bin/bash # 内容分发系统数据库版启动脚本(完全从数据库获取数据) # 设置默认时间戳变量 TIMESTAMP=$(date +"%Y%m%d_%H%M%S") # 设置路径变量 BASE_DIR="/root/autodl-tmp/TravelContentCreator" LOG_DIR="$BASE_DIR/log" RESULT_DIR="$BASE_DIR/output/$TIMESTAMP" OUTPUT_DIR="$RESULT_DIR/distribution_results" DB_PATH="$BASE_DIR/distribution.db" # 设置邮件相关变量 EMAIL_FROM="zwysendemail@163.com" EMAIL_PASSWORD="NMhVGFmCJkGEy3B5" SUBJECT="文旅小红书带货笔记内容0513" ZIP_FILENAME="文旅小红书带货笔记内容0513" # 设置分发配置 ARTICLE_PER_USER=1 MAX_USERS=10 # 最多发送给多少用户,不限制则设置为-1 TEST_MODE=true # 测试模式,不实际发送邮件 JUDGE_ONLY=true # 只分发审核通过的内容 UNDISTRIBUTED_ONLY=true # 只分发未分发的内容 # 内容筛选配置 TARGET_PRODUCT="【奇妙萌可卡牌套票】四季梦幻亲子乐园单人票" # 为空则不筛选特定产品 TARGET_OBJECT="" # 为空则不筛选特定景点 # 用户筛选配置 TARGET_USER_ID="" # 为空则不筛选特定用户ID TARGET_USER_EMAIL="" # 为空则不筛选特定用户邮箱 # 创建必要的目录 mkdir -p "$LOG_DIR" mkdir -p "$OUTPUT_DIR" # 将日志同时输出到控制台和日志文件 LOG_FILE="$LOG_DIR/distribution_db_$TIMESTAMP.log" exec > >(tee -a "$LOG_FILE") 2>&1 echo "===================================================" echo "内容分发系统启动 (数据库全依赖版) - $(date)" echo "===================================================" echo "日志保存在: $LOG_FILE" echo "结果保存在: $RESULT_DIR" # 检查数据库是否存在 if [ ! -f "$DB_PATH" ]; then echo "数据库文件不存在: $DB_PATH" echo "请先初始化数据库或检查路径是否正确" exit 1 fi # 检查内容表是否有记录 CONTENT_COUNT=$(sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM contents;") if [ "$CONTENT_COUNT" -eq 0 ]; then echo "警告: 内容表中没有记录,请先导入内容" exit 1 fi # 检查用户表是否有记录 USER_COUNT=$(sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM users;") if [ "$USER_COUNT" -eq 0 ]; then echo "警告: 用户表中没有记录,请先导入用户" exit 1 fi # 数据库状态统计 echo "数据库状态统计:" sqlite3 "$DB_PATH" <