import logging
import smtplib
from email.mime.text import MIMEText
import requests

class Notifier:
    def __init__(self, telegram_token=None, chat_id=None, email_config=None):
        self.telegram_token = telegram_token
        self.chat_id = chat_id
        self.email_config = email_config

    def send_telegram(self, message):
        if not self.telegram_token or not self.chat_id:
            logging.warning("Telegram NOT set up.")
            return

        url = f"https://api.telegram.org/bot{self.telegram_token}/sendMessage"
        payload = {"chat_id": self.chat_id, "text": message, "parse_mode": "HTML"}
        try:
            requests.post(url, json=payload)
        except Exception as e:
            logging.error(f"Telegram failed: {e}")

    def send_email(self, subject, body):
        if not self.email_config or not self.email_config.get('user'):
            logging.warning("Email NOT set up.")
            return

        msg = MIMEText(body)
        msg['Subject'] = subject
        msg['From'] = self.email_config['user']
        msg['To'] = self.email_config['receiver']

        try:
            with smtplib.SMTP_SSL("smtp.gmail.com", 465) as server:
                server.login(self.email_config['user'], self.email_config['password'])
                server.send_message(msg)
        except Exception as e:
            logging.error(f"Email failed: {e}")
