Changeset 55
- Timestamp:
- 03/09/02 23:33:58 (6 years ago)
- Files:
-
- trunk/RBJabber/RBJabber/Client.py (modified) (1 diff)
- trunk/RBJabber/RBJabber/Test.py (modified) (1 diff)
- trunk/RBJabber/RBJabber/iqAuthQuery.py (modified) (3 diffs)
- trunk/RBJabber/RBJabber/iqBrowseResponse.py (modified) (1 diff)
- trunk/RBJabber/RBJabber/iqQuery.py (modified) (2 diffs)
- trunk/RBJabber/RBJabber/iqRosterQuery.py (modified) (2 diffs)
- trunk/RBPrivate/Prototypes/ChatClient/.cvsignore (modified) (1 diff)
- trunk/RBPrivate/Prototypes/ChatClient/AccountManagerMediator.py (modified) (1 diff)
- trunk/RBPrivate/Prototypes/ChatClient/ClientModel.py (modified) (4 diffs)
- trunk/RBPrivate/Prototypes/ChatClient/MainframeMediator.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/RBJabber/RBJabber/Client.py
r53 r55 91 91 def __init__(self, *args, **kw): 92 92 self.stream = SubjectObserver.BidableCategorySubject() 93 self.information = SubjectObserver.AttributedSubject() 93 94 apply(Base.Client.__init__, (self,) + args, kw) 94 95 trunk/RBJabber/RBJabber/Test.py
r53 r55 39 39 print 40 40 41 def _printAuth(subject, name, value):41 def _printAuth(subject, UpdateDict): 42 42 print 43 43 print "Authenticated" trunk/RBJabber/RBJabber/iqAuthQuery.py
r53 r55 7 7 import sha 8 8 from xml.sax.saxutils import escape, quoteattr 9 from iqQuery import iqQueryBase 9 from iqQuery import iqQueryBase, Subject 10 10 11 11 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 29 29 xmlAuthInfo = '<username>%s</username><digest>%s</digest><resource>%s</resource>' % (username, digest, resource) 30 30 31 self.JC(). CurrentAuthorized = 032 self.JC(). CurrentUsername = username33 self.JC(). CurrentResource = resource34 self.JC(). CurrentJID= '%s@%s/%s' % (username, self.JC().ServerJID, resource)31 self.JC().information.authorized = 0 32 self.JC().information.username = username 33 self.JC().information.resource = resource 34 self.JC().information.jid = '%s@%s/%s' % (username, self.JC().ServerJID, resource) 35 35 36 36 self.idQuery = self.JC()._GetNextID() … … 49 49 iq = UpdateDict['iq'] 50 50 if iq.type == 'result': 51 self.JC(). CurrentAuthorized = 151 self.JC().information.authorized = 1 52 52 self._SetLink(0) 53 53 54 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 55 56 class iqAuthQuerySubject(iqAuthQueryBase, Subject): 57 def __init__(self, *args, **kw): 58 apply(iqAuthQueryBase.__init__, (self, ) + args, kw) 59 Subject.__init__(self) 60 61 def Update(self, subject, UpdateDict): 62 # Notify our callback 63 iqAuthQueryBase.Update(self, subject, UpdateDict) 64 self.UpdateObserversEx(UpdateDict) 65 54 66 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 55 67 trunk/RBJabber/RBJabber/iqBrowseResponse.py
r39 r55 24 24 25 25 strResult = ''.join(iq._toXML(bHeaderOnly=1)) 26 strResult += '''<user xmlns='jabber:iq:browse' jid=%s name=%s >''' % (quoteattr(self.JC(). CurrentJID), quoteattr(self.JC().CurrentUsername))26 strResult += '''<user xmlns='jabber:iq:browse' jid=%s name=%s >''' % (quoteattr(self.JC().information.jid), quoteattr(self.JC().information.username)) 27 27 strResult += ''.join(['<ns>%s</ns>' % escape(ns) for ns in self.JC().SupportedNS]) 28 28 strResult += '''</user></iq>''' trunk/RBJabber/RBJabber/iqQuery.py
r53 r55 4 4 5 5 import weakref 6 from Foundation.SubjectObserver import Subject 6 7 from xml.sax.saxutils import escape, quoteattr 7 8 … … 62 63 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 63 64 65 class iqQuerySubject(iqQueryBase, Subject): 66 def __init__(self, JabberClient): 67 iqQueryBase.__init__(self, JabberClient) 68 Subject.__init__(self) 69 70 def Update(self, subject, UpdateDict): 71 # Notify our callback 72 iqQueryBase.Update(self, subject, UpdateDict) 73 self.UpdateObserversEx(UpdateDict) 74 75 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 64 77 class iqQuery(iqQueryBase): 65 78 def __init__(self, JabberClient, ReplyCallback): trunk/RBJabber/RBJabber/iqRosterQuery.py
r53 r55 5 5 import weakref 6 6 from xml.sax.saxutils import escape, quoteattr 7 from iqQuery import iqQueryBase 7 from iqQuery import iqQueryBase, Subject 8 8 9 9 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 11 11 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 12 12 13 class iqRosterQuery(iqQueryBase ):13 class iqRosterQuery(iqQueryBase, Subject): 14 14 def __init__(self, JabberClient): 15 self.JC = weakref.ref(JabberClient) 15 iqQueryBase.__init__(self, JabberClient) 16 Subject.__init__(self) 16 17 self.JC().stream.AddObserver('iq', self) 17 18 self.JC().SendXML('''<iq type='get'><query xmlns='jabber:iq:roster'/></iq>''') trunk/RBPrivate/Prototypes/ChatClient/.cvsignore
r36 r55 1 *.xml 2 *.jabber 1 3 *.pyc 2 4 *.swp trunk/RBPrivate/Prototypes/ChatClient/AccountManagerMediator.py
r54 r55 49 49 for account in self.dictAccount.itervalues(): 50 50 if int(account['login']): 51 Model.LoginToClient(account[' server'], account['username'], account['password'], account['resource'])51 Model.LoginToClient(account['name'], account['server'], account['username'], account['password'], account['resource']) 52 52 53 53 self.context.frame.Hide() trunk/RBPrivate/Prototypes/ChatClient/ClientModel.py
r54 r55 4 4 5 5 import sys 6 from Foundation.SubjectObserver import CategorySubject 6 7 from Foundation.SmartSelect import SmartSelectDict 7 8 from RuneBladeClient import RuneBladeClient … … 11 12 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 12 13 13 class ClientModel :14 class ClientModel(CategorySubject): 14 15 class _container: pass 15 16 16 17 def __init__(self, node): 18 CategorySubject.__init__(self) 17 19 self.context = node.context 18 20 self.JabberClients = SmartSelectDict() … … 25 27 def ClearClients(self): 26 28 self.JabberClients.clear() 29 self.UpdateObservers(JabberClients=self.JabberClients) 27 30 28 def LoginToClient(self, server, username, password, resource='RuneBlade'):31 def LoginToClient(self, name, server, username, password, resource='RuneBlade'): 29 32 if __debug__: 30 33 fileIn = open('IN %s@%s (%s).jabber' % (username, server, resource), 'w') … … 33 36 else: 34 37 jc = RuneBladeClient(server) 35 self.JabberClients[server, username, resource] = jc 36 jc.Authenticate(username, password, resource) 37 jc.Presence() 38 self.JabberClients[name] = jc 39 self.UpdateObservers(JabberClients=self.JabberClients) 40 jc.Authenticate(username, password, resource, self.OnAuthenticated) 41 42 def OnAuthenticated(self, subject, UpdateDict): 43 iq = UpdateDict['iq'] 44 print 'Authentication:', iq.type 45 iq._client.Presence() trunk/RBPrivate/Prototypes/ChatClient/MainframeMediator.py
r54 r55 20 20 21 21 def OnIdle(self, evt): 22 self.context.Model.Process(0.05) 23 evt.RequestMore(1) 22 self.context.Model.Process(0.1) 24 23 evt.Skip() 25 24
