#!/usr/bin/env python3

import subprocess
from shutil import which
import logging
import logging.handlers


def send_to_matrix(message: str) -> None:
    if which("sendxmpppy") is None:
        logging.warning("Could not send error via xmpp.")
        return
    subprocess.call(["sendxmpppy", message], stdout=subprocess.DEVNULL)


class LogSenderHandler(logging.Handler):
    def __init__(self):
        logging.Handler.__init__(self)
        self.is_logging = False

    def emit(self, record):
        msg = f"[Apps tools error] {record.msg}"
        send_to_matrix(msg)

    @classmethod
    def add(cls, level=logging.ERROR):
        if not logging.getLogger().handlers:
            logging.basicConfig()

        # create handler
        handler = cls()
        handler.setLevel(level)
        # add the handler
        logging.getLogger().handlers.append(handler)


def enable():
    """Enables the LogSenderHandler"""
    LogSenderHandler.add(logging.ERROR)