def __handlePresence(self, jid, resource): jid = ContactJID(jid) dbID = jid.getDatabaseID() if not dbID: return else: user = self.usersStorage.getUser(dbID, PROTO_TYPE.XMPP) if resource.presence == PRESENCE.UNAVAILABLE: if user and not user.isCurrentPlayer(): user.update(jid=jid, resource=None, clanInfo=resource.getClanInfo()) g_logOutput.debug(_LOG.RESOURCE, 'Resource is removed', user.getName(), jid.getResource(), resource) elif resource.presence != PRESENCE.UNKNOWN: if not user: user = entities.XMPPUserEntity(dbID) self.usersStorage.setUser(user) if user.isCurrentPlayer(): self.playerCtx.setBanInfo(resource.getBanInfo()) else: user.update(jid=jid, resource=resource, clanInfo=resource.getClanInfo()) g_logOutput.debug(_LOG.RESOURCE, 'Resource is set', user.getName(), jid.getResource(), resource) if user: g_messengerEvents.users.onUserStatusUpdated(user) return
def getFullJID(self, databaseID=None): if databaseID is None: databaseID = getPlayerDatabaseID() assert databaseID, "Player's databaseID can not be empty" jid = ContactJID() jid.setNode(databaseID) jid.setDomain(self.domain) jid.setResource(self.resource) return jid
def parseTag(self, pyGlooxTag): jid = pyGlooxTag.findAttribute('jid') if jid: jid = ContactJID(jid) else: jid = None info = self._getChildData(pyGlooxTag, 0, WgSharedExtension.getDefaultData()) return (jid, info)
def getFullJID(self, databaseID=None): if databaseID is None: databaseID = getPlayerDatabaseID() if not databaseID: raise SoftException("Player's databaseID can not be empty") jid = ContactJID() jid.setNode(databaseID) jid.setDomain(self.domain) jid.setResource(self.resource) return jid
def set(self, pyGlooxTag): for xPath, clazz in self._handlers.iteritems(): result = pyGlooxTag.filterXPath(xPath) if not result: continue jid = result[0].findAttribute('jid') if jid: return clazz(ContactJID(jid)).set(pyGlooxTag) return self._result
def getFullJID(self, databaseID = None): if databaseID is None: databaseID = getPlayerDatabaseID() raise databaseID or AssertionError("Player's databaseID can not be empty") jid = ContactJID() jid.setNode(databaseID) jid.setDomain(self.domain) jid.setResource(self.resource) return jid
def __handlePresence(self, jid, resource): jid = ContactJID(jid) dbID = jid.getDatabaseID() if not dbID: return user = self.usersStorage.getUser(dbID, PROTO_TYPE.XMPP) if resource.presence == PRESENCE.UNAVAILABLE: if user and not user.isCurrentPlayer(): user.update(jid=jid, resource=None, clanInfo=resource.getClanInfo()) g_logOutput.debug(_LOG.RESOURCE, 'Resource is removed', user.getName(), jid.getResource(), resource) elif resource.presence != PRESENCE.UNKNOWN: if not user: user = entities.XMPPUserEntity(dbID) self.usersStorage.setUser(user) if user.isCurrentPlayer(): self.playerCtx.setBanInfo(resource.getBanInfo()) else: user.update(jid=jid, resource=resource, clanInfo=resource.getClanInfo()) g_logOutput.debug(_LOG.RESOURCE, 'Resource is set', user.getName(), jid.getResource(), resource) if user: g_messengerEvents.users.onUserStatusUpdated(user)