def status(self, client, appName, channelName): from log.logger import Log from commons.session import Session master = False if self.chanExists(channelName=channelName, appName=appName): channel = self.Channel(channelName, appName) if channel and client.unique_key in channel.masters(): master = True key = client.unique_key name = client.getName() to_send = {"name": name, "key": key, "status": 'offline'} if master == False: masters = channel.masters() for master in masters: m = Session().get(master) if m is not None: Log().add("[+] Client (room.py) : envoie du status de " + name + " vers l'utilisateur : " + m.getName()) json = Protocol.forgeJSON('status', simplejson.JSONEncoder().encode(to_send), {'channel': channel.name}) m.addResponse(json) else: users = channel.users() for user in users: u = Session().get(user) if u is not None: Log().add("[+] Client (room.py) : envoie du status master vers l'utilisateur : " + u.getName()) json = Protocol.forgeJSON('status', simplejson.JSONEncoder().encode(to_send), {'channel': channel.name}) u.addResponse(json)
def __sendMessage(self, channelName, appName, sender, to, message): """Fromate le json, et envoie le message a l'utilisateur""" from commons.session import Session sender = Session().get(sender) receiver = Session().get(to) json = Protocol.forgeJSON('message', '["' + sender.getName() + '", "' + message + '"]', {'channel': channelName, 'app': appName}) if receiver is not None: receiver.addResponse(json)
def forward(self, channelName, appName, commande, uid, app): """Return : Envoie une commande a tous les utilisateurs d'une application -> bool """ from commons.session import Session from log.logger import Log if self.chanExists(channelName=channelName, appName=appName): channel = self.Channel(channelName=channelName, appName=appName) if uid in channel.masters(): users = channel.users() master = Session().get(uid) json = Protocol.forgeJSON('forward', '["' + master.getName() + '", "' + commande + '"]', {'channel': channelName, 'app': appName}) if self.filter.RunIn(json) == True: channel.history.add(uid, json) for u in users: user = Session().get(u) if user is not None: user.addResponse(json) if len(users) > 0: return True return False