def main(self): while 1: if self.dataReady("control"): mes = self.recv("control") if isinstance(mes, shutdownMicroprocess) or isinstance(mes, producerFinished): self.send(producerFinished(), "signal") break if self.dataReady("inbox"): r = self.recv('inbox') if r.registered: print "'%s' is already a registered username." % self.username elif self.registration_id == r.stanza_id: print "'%s' is now a registered user."\ "Please restart the client without the register flag." % self.username else: if 'username' in r.infos and 'password' in r.infos: self.registration_id = generate_unique() r = Registration(type=u'set', stanza_id=self.registration_id) r.infos[u'username'] = self.username r.infos[u'password'] = self.password self.send(r, 'outbox') if self.dataReady("error"): r = self.recv('error') print r.error if not self.anyReady(): self.pause() yield 1
def main(self): while 1: if self.dataReady("control"): mes = self.recv("control") if isinstance(mes, shutdownMicroprocess) or isinstance(mes, producerFinished): self.send(producerFinished(), "signal") break if self.dataReady("forward"): m = self.recv("forward") self.send(Registration.to_element(m), "outbox") if self.dataReady("inbox"): handled = False a = self.recv("inbox") e = a.xml_parent self.send(('INCOMING', e), "log") msg_type = e.get_attribute_value(u'type') or u'get' key = 'xmpp.%s' % unicode(msg_type) if key in self.outboxes: self.send(Registration.from_element(e), key) handled = True if not handled: self.send(e, "unknown") if not self.anyReady(): self.pause() yield 1
def main(self): while 1: while self.dataReady("control"): mes = self.recv("control") if isinstance(mes, shutdownMicroprocess) or isinstance(mes, producerFinished): self.send(producerFinished(), "signal") break while self.dataReady("inbox"): r = self.recv('inbox') if r.registered: print "'%s' is already a registered username." % self.username elif self.registration_id == r.stanza_id: print "'%s' is now a registered user."\ "Please restart the client without the register flag." % self.username else: if 'username' in r.infos and 'password' in r.infos: self.registration_id = generate_unique() r = Registration(type=u'set', stanza_id=self.registration_id) r.infos[u'username'] = self.username r.infos[u'password'] = self.password self.send(r, 'outbox') while self.dataReady("error"): r = self.recv('error') print r.error if not self.anyReady(): self.pause() yield 1
def main(self): yield self.initComponents() while 1: if self.dataReady("control"): mes = self.recv("control") if isinstance(mes, shutdownMicroprocess) or isinstance(mes, producerFinished): self.send(producerFinished(), "signal") break if self.dataReady("_response"): self.recv("_response") if self.dataReady("inbox"): r = self.recv('inbox') if r.registered: self.send("'%s' is already a registered username." % r.infos[u'username'], 'log') c = Client.Sessions[r.infos[u'username']] c.shutdown() del Client.Sessions[r.infos[u'username']] elif self.registration_id == r.stanza_id: c = Client.Sessions[r.infos[u'username']] c.shutdown() del Client.Sessions[r.infos[u'username']] if '.microblogging' not in r.infos[u'username']: body = self.profile.xml() params = {'url': 'http://localhost:8080/profile/', 'method': 'POST', 'postbody': body, 'extraheaders': {'content-type': 'application/xml', 'slug': self.profile.username, 'content-length': len(body)}} self.send(params, '_request') else: if 'username' in r.infos and 'password' in r.infos: self.registration_id = generate_unique() r = Registration(type=u'set', stanza_id=self.registration_id) r.infos[u'username'] = self.username r.infos[u'password'] = self.password self.send(r, 'outbox') if self.dataReady("error"): r = self.recv('error') if r.error.code == '409': self.send("'%s' is already a registered username." % r.infos[u'username'], 'log') c = Client.Sessions[r.infos[u'username']] c.shutdown() del Client.Sessions[r.infos[u'username']] self.send(r.error, 'log') if not self.anyReady(): self.pause() yield 1
def main(self): yield self.setup() while 1: while self.dataReady("control"): mes = self.recv("control") if isinstance(mes, str): if mes.strip() == 'quit': self.shutdown() elif isinstance(mes, shutdownMicroprocess) or isinstance(mes, producerFinished): self.send(mes, "signal") break while self.dataReady("inbox"): msg = self.recv('inbox') if msg == "quit": self.send(shutdownMicroprocess(), "signal") yield 1 break while self.dataReady("streamfeat"): feat = self.recv('streamfeat') if feat.register and self.register: self.send(Registration(), 'doregistration') elif self.register and not feat.register: print "The server does not support in-band registration. Closing connection." self.abort() else: self.send(feat, 'doauth') while self.dataReady("jid"): self.jid = self.recv('jid') if not self.anyReady(): self.pause() yield 1 yield 1 self.stop() print "You can hit Ctrl-C to shutdown all processes now."