#!/usr/bin/env bash # Brand Monitoring Weekly Report # Runs: Friday at 09:09 # Generates weekly report (prev Friday to this Thursday) and sends notification to Telegram #3688 set -e cd /opt/ai-os/products/ceo/brand-monitoring/shared/workflows echo "=== Brand Monitoring Weekly Report ===" echo "$(date '+%Y-%m-%d %H:%M:%S')" # Calculate period: previous Friday to this Thursday # "last friday" from today (Friday) = 7 days ago PERIOD_START=$(date -d 'last friday -7 days' '+%Y-%m-%d' 2>/dev/null || date -d '7 days ago' '+%Y-%m-%d') PERIOD_END=$(date -d 'yesterday' '+%Y-%m-%d') # On Friday: period = prev Friday to Thursday # More precise: last-week Friday to this-week Thursday PERIOD_START=$(python3 -c " import datetime today = datetime.date.today() # today is Friday (weekday=4) # period_end = yesterday = Thursday period_end = today - datetime.timedelta(days=1) # period_start = previous Friday = 7 days ago period_start = today - datetime.timedelta(days=7) print(period_start.isoformat()) ") PERIOD_END=$(python3 -c " import datetime today = datetime.date.today() period_end = today - datetime.timedelta(days=1) print(period_end.isoformat()) ") echo "Period: ${PERIOD_START} -> ${PERIOD_END}" # Step 1: Collect fresh RSS first python3 collect_rss.py # Step 2: Run pipeline python3 pipeline.py # Step 3: Generate weekly report python3 -c " import sys sys.path.append('.') from report_generator import generate_report path = generate_report('weekly', '${PERIOD_START}', '${PERIOD_END}') print('Report:', path) " # Step 4: Dispatch any pending alerts python3 alert_dispatcher.py echo "=== Done ==="