from zope.interface import implements from twisted.python import usage from twisted.plugin import IPlugin from twisted.application.service import IServiceMaker # Due to the directory layout, and the fact that plugin directories aren't # modules (no __init__.py), this file is named something other than palaver.py, # to ensure that this import pulls in the right module. import palaver class Options(usage.Options): optParameters = [ ('jid', None, None), ('rhost', None, None), ('rport', None, None), ('secret', None, None), ('backend', None, 'dir'), ('spool', None, None), ('admin', None, 1), ('create', None, 1), ('dbname', None, 'muc'), ('dbuser', None, 'muc'), ('dbhostname', None, None), ('log', 'l', './html/logs/'), ('config', 'c', 'config.xml'), ] optFlags = [ ('verbose', 'v', 'Show traffic'), ] class ServiceFactory(object): implements(IServiceMaker, IPlugin) tapname = "palaver" description = "A multi-user chat xmpp/jabber component." options = Options def makeService(self, options): return palaver.makeService(options) service = ServiceFactory()