1 from twisted.internet.protocol import Factory
2 from twisted.internet import reactor
3 from twisted.protocols import basic
5 from xcaplib.green import XCAPClient
7 from eventlet.twistedutil import deferToGreenThread
8 from eventlet.twistedutil import join_reactor
10 class LineOnlyReceiver(basic.LineOnlyReceiver):
12 def lineReceived(self, line):
13 print('received: %r' % line)
16 app, context, node = (line + ' ').split(' ', 3)
17 context = {'u' : 'users', 'g': 'global'}.get(context, context)
18 d = deferToGreenThread(client._get, app, node, globaltree=context=='global')
20 self.transport.write(str(result))
22 self.transport.write(error.getTraceback())
23 d.addCallback(callback)
26 class MyFactory(Factory):
27 protocol = LineOnlyReceiver
29 client = XCAPClient('https://xcap.sipthor.net/xcap-root', 'alice@example.com', '123')
30 reactor.listenTCP(8007, MyFactory())