예제 #1
0
 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
예제 #2
0
 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
예제 #3
0
 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)
예제 #4
0
 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
예제 #6
0
 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
예제 #7
0
파일: __init__.py 프로젝트: kblw/wot_client
 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)