Files
wevads-platform/scripts/brain-tester.sh
2026-02-26 04:53:11 +01:00

97 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
# BRAIN ENGINE TESTER - Utilise admin_email/admin_password
# Usage: ./brain-tester.sh [NUM_TESTS]
NUM_TESTS=${1:-10}
LOG_FILE="/var/log/wevads/brain-test.log"
mkdir -p /var/log/wevads
echo "$(date) - Starting brain tests ($NUM_TESTS)" >> $LOG_FILE
# Config qui a besoin de tests
CONFIG=$(PGPASSWORD=admin123 psql -U admin -d adx_system -t -A -c "
SELECT id, isp_target, send_method, domain_used
FROM admin.brain_configs
WHERE total_sent < 20
ORDER BY total_sent ASC, RANDOM()
LIMIT 1;
")
if [ -z "$CONFIG" ]; then
echo "No configs need testing"
exit 0
fi
CONFIG_ID=$(echo $CONFIG | cut -d'|' -f1)
ISP=$(echo $CONFIG | cut -d'|' -f2)
echo "Testing config #$CONFIG_ID: $ISP"
# Seeds pour cet ISP
SEEDS=$(PGPASSWORD=admin123 psql -U admin -d adx_system -t -A -c "
SELECT email FROM admin.brain_seeds
WHERE isp = '$ISP' AND is_active = true
ORDER BY RANDOM() LIMIT $NUM_TESTS;
")
# Compte O365 actif avec les BONNES colonnes
SENDER=$(PGPASSWORD=admin123 psql -U admin -d adx_system -t -A -c "
SELECT admin_email, admin_password FROM admin.office_accounts
WHERE status = 'Active'
AND admin_email IS NOT NULL
AND admin_password IS NOT NULL
ORDER BY RANDOM() LIMIT 1;
")
SENDER_EMAIL=$(echo $SENDER | cut -d'|' -f1)
SENDER_PASS=$(echo $SENDER | cut -d'|' -f2)
if [ -z "$SENDER_EMAIL" ]; then
echo "No active O365 account found"
exit 1
fi
SENT=0
for SEED in $SEEDS; do
[ -z "$SEED" ] && continue
python3 << PYEOF
import smtplib
from email.mime.text import MIMEText
try:
msg = MIMEText("Brain test - Config #$CONFIG_ID for $ISP")
msg['Subject'] = "Test $ISP #$CONFIG_ID"
msg['From'] = '$SENDER_EMAIL'
msg['To'] = '$SEED'
msg['X-MS-Exchange-Organization-SCL'] = '-1'
server = smtplib.SMTP('smtp.office365.com', 587, timeout=30)
server.starttls()
server.login('$SENDER_EMAIL', '$SENDER_PASS')
server.sendmail('$SENDER_EMAIL', '$SEED', msg.as_string())
server.quit()
print("OK")
except Exception as e:
print(f"ERROR:{e}")
PYEOF
if [ $? -eq 0 ]; then
((SENT++))
PGPASSWORD=admin123 psql -U admin -d adx_system -c "
INSERT INTO admin.brain_test_jobs (config_id, seed_email, sender_email, status, created_at)
VALUES ($CONFIG_ID, '$SEED', '$SENDER_EMAIL', 'sent', NOW());
" 2>/dev/null
fi
sleep 3
done
# Update total_sent
PGPASSWORD=admin123 psql -U admin -d adx_system -c "
UPDATE admin.brain_configs SET total_sent = total_sent + $SENT WHERE id = $CONFIG_ID;
" 2>/dev/null
echo "$(date) - Sent $SENT tests for config #$CONFIG_ID" >> $LOG_FILE
echo "{\"config_id\":$CONFIG_ID,\"sent\":$SENT}"