|
4 | 4 | import subprocess |
5 | 5 | import os |
6 | 6 |
|
7 | | -import sleekxmpp |
| 7 | +import slixmpp |
8 | 8 |
|
9 | 9 |
|
10 | | -class Responder(sleekxmpp.ClientXMPP): |
| 10 | +class Responder(slixmpp.ClientXMPP): |
11 | 11 | def __init__(self, jid, password, room, room_password, nick): |
12 | | - sleekxmpp.ClientXMPP.__init__(self, jid, password) |
| 12 | + slixmpp.ClientXMPP.__init__(self, jid, password) |
13 | 13 | self.room = room |
14 | 14 | self.room_password = room_password |
15 | 15 | self.nick = nick |
16 | 16 | self.finished = False |
| 17 | + self.register_plugin('xep_0045') # MUC plugin |
17 | 18 | self.add_event_handler("session_start", self.start) |
18 | 19 | self.add_event_handler("muc::" + room + "::got_online", self.muc_got_online) |
19 | 20 | self.add_event_handler("muc::" + room + "::got_offline", self.muc_got_offline) |
20 | 21 |
|
21 | 22 | self.tests = {} |
22 | 23 | self.tests["online_received"] = ["libcommuni: Received available presence from 'client'", False] |
23 | | - self.tests["offline_received"] = ["libcommuni: Received unavailable presence frin 'client'", False] |
| 24 | + self.tests["offline_received"] = ["libcommuni: Received unavailable presence from 'client'", False] |
24 | 25 |
|
25 | | - def muc_got_online(self, presence): |
26 | | - if presence['muc']['nick'] == "client": |
| 26 | + async def muc_got_online(self, presence): |
| 27 | + # In slixmpp, nick is in presence['from'].resource, not presence['muc']['nick'] |
| 28 | + print(f"DEBUG: Responder muc_got_online called, from={presence['from']}, resource={presence['from'].resource if presence['from'] else 'None'}") |
| 29 | + if presence['from'] and presence['from'].resource == "client": |
27 | 30 | self.tests["online_received"][1] = True |
28 | 31 |
|
29 | | - def muc_got_offline(self, presence): |
30 | | - if presence['muc']['nick'] == "client": |
| 32 | + async def muc_got_offline(self, presence): |
| 33 | + # In slixmpp, nick is in presence['from'].resource, not presence['muc']['nick'] |
| 34 | + print(f"DEBUG: Responder muc_got_offline called, from={presence['from']}, resource={presence['from'].resource if presence['from'] else 'None'}") |
| 35 | + if presence['from'] and presence['from'].resource == "client": |
31 | 36 | self.tests["offline_received"][1] = True |
32 | 37 | self.finished = True |
33 | 38 |
|
34 | | - def start(self, event): |
35 | | - self.plugin['xep_0045'].joinMUC(self.room, self.nick, password=self.room_password, wait=True) |
| 39 | + async def start(self, event): |
| 40 | + self.plugin['xep_0045'].join_muc(self.room, self.nick, password=self.room_password) |
36 | 41 |
|
37 | | -class Client(sleekxmpp.ClientXMPP): |
| 42 | +class Client(slixmpp.ClientXMPP): |
38 | 43 | def __init__(self, jid, password, room, nick): |
39 | | - sleekxmpp.ClientXMPP.__init__(self, jid, password) |
| 44 | + slixmpp.ClientXMPP.__init__(self, jid, password) |
40 | 45 | self.room = room |
41 | 46 | self.nick = nick |
| 47 | + self.register_plugin('xep_0045') # MUC plugin |
42 | 48 | self.add_event_handler("session_start", self.start) |
43 | 49 | self.add_event_handler("muc::" + room + "::got_online", self.muc_got_online) |
44 | 50 | self.finished = False |
45 | 51 |
|
46 | 52 | self.tests = {} |
47 | 53 | self.tests["online_received"] = ["libcommuni: Received available presence from 'responder'", False] |
48 | 54 |
|
49 | | - def muc_got_online(self, presence): |
50 | | - if presence['muc']['nick'] == "responder": |
| 55 | + async def muc_got_online(self, presence): |
| 56 | + # In slixmpp, nick is in presence['from'].resource, not presence['muc']['nick'] |
| 57 | + print(f"DEBUG: Client muc_got_online called, from={presence['from']}, resource={presence['from'].resource if presence['from'] else 'None'}") |
| 58 | + if presence['from'] and presence['from'].resource == "responder": |
51 | 59 | self.tests["online_received"][1] = True |
52 | | - self.plugin['xep_0045'].leaveMUC(self.room, self.nick) |
| 60 | + self.plugin['xep_0045'].leave_muc(self.room, self.nick) |
53 | 61 |
|
54 | | - def start(self, event): |
55 | | - self.getRoster() |
56 | | - self.sendPresence() |
57 | | - self.plugin['xep_0045'].joinMUC(self.room, self.nick, wait=True) |
| 62 | + async def start(self, event): |
| 63 | + self.get_roster() |
| 64 | + self.send_presence() |
| 65 | + self.plugin['xep_0045'].join_muc(self.room, self.nick) |
0 commit comments