Changeset 39

Show
Ignore:
Timestamp:
02/25/02 22:52:36 (7 years ago)
Author:
sholloway
Message:

*** empty log message ***

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/RBFoundation/RBFoundation/XMLObjectify.py

    r38 r39  
    7474        return ''.join(self._toXML(strSplit, nsOuter)) 
    7575 
    76     def _toXML(self, strSplit='', nsOuter=''): 
     76    def _toXML(self, strSplit='', nsOuter='', bHeaderOnly=0): 
    7777        result = ['<%s ' % self.__node__] 
    7878        if nsOuter != self.__namespace__: 
    7979            result[-1] += 'xmlns=%s ' % quoteattr(self.__namespace__) 
    8080        result[-1] += ' '.join(['%s=%s' % (x[0], quoteattr(str(x[1]))) for x in self._attributes.iteritems()]) 
    81         if self._elements: 
     81        if bHeaderOnly:  
     82            result[-1] += '>' 
     83        elif self._elements: 
    8284            result[-1] += '>' 
    8385            for tupleNSNode, each in self._elements: 
     
    8789                    result.append(strSplit.join(each._toXML(strSplit, self.__namespace__))) 
    8890            result.append('</%s>' % self.__node__) 
    89         else: result[-1] += '/>' 
     91        else:  
     92            result[-1] += '/>' 
    9093        return result 
    9194     
  • trunk/RBJabber/RBJabber/Client.py

    r30 r39  
    66import weakref 
    77from Foundation import XMLObjectify, SubjectObserver 
     8import iqQuery 
    89 
    910#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    7172    stream = None 
    7273    ClientMonitors = None 
     74    SupportedNS = None 
    7375 
    7476    def __init__(self, *args, **kw): 
     
    7779         
    7880        self.ClientMonitors = [] 
     81        self.SupportedNS = [] 
    7982        self.__NextID = 0 
    8083 
     
    8285        self.__NextID += 1 
    8386        return str(self.__NextID) 
     87 
     88    def Authenticate(self, username, password, resource, callback=None): 
     89        strXML = '<username>%s</username><password>%s</password><resource>%s</resource>' % (username, password, resource) 
     90        self.CurrentUsername = username 
     91        self.CurrentResource = resource 
     92        self.CurrentJID = '%s@%s/%s' % (username, self.ServerJID, resource) 
     93        if callback: 
     94            query = iqQuery.iqQuery(self, callback) 
     95        else: query = iqQuery.iqQueryBase(self) 
     96        query.SendQuery("jabber:iq:auth", '', 'set', strXML) 
     97        return query 
     98 
     99    def Register(self, username, password, callback=None): 
     100        strXML = '<username>%s</username><password>%s</password>' % (username, password) 
     101        if callback: 
     102            query = iqQuery.iqQuery(self, callback) 
     103        else: query = iqQuery.iqQueryBase(self) 
     104        query.SendQuery("jabber:iq:register", '', 'set', strXML) 
     105        return query 
     106 
     107    def QueryRoster(self, callback): 
     108        if callback: 
     109            query = iqQuery.iqQuery(self, callback) 
     110        else: query = iqQuery.iqQueryBase(self) 
     111        query.SendQuery("jabber:iq:roster")  
     112        return query 
     113 
     114    def BrowseJID(self, toJID, callback): 
     115        if callback: 
     116            query = iqQuery.iqQuery(self, callback) 
     117        else: query = iqQuery.iqQueryBase(self) 
     118        query.SendQuery("jabber:iq:browse", toJID)  
     119        return query 
    84120 
    85121#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  • trunk/RBJabber/RBJabber/JabberConnection.py

    r27 r39  
    4040 
    4141    def __init__(self, JabberServerURL, port=5222): 
     42        self._SetDebug(None, None) 
     43 
    4244        # Base code 
    4345        XMLBuilderMixin.__init__(self) 
     
    7779        self._parser = None 
    7880 
     81    def _SetDebug(self, fileread, filewrite): 
     82        self._fileread = fileread 
     83        self._filewrite = filewrite 
     84 
    7985    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    8086    #~ Private Methods  
     
    8894    def _ProcessRead(self): 
    8995        data = self._socket.recv(8192) 
     96        if __debug__ and self._fileread: print >> self._fileread, data 
    9097        self._parser.Parse(data) 
    9198          
     
    93100    def _ProcessWrite(self): 
    94101        nSent = self._socket.send(self._sendData) 
     102        if __debug__ and self._filewrite: print >> self._filewrite, self._sendData[:nSent] 
    95103        self._sendData = self._sendData[nSent:] 
    96104 
  • trunk/RBJabber/RBJabber/Test.py

    r32 r39  
    66from iqTimeResponse import iqTimeResponse 
    77from iqVersionResponse import iqVersionResponse 
     8from iqBrowseResponse import iqBrowseResponse 
    89from pprint import pprint 
     10import sys 
    911 
    1012#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    4244    print  
    4345    print "Roster Received!" 
    44     for each in roster.query[0].item
     46    for each in getattr(roster.query[0], 'item', [])
    4547        print each._toPrettyXML() 
    4648    print 
     
    4951    print  
    5052    print "Version Received!" 
     53    print value._toPrettyXML() 
     54    print 
     55 
     56def _printIt(subject, name, value): 
     57    print  
     58    print "PRINT IT!!!" 
    5159    print value._toPrettyXML() 
    5260    print 
     
    6169        dictLogin.setdefault('resource', resource) 
    6270        jc = Client(dictLogin['server']) 
     71        jc._SetDebug(sys.stdout, sys.stdout) 
     72        process = SmartSelect() 
     73        process.append(jc) 
    6374        del dictLogin['server'] 
    6475 
    65         strXML = ''.join([('<%s>%s</%s>' % (s[0], s[1], s[0])) for s in dictLogin.iteritems()]) 
    66         iqQuery(jc, _printAuth).SendQuery("jabber:iq:auth", jc.ServerJID, 'set', strXML
     76        dictLogin['callback'] = _printAuth 
     77        apply(jc.Authenticate, tuple(), dictLogin
    6778         
    6879        obs = SubjectObserver.AssociativeObserver() 
     
    7485        pm = PresenceMap(jc) 
    7586 
    76         process = SmartSelect() 
    77         process.append(jc) 
    7887        for x in xrange(2): process(1) 
    7988        jc.SendXML('''<presence type='available' />''') 
    8089        for x in xrange(2): process(1) 
    8190 
    82         iqQuery(jc, _printRoster).SendQuery("jabber:iq:roster") 
     91        jc.QueryRoster(_printRoster) 
     92        jc.BrowseJID('www.runeblade.com', None) 
     93        #iqQuery(jc, _printRoster).SendQuery("jabber:iq:roster") 
    8394        #iqQuery(jc, _printVersion).SendQuery("jabber:iq:version", 'shane.holloway@www.runeblade.com/Laptop') 
    8495        #iqQuery(jc, _printVersion).SendQuery("jabber:iq:version", 'shane.holloway@myjabber.net') 
    8596        iqTimeResponse(jc) 
    8697        iqVersionResponse(jc, 'RuneBlade Foundation Jabber', '0.01') 
     98        iqBrowseResponse(jc) 
    8799        while 1: process(1) 
    88100    except KeyboardInterrupt: 
  • trunk/RBJabber/RBJabber/iqQuery.py

    r32 r39  
    2424            if bMatch: bMatch = (not self.jidQuery or getattr(iq, 'from_', '') == self.jidQuery) 
    2525            # and the query result namespace is the same 
    26             if bMatch: bMatch = [q for q in iq._elements if q[0][0] == self.nsQuery] and 1 or 0 
     26            # if bMatch: bMatch = [q for q in iq._elements if q[0][0] == self.nsQuery] and 1 or 0 
    2727            # then we have a match 
    2828            return bMatch and 1 or 0 
  • trunk/RBJabber/RBJabber/iqResponse.py

    r32 r39  
    4040        # Lets observer the jabber stream 
    4141        self.JC().stream.AddObserver('iq', self) 
     42        self.JC().SupportedNS.append(nsQuery) 
    4243        # Setup our match attributes 
    4344        self.nsQuery = nsQuery 
  • trunk/RBJabber/RBJabber/iqTimeResponse.py

    r32 r39  
    2626        del iq.from_ 
    2727        iq.type = 'result' 
    28         iq._client.SendXML(iq._toPrettyXML()) 
     28        self.JC().SendXML(iq._toPrettyXML()) 
    2929 
  • trunk/RBJabber/RBJabber/iqVersionResponse.py

    r32 r39  
    3232        del iq.from_ 
    3333        iq.type = 'result' 
    34         iq._client.SendXML(iq._toPrettyXML()) 
     34        self.JC().SendXML(iq._toPrettyXML()) 
  • trunk/RBSkinning/RBSkinning/xmlPython/evaluate.py

    r9 r39  
    1212    default_settings = SkinObject.default_settings.copy() 
    1313    default_settings['phase'] = 'initialize' 
     14    default_settings['contextvar'] = '' 
    1415     
    1516    def SkinInitialize(self): 
     
    2425        code = ''.join(self.Content()) or self.settings['code'] 
    2526        self.object = eval(code, {'self':self}, {}) 
     27        if self.settings['contextvar']: 
     28            setattr(self.context, self.settings['contextvar'], self.object) 
    2629 
  • trunk/RBSkinning/RBSkinning/xmlPython/script.py

    r9 r39  
    1414    default_settings['args'] = '(self,)' 
    1515    default_settings['kw'] = '{}' 
     16    default_settings['contextvar'] = '' 
    1617     
    1718    def SkinInitialize(self): 
     
    2930        kw = eval(self.settings['kw'], {'self':self}, {}) 
    3031        self.object = apply(call, args, kw) 
     32        if self.settings['contextvar']: 
     33            setattr(self.context, self.settings['contextvar'], self.object) 
    3134