Files
GX-gp-notify/run_cron_crawl.sh
T
v6ole c548a8b5bd ```
feat(core): 添加大化县政府网采购公告数据表和相关功能

- 创建 dahuagov_announcements 表用于存储大化县政府网采购公告
- 添加相关索引以提高查询性能
- 实现 save_dahuagov_announcements、get_new_dahuagov_announcements
  和 mark_dahuagov_announcements_sent 方法
- 修改统计查询以包含大化县公告数据
- 更新内容哈希检查逻辑以支持新表

feat(cron): 集成大化县政府网采购公告爬取功能

- 导入大化县政府网爬虫模块
- 修改定时任务流程以同时爬取广西政府采购网和大化县政府网
- 对不同来源公告采用不同处理策略:
  - 广西政府采购网:关键词筛选后推送
  - 大化县政府网:全部推送,不过滤关键词
- 分别处理和统计两个来源的公告数据
- 实现独立的通知发送和状态更新机制

feat(notification): 优化企业微信通知显示大化县来源标识

- 为不同来源公告添加前缀标识(【大化县政府网】或【广西政府采购网】)
- 根据公告来源动态调整通知标题:
  - 单一来源显示具体来源
  - 双来源显示"双源监控"标识
- 改进通知卡片的来源区分度,便于用户识别公告来源
```
2026-05-09 10:55:00 +08:00

114 lines
3.3 KiB
Bash
Executable File

#!/bin/bash
# 定时搜索脚本启动器
# 用于启动广西政府采购网和大化县政府网公告定时搜索任务
# 自动激活项目虚拟环境并运行Python脚本
# 设置脚本遇到错误时退出
set -e
# 获取脚本所在目录的绝对路径
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$SCRIPT_DIR"
echo "========================================"
echo "🕒 政府采购公告定时搜索任务"
echo "📂 项目目录: $PROJECT_ROOT"
echo "🌐 监控网站:"
echo " - 广西政府采购网 (zfcg.gxzf.gov.cn)"
echo " - 大化县政府网 (gxdh.gov.cn)"
echo "⏰ 开始时间: $(date '+%Y-%m-%d %H:%M:%S')"
echo "========================================"
# 检查虚拟环境
VENV_PATH="$PROJECT_ROOT/venv"
if [ ! -d "$VENV_PATH" ]; then
echo "❌ 错误: 找不到虚拟环境目录"
echo " 预期路径: $VENV_PATH"
echo " 请确保虚拟环境已正确创建"
exit 1
fi
# 检查虚拟环境激活脚本
VENV_ACTIVATE="$VENV_PATH/bin/activate"
if [ ! -f "$VENV_ACTIVATE" ]; then
echo "❌ 错误: 找不到虚拟环境激活脚本"
echo " 预期路径: $VENV_ACTIVATE"
exit 1
fi
echo "✅ 找到虚拟环境: $VENV_PATH"
# 激活虚拟环境
echo "🔧 激活虚拟环境..."
echo " 激活脚本: $VENV_ACTIVATE"
source "$VENV_ACTIVATE"
# 检查Python环境(在虚拟环境中)
if ! command -v python &> /dev/null; then
echo "❌ 错误: 虚拟环境中未找到Python命令"
exit 1
fi
# 检查Python版本(在虚拟环境中)
PYTHON_VERSION=$(python --version 2>&1 | cut -d' ' -f2 | cut -d. -f1-2)
echo "🐍 Python版本 (虚拟环境): $PYTHON_VERSION"
# 检查项目目录
if [ ! -d "$PROJECT_ROOT/gx_gp_monitor" ]; then
echo "❌ 错误: 找不到gx_gp_monitor目录"
echo " 预期路径: $PROJECT_ROOT/gx_gp_monitor"
exit 1
fi
# 检查cron_crawl.py文件
CRON_SCRIPT="$PROJECT_ROOT/gx_gp_monitor/cron_crawl.py"
if [ ! -f "$CRON_SCRIPT" ]; then
echo "❌ 错误: 找不到cron_crawl.py文件"
echo " 预期路径: $CRON_SCRIPT"
exit 1
fi
echo "✅ 环境检查通过"
# 检查当前时间是否在夜间休息时间段 (23:00 - 07:00)
CURRENT_HOUR=$(date +%H)
CURRENT_MINUTE=$(date +%M)
CURRENT_TIME=$((CURRENT_HOUR * 60 + CURRENT_MINUTE))
START_TIME=$((23 * 60 + 0)) # 23:00
END_TIME=$((7 * 60 + 0)) # 07:00
if [ $CURRENT_TIME -ge $START_TIME ] || [ $CURRENT_TIME -lt $END_TIME ]; then
echo "🌙 当前时间 $(date '+%H:%M') 在夜间休息时间段 (23:00-07:00)"
echo "💤 跳过爬取任务,直接结束"
echo "========================================"
echo "🏁 任务跳过"
echo "📅 结束时间: $(date '+%Y-%m-%d %H:%M:%S')"
echo "🔚 退出代码: 0 (跳过)"
echo "✅ 任务跳过成功"
echo "========================================"
exit 0
fi
echo "🚀 启动定时搜索脚本..."
# 切换到项目根目录
cd "$PROJECT_ROOT"
# 执行定时爬取脚本
python "$CRON_SCRIPT"
EXIT_CODE=$?
echo "========================================"
echo "🏁 任务完成"
echo "📅 结束时间: $(date '+%Y-%m-%d %H:%M:%S')"
echo "🔚 退出代码: $EXIT_CODE"
if [ $EXIT_CODE -eq 0 ]; then
echo "✅ 任务执行成功"
else
echo "❌ 任务执行失败"
fi
echo "========================================"
exit $EXIT_CODE