Bonjour,
Je suis entrain de bricoler/étudier un petit système d'alerte pour effectuer un exercice dans une école primaire. L'objectif est de pouvoir lancer et recevoir une alerte dans les classes depuis un le tableau numérique interactif.
J'ai retenu la solution suivante :
- un serveur xmpp (alpine-linux, prosody + broacast_mod)
- un script python pour "écouter"
- un script python pour "alerter"
Je dois vous avouer que c'est mes premiers pas et que ce que j'ai fait est plutôt un assemblage d'exemples trouvés sur le web. J'ai malgré tout réussi à obtenir un résultat fonctionnel quand j'exécute depuis idle ou pycharm-edu. Par contre, dès que j'essaie de lancer le script depuis un raccourci sur le bureau windows, il démarre et la console reste ouverte mais winsound ne joue plus mon fichier wav et le popup d'alerte ne surgit plus.
J'ai fouillé un peu sur les forums mais j'avoue que mes connaissances sont trop faibles pour savoir dans quelle direction réellement chercher. Si quelqu'un pouvait m'aider ou m'orienter ça serait gentil ?
Merci d'avance pour vos conseils.
Cordialement,
Pascal C.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 import ctypes import winsound import logging from pymsgbox import * from sleekxmpp import ClientXMPP from sleekxmpp.exceptions import IqError, IqTimeout class ListenBot(ClientXMPP): def __init__(self, jid, password): ClientXMPP.__init__(self, jid, password) self.add_event_handler("session_start", self.session_start) self.add_event_handler("message", self.message) def session_start(self, event): self.send_presence() self.get_roster() def message(self, msg): if msg['type'] in ('chat', 'normal'): winsound.PlaySound('sonAlarme.wav', winsound.SND_ASYNC) alert(text='Attention, \n Quelqu\'un vient de déclencher une alerte depuis son poste de Travail',title='Alerte') if __name__ == '__main__': logging.basicConfig(level=logging.DEBUG, format='%(levelname)-8s %(message)s') xmpp = ListenBot('classe0@servecole.local', '123456') xmpp.connect() xmpp.process(block=True)
Partager