Mercurial > libervia-pubsub
comparison idavoll/idavoll.py @ 1:4cc41776b7d7
Initial revision
author | Ralph Meijer <ralphm@ik.nu> |
---|---|
date | Wed, 23 Jun 2004 14:31:49 +0000 |
parents | |
children | 688992a789e4 |
comparison
equal
deleted
inserted
replaced
0:1b68bdae21eb | 1:4cc41776b7d7 |
---|---|
1 from twisted.protocols.jabber import component | |
2 from twisted.application import service | |
3 import backend | |
4 import pubsub | |
5 import xmpp_error | |
6 | |
7 import sys | |
8 | |
9 IQ_GET = '/iq[@type="get"]' | |
10 IQ_SET = '/iq[@type="set"]' | |
11 VERSION = IQ_GET + '/query[@xmlns="jabber:iq:version"]' | |
12 | |
13 class IdavollService(component.Service): | |
14 | |
15 def componentConnected(self, xmlstream): | |
16 self.xmlstream = xmlstream | |
17 xmlstream.addObserver(VERSION, self.onVersion, 1) | |
18 xmlstream.addObserver(IQ_GET, self.iqFallback, -1) | |
19 xmlstream.addObserver(IQ_SET, self.iqFallback, -1) | |
20 | |
21 def onVersion(self, iq): | |
22 print "version?" | |
23 iq.swapAttributeValues("to", "from") | |
24 iq["type"] = "result" | |
25 name = iq.addElement("name", None, 'Idavoll') | |
26 version = iq.addElement("version", None, '0.1') | |
27 self.send(iq) | |
28 iq.handled = True | |
29 | |
30 def iqFallback(self, iq): | |
31 if iq.handled == True: | |
32 return | |
33 | |
34 self.send(xmpp_error.error_from_iq(iq, 'feature-not-implemented')) | |
35 | |
36 def makeService(config): | |
37 serviceCollection = service.MultiService() | |
38 | |
39 pss = backend.MemoryBackendService() | |
40 | |
41 # set up Jabber Component | |
42 c = component.buildServiceManager(config["jid"], config["secret"], | |
43 ("tcp:%s:%s" % (config["rhost"], config["rport"]))) | |
44 | |
45 s = component.IService(pss) | |
46 s.jid = config["jid"] | |
47 s.setServiceParent(c) | |
48 | |
49 s = IdavollService() | |
50 s.setServiceParent(c) | |
51 | |
52 c.setServiceParent(serviceCollection) | |
53 | |
54 # other stuff | |
55 | |
56 return c |