42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
|
from pydbus import SessionBus
|
|
from gi.repository import GLib
|
|
import sys
|
|
import signal
|
|
|
|
print("🔥 Démarrage du service de notifications", flush=True)
|
|
|
|
class Notifications:
|
|
def Notify(self, app_name, *args):
|
|
print(f"📨 Notification de '{app_name}' reçue", flush=True)
|
|
return 1 # Doit retourner un uint32
|
|
|
|
def GetServerInformation(self):
|
|
return ("TestServer", "", "1.0", "1.2")
|
|
|
|
def GetCapabilities(self):
|
|
return ["body"]
|
|
|
|
try:
|
|
print("🔌 Connexion au bus...", flush=True)
|
|
bus = SessionBus()
|
|
|
|
print("📡 Publication du service...", flush=True)
|
|
bus.publish("org.freedesktop.Notifications", Notifications())
|
|
|
|
print("✅ Service prêt", flush=True)
|
|
|
|
# Timeout de sécurité
|
|
def quit():
|
|
print("⏳ Timeout atteint", flush=True)
|
|
loop.quit()
|
|
|
|
GLib.timeout_add_seconds(30, quit)
|
|
|
|
loop = GLib.MainLoop()
|
|
print("🔄 Démarrage de la boucle principale", flush=True)
|
|
loop.run()
|
|
|
|
except Exception as e:
|
|
print(f"💥 ERREUR: {type(e).__name__}: {str(e)}", flush=True)
|
|
sys.exit(1) |