Changeset 39
- Timestamp:
- 02/25/02 22:52:36 (7 years ago)
- Files:
-
- trunk/RBFoundation/RBFoundation/XMLObjectify.py (modified) (2 diffs)
- trunk/RBJabber/RBJabber/Client.py (modified) (4 diffs)
- trunk/RBJabber/RBJabber/JabberConnection.py (modified) (4 diffs)
- trunk/RBJabber/RBJabber/Test.py (modified) (5 diffs)
- trunk/RBJabber/RBJabber/iqBrowseResponse.py (added)
- trunk/RBJabber/RBJabber/iqQuery.py (modified) (1 diff)
- trunk/RBJabber/RBJabber/iqResponse.py (modified) (1 diff)
- trunk/RBJabber/RBJabber/iqTimeResponse.py (modified) (1 diff)
- trunk/RBJabber/RBJabber/iqVersionResponse.py (modified) (1 diff)
- trunk/RBSkinning/RBSkinning/xmlPython/evaluate.py (modified) (2 diffs)
- trunk/RBSkinning/RBSkinning/xmlPython/script.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/RBFoundation/RBFoundation/XMLObjectify.py
r38 r39 74 74 return ''.join(self._toXML(strSplit, nsOuter)) 75 75 76 def _toXML(self, strSplit='', nsOuter='' ):76 def _toXML(self, strSplit='', nsOuter='', bHeaderOnly=0): 77 77 result = ['<%s ' % self.__node__] 78 78 if nsOuter != self.__namespace__: 79 79 result[-1] += 'xmlns=%s ' % quoteattr(self.__namespace__) 80 80 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: 82 84 result[-1] += '>' 83 85 for tupleNSNode, each in self._elements: … … 87 89 result.append(strSplit.join(each._toXML(strSplit, self.__namespace__))) 88 90 result.append('</%s>' % self.__node__) 89 else: result[-1] += '/>' 91 else: 92 result[-1] += '/>' 90 93 return result 91 94 trunk/RBJabber/RBJabber/Client.py
r30 r39 6 6 import weakref 7 7 from Foundation import XMLObjectify, SubjectObserver 8 import iqQuery 8 9 9 10 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 71 72 stream = None 72 73 ClientMonitors = None 74 SupportedNS = None 73 75 74 76 def __init__(self, *args, **kw): … … 77 79 78 80 self.ClientMonitors = [] 81 self.SupportedNS = [] 79 82 self.__NextID = 0 80 83 … … 82 85 self.__NextID += 1 83 86 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 84 120 85 121 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ trunk/RBJabber/RBJabber/JabberConnection.py
r27 r39 40 40 41 41 def __init__(self, JabberServerURL, port=5222): 42 self._SetDebug(None, None) 43 42 44 # Base code 43 45 XMLBuilderMixin.__init__(self) … … 77 79 self._parser = None 78 80 81 def _SetDebug(self, fileread, filewrite): 82 self._fileread = fileread 83 self._filewrite = filewrite 84 79 85 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 86 #~ Private Methods … … 88 94 def _ProcessRead(self): 89 95 data = self._socket.recv(8192) 96 if __debug__ and self._fileread: print >> self._fileread, data 90 97 self._parser.Parse(data) 91 98 … … 93 100 def _ProcessWrite(self): 94 101 nSent = self._socket.send(self._sendData) 102 if __debug__ and self._filewrite: print >> self._filewrite, self._sendData[:nSent] 95 103 self._sendData = self._sendData[nSent:] 96 104 trunk/RBJabber/RBJabber/Test.py
r32 r39 6 6 from iqTimeResponse import iqTimeResponse 7 7 from iqVersionResponse import iqVersionResponse 8 from iqBrowseResponse import iqBrowseResponse 8 9 from pprint import pprint 10 import sys 9 11 10 12 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 42 44 print 43 45 print "Roster Received!" 44 for each in roster.query[0].item:46 for each in getattr(roster.query[0], 'item', []): 45 47 print each._toPrettyXML() 46 48 print … … 49 51 print 50 52 print "Version Received!" 53 print value._toPrettyXML() 54 print 55 56 def _printIt(subject, name, value): 57 print 58 print "PRINT IT!!!" 51 59 print value._toPrettyXML() 52 60 print … … 61 69 dictLogin.setdefault('resource', resource) 62 70 jc = Client(dictLogin['server']) 71 jc._SetDebug(sys.stdout, sys.stdout) 72 process = SmartSelect() 73 process.append(jc) 63 74 del dictLogin['server'] 64 75 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) 67 78 68 79 obs = SubjectObserver.AssociativeObserver() … … 74 85 pm = PresenceMap(jc) 75 86 76 process = SmartSelect()77 process.append(jc)78 87 for x in xrange(2): process(1) 79 88 jc.SendXML('''<presence type='available' />''') 80 89 for x in xrange(2): process(1) 81 90 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") 83 94 #iqQuery(jc, _printVersion).SendQuery("jabber:iq:version", 'shane.holloway@www.runeblade.com/Laptop') 84 95 #iqQuery(jc, _printVersion).SendQuery("jabber:iq:version", 'shane.holloway@myjabber.net') 85 96 iqTimeResponse(jc) 86 97 iqVersionResponse(jc, 'RuneBlade Foundation Jabber', '0.01') 98 iqBrowseResponse(jc) 87 99 while 1: process(1) 88 100 except KeyboardInterrupt: trunk/RBJabber/RBJabber/iqQuery.py
r32 r39 24 24 if bMatch: bMatch = (not self.jidQuery or getattr(iq, 'from_', '') == self.jidQuery) 25 25 # 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 026 # if bMatch: bMatch = [q for q in iq._elements if q[0][0] == self.nsQuery] and 1 or 0 27 27 # then we have a match 28 28 return bMatch and 1 or 0 trunk/RBJabber/RBJabber/iqResponse.py
r32 r39 40 40 # Lets observer the jabber stream 41 41 self.JC().stream.AddObserver('iq', self) 42 self.JC().SupportedNS.append(nsQuery) 42 43 # Setup our match attributes 43 44 self.nsQuery = nsQuery trunk/RBJabber/RBJabber/iqTimeResponse.py
r32 r39 26 26 del iq.from_ 27 27 iq.type = 'result' 28 iq._client.SendXML(iq._toPrettyXML())28 self.JC().SendXML(iq._toPrettyXML()) 29 29 trunk/RBJabber/RBJabber/iqVersionResponse.py
r32 r39 32 32 del iq.from_ 33 33 iq.type = 'result' 34 iq._client.SendXML(iq._toPrettyXML())34 self.JC().SendXML(iq._toPrettyXML()) trunk/RBSkinning/RBSkinning/xmlPython/evaluate.py
r9 r39 12 12 default_settings = SkinObject.default_settings.copy() 13 13 default_settings['phase'] = 'initialize' 14 default_settings['contextvar'] = '' 14 15 15 16 def SkinInitialize(self): … … 24 25 code = ''.join(self.Content()) or self.settings['code'] 25 26 self.object = eval(code, {'self':self}, {}) 27 if self.settings['contextvar']: 28 setattr(self.context, self.settings['contextvar'], self.object) 26 29 trunk/RBSkinning/RBSkinning/xmlPython/script.py
r9 r39 14 14 default_settings['args'] = '(self,)' 15 15 default_settings['kw'] = '{}' 16 default_settings['contextvar'] = '' 16 17 17 18 def SkinInitialize(self): … … 29 30 kw = eval(self.settings['kw'], {'self':self}, {}) 30 31 self.object = apply(call, args, kw) 32 if self.settings['contextvar']: 33 setattr(self.context, self.settings['contextvar'], self.object) 31 34
