aggiunto supporto per stanze multiple - da testare

This commit is contained in:
Simone 2024-03-23 17:43:20 +01:00
parent eaab218e31
commit 00085ee753

View file

@ -19,10 +19,10 @@ from slixmpp import ClientXMPP
class XMPPBot(ClientXMPP): class XMPPBot(ClientXMPP):
# Costruttore della classe # Costruttore della classe
def __init__(self, jid, password, room, nick): def __init__(self, jid, password, rooms, nick):
# Inizializzazione del client XMPP con le credenziali e informazioni di stanza # Inizializzazione del client XMPP con le credenziali e informazioni di stanza
ClientXMPP.__init__(self, jid, password) ClientXMPP.__init__(self, jid, password)
self.room = room self.rooms = rooms
self.nick = nick self.nick = nick
# Configurazione degli event handlers per gestire l'inizio della sessione e i messaggi della chat # Configurazione degli event handlers per gestire l'inizio della sessione e i messaggi della chat
@ -35,7 +35,10 @@ class XMPPBot(ClientXMPP):
self.send_presence() self.send_presence()
await self.get_roster() await self.get_roster()
# Il bot si unisce alla stanza della chat usando il plugin 'xep_0045' # Il bot si unisce alla stanza della chat usando il plugin 'xep_0045'
self.plugin['xep_0045'].join_muc(self.room, self.nick) #self.plugin['xep_0045'].join_muc(self.room, self.nick)
for room in self.rooms:
await self.plugin['xep_0045'].join_muc(room, self.nick)
# Metodo asincrono per la gestione dei messaggi ricevuti nella chat di gruppo # Metodo asincrono per la gestione dei messaggi ricevuti nella chat di gruppo
async def muc_message(self, msg): async def muc_message(self, msg):
@ -77,7 +80,7 @@ if __name__ == '__main__':
# Impostazione delle credenziali e informazioni del bot # Impostazione delle credenziali e informazioni del bot
jid = "jidbot" jid = "jidbot"
password = "password" password = "password"
room = "nome@muc" rooms = ["nome@muc1", "nome@muc2"]
nick = "nickbot" nick = "nickbot"
# Creazione dell'istanza del bot e registrazione dei plugin necessari # Creazione dell'istanza del bot e registrazione dei plugin necessari