#!/usr/bin/env python3
"""
每日招标检索脚本
自动检索多米尼加政府采购平台并发送邮件
"""

import smtplib
from email.mime.text import MIMEText
from datetime import datetime
import subprocess
import json
import re

# 关键词
KEYWORDS = ['solar', 'fotovoltaico', 'cargador', 'medidor', 'transformador', 
            'ctpt', 'recloser', 'led', 'medidor de agua', 'acueduct', 'batería', 'bateria', 'battery']

TODAY = datetime.now().strftime('%Y-%m-%d')
EMAIL_SUBJECT = f"招标检索结果 - {TODAY}"

def get_tenders_via_browser(keyword):
    """通过浏览器获取招标数据"""
    try:
        # 使用 AppleScript 控制浏览器
        script = f'''
        tell application "Google Chrome"
            activate
            delay 2
            tell active tab of window 1
                set URL to "https://comunidad.comprasdominicana.gob.do/Public/Tendering/ContractNoticeManagement/Index"
            end tell
            delay 5
        end tell
        '''
        subprocess.run(['osascript', '-e', script], capture_output=True)
        return []
    except Exception as e:
        print(f"Error: {e}")
        return []

def generate_email_content(tenders):
    """生成邮件内容"""
    body = f"""📋 今日招标检索结果 ({TODAY})

关键词：{', '.join(KEYWORDS)}

"""
    
    if tenders:
        body += f"找到 {len(tenders)} 条相关招标：\n\n"
        for t in tenders:
            body += f"""【{t['reference']}】
机构：{t['authority']}
项目：{t['description']}
金额：{t['price']}
状态：{t['status']}
截止：{t.get('deadline', 'N/A')}
---
"""
    else:
        body += """结论：今日无符合关键词的新招标

---

相关招标回顾（非今日新增）：
（请手动检查往期招标）
"""
    
    body += """
---
数据来源：https://comunidad.comprasdominicana.gob.do
"""
    return body

def send_email(subject, body):
    """发送邮件"""
    msg = MIMEText(body, 'plain', 'utf-8')
    msg['Subject'] = subject
    msg['From'] = 'fengxia569@163.com'
    msg['To'] = 'feng.xia@hxgroup.com'
    
    # 添加其他收件人
    recipients = ['feng.xia@hxgroup.com', 'evelyn@hxgroup.com']
    
    server = smtplib.SMTP_SSL('smtp.163.com', 465)
    server.login('fengxia569@163.com', 'ZZ38a32nQEwTe2Wn')
    server.send_message(msg, 'fengxia569@163.com', recipients)
    server.quit()
    
    print(f"邮件已发送至: {', '.join(recipients)}")

def main():
    print(f"=== 开始每日招标检索 ({TODAY}) ===")
    
    # 这里需要手动浏览器操作
    # 实际执行时需要人工介入或使用自动化工具
    
    tenders = []  # 从浏览器获取的数据
    
    body = generate_email_content(tenders)
    send_email(EMAIL_SUBJECT, body)
    
    print("=== 检索完成 ===")

if __name__ == '__main__':
    main()
