Mercurial > libervia-pubsub
view idavoll/tap.py @ 167:ef22e4150caa
Move protocol implementations (pubsub, disco, forms) to and depend on wokkel.
Author: ralphm
Fixes: #4
author | Ralph Meijer <ralphm@ik.nu> |
---|---|
date | Wed, 03 Oct 2007 12:41:43 +0000 |
parents | 1701c0e2c707 |
children | 96afb248df5e |
line wrap: on
line source
# Copyright (c) 2003-2007 Ralph Meijer # See LICENSE for details. from twisted.application import service from twisted.python import usage from twisted.words.protocols.jabber.jid import JID from wokkel.component import Component from wokkel.disco import DiscoHandler from wokkel.generic import FallbackHandler, VersionHandler from wokkel.iwokkel import IPubSubService from idavoll.backend import BackendService __version__ = '0.6.0' class Options(usage.Options): optParameters = [ ('jid', None, 'pubsub'), ('secret', None, 'secret'), ('rhost', None, '127.0.0.1'), ('rport', None, '5347'), ('backend', None, 'memory'), ('dbuser', None, ''), ('dbname', None, 'pubsub'), ('dbpass', None, ''), ] optFlags = [ ('verbose', 'v', 'Show traffic'), ('hide-nodes', None, 'Hide all nodes for disco') ] def postOptions(self): if self['backend'] not in ['pgsql', 'memory']: raise usage.UsageError, "Unknown backend!" def makeService(config): s = service.MultiService() cs = Component(config["rhost"], int(config["rport"]), config["jid"], config["secret"]) cs.setServiceParent(s) cs.factory.maxDelay = 900 if config["verbose"]: cs.logTraffic = True FallbackHandler().setHanderParent(cs) VersionHandler('Idavoll', __version__).setHanderParent(cs) DiscoHandler().setHanderParent(cs) if config['backend'] == 'pgsql': from idavoll.pgsql_storage import Storage st = Storage(user=config['dbuser'], database=config['dbname'], password=config['dbpass']) elif config['backend'] == 'memory': from idavoll.memory_storage import Storage st = Storage() bs = BackendService(st) bs.setServiceParent(s) ps = IPubSubService(bs) ps.setHanderParent(cs) ps.hideNodes = config["hide-nodes"] ps.serviceJID = JID(config["jid"]) return s