#!/usr/bin/env python3

import dbus
import dbus.mainloop.glib
from gi.repository import GLib

def new_mail_signal(display_name, new_count, *args):
    # Extraer los valores de las estructuras
    mailbox = display_name[0] if isinstance(display_name, dbus.Struct) else display_name
    count = new_count[0] if isinstance(new_count, dbus.Struct) else new_count

    print(f"Nuevo correo en: {mailbox}. Correos nuevos: {count}")

def main():
    # Configurar el loop de D-Bus
    dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)

    # Conectarse al bus de sesión
    bus = dbus.SessionBus()

    # Suscribirse a la señal de nuevo correo
    bus.add_signal_receiver(
        new_mail_signal,
        dbus_interface="org.gnome.evolution.mail.dbus.Signal",
        signal_name="Newmail",
        path="/org/gnome/evolution/mail/newmail"
    )

    # Ejecutar el loop principal
    loop = GLib.MainLoop()
    loop.run()

if __name__ == "__main__":
    main()

